Mam obecnie projekt z 3 różnymi wersjami tej samej aplikacji (różne marki i tym podobne), która działa dobrze. Od tego czasu dodałem 3 nowe cele Apple Watch (1 dla każdej "wersji" aplikacji), gdzie 2 z nich odnoszą się do plików w "głównym" celu Apple Watch.Funkcja wstępnej kompilacji zegarka Apple Watch w celu zmiany referencji na module storyboard
Wszystko działa dobrze, o ile pamiętam, aby zmienić odniesienie do modułu dla każdego widoku storyboardu, aby był mapowany do właściwego kontrolera interfejsu w odpowiednim docelowym rozszerzeniu Watchkit.
Pamiętaj jednak, aby zmienić to za każdym razem, gdy potrzebuję uruchomić/zbudować wersję/cel aplikacji, jest to trudne, a nie długoterminowe rozwiązanie.
Utworzyłem następujące polecenie, które chcę uruchomić we właściwym czasie, tak, że zmienia odniesienia do storyboardów przed ich skompilowaniem.
perl -pi.bak -e 's/customModule=\"(.*?)\">/customModule=\"watchMyTarget_Extension\">/g' ${SRCROOT}/watch/Base.lproj/Interface.storyboard
doszedłem do wniosku, że to pewnie chcesz zresetować zmiany po app został skompilowany, ponieważ nie chcę mieć zmianę pliku dla git narzekać. Dlatego powyższy skrypt tworzy plik .bak. Więc po kompilacji jest zrobione i pakowane/uruchomić na urządzeniu lub cokolwiek, chcę uruchomić
mv ${SRCROOT}/watch/Base.lproj/Interface.storyboard.bak ${SRCROOT}/watch/Base.lproj/Interface.storyboard
Próbowałem umieszczenie skryptów w docelowej'S (watchTarget nie CelAplikacji) zbudować system, który nie Build->Pre/Post Actions
wydaje się mieć jakikolwiek efekt. I próbowałem go włożyć do pewnego stopnia, ale wydawało się, że akcja postu została uruchomiona zanim aplikacja została przekazana do symulatora i tym samym awarię aplikacji ("nie można uruchomić, zobacz logi urządzeń" lub coś w tym stylu).
Więc gdzie, na ziemi, muszę umieścić te skrypty, aby uruchomić je we właściwym czasie w procesie kompilacji?
Próbowałem tego bez powodzenia. Muszę go uruchomić przed i po kompilacji.Ponieważ musi zmienić scenariusz zegarka, zanim zacznę budować cel oglądania, a następnie go zmienić po jego utworzeniu – tskulbru
@tskulbru oczyścić, powinieneś zrobić to po archiwum, umieść polecenie porządkowania w post-actions of Archive . – Allen
Próbowałem użyć post-działania kompilacji/archiwum itp. Z mojego głównego schematu budowy aplikacji do czyszczenia, ale z jakiegoś powodu wydawało się, że nie było wystarczająco późno, a zmiany zostały włączone z powrotem do aplikacji zegarka, której instalacja nie powiodła się, ponieważ nie miej poprawne zmiany. – tskulbru