Ich habe derzeit ein Projekt mit 3 verschiedenen Versionen der gleichen App (anderes Branding und solche), die gerade gut funktioniert. Seitdem habe ich 3 neue Apple Watch-Ziele hinzugefügt (1 für jede App- "Version"), wobei 2 davon auf die Dateien im "Master" -Apple Watch-Ziel verweisen.Apple Watch Pre-Build-Aktion zum Storyboard ändern customModule Referenzen
Alles funktioniert gut, solange ich daran denke, die Modulreferenz für jede Storyboardansicht zu ändern, damit sie dem richtigen Schnittstellencontroller im entsprechenden Ziel der Watchkit-Erweiterung zugeordnet wird.
Die Erinnerung daran, dies jedes Mal zu wechseln, wenn ich eine App-Version/Ziel ausführen/erstellen muss, ist ein Schmerz und nicht wirklich eine langfristige Lösung.
Ich habe den folgenden Befehl erstellt, der zur richtigen Zeit ausgeführt werden soll, sodass die Storyboardreferenzen geändert werden, bevor sie kompiliert wird.
perl -pi.bak -e 's/customModule=\"(.*?)\">/customModule=\"watchMyTarget_Extension\">/g' ${SRCROOT}/watch/Base.lproj/Interface.storyboard
ich auch zu dem Schluss, dass ich wahrscheinlich zurücksetzen möchte wurde die Änderung nach der App erstellt, da ich eine Datei ändern für git haben wollen sich nicht beschweren. Aus diesem Grund erstellt das oben genannte Skript eine .bak-Datei. So nach der Kompilierung durchgeführt wird und verpackt/lief auf dem Gerät oder was auch immer, ich will
mv ${SRCROOT}/watch/Base.lproj/Interface.storyboard.bak ${SRCROOT}/watch/Base.lproj/Interface.storyboard
Ich habe versucht laufen die Skripte in dem (watchTarget, nicht appTarget) Ziel Platzierung bauen Schema, Build->Pre/Post Actions
, die nicht tat scheinen irgendeinen Effekt zu haben. Und ich habe versucht, es in Run->Pre/Post Actions
zu setzen, die zu einem gewissen Grad funktioniert hat, aber es schien wie die Post-Aktion, bevor die App in den Simulator geschoben wurde und damit die Anwendung abstürzte ("konnte nicht Geräteprotokolle anzeigen" oder so etwas).
Also wo auf der Erde muss ich diese Skripte setzen, um sie zum richtigen Zeitpunkt im Build-Prozess laufen zu lassen?
Ich habe dies ohne Erfolg versucht.Ich brauche es vor und nach dem Build zu laufen.Da das Uhr-Storyboard geändert werden muss, bevor ich das Watch-Ziel baue und es dann zurückstelle, nachdem es erstellt wurde – tskulbru
@tskulbu die Bereinigung sollten Sie es nach dem Archivieren tun, legen Sie den Bereinigungsbefehl in den Post-Aktionen des Archivs . – Allen
Ich versuchte Post-Aktion von Build/Archiv usw. aus meinem Haupt-App-Build-Schema zu bereinigen, aber aus irgendeinem Grund schien es nicht spät genug zu sein und die Änderungen wurden wieder in die Watch-App aufgenommen, die dann nicht installiert werden konnte habe die richtigen Änderungen. – tskulbru