Właśnie zaktualizowałem Xcode 6.1 dzisiaj i zgadnij co: teraz mam problem z przesyłaniem kompilacji za pomocą aplikacji komputerowej TestFlight. Oto błąd, który otrzymuję, gdy aplikacja zaczyna tworzyć IPA:
błąd: / usr / bin / codeign --force --preserve-metadata = identyfikator, uprawnienia, reguły zasobów --sign 854059d45eed724593debef577a562e1ba96ab55 --resource-rules = / tmp / QYFSvu7W / Payload / XX.app / ResourceRules.plist / tmp Błąd /QYFSJIvu7W/Payload/XX.app z powodu błędu 1. Wyjście: Ostrzeżenie: użycie opcji --preserve-metadata z opcją "resource-rules" (przestarzałe w Mac OS X> = 10.10)! Ostrzeżenie: --resource-rules jest przestarzałe w Mac OS X> = 10.10! /tmp/QYFSJIvu7W/Payload/XX.app/ResourceRules.plist: nie można odczytać zasobów
„Artykuł pomocniczy” nie ma pojęcia, co się dzieje.
Nie wydaje się, aby był to problem TestFlight, ponieważ to samo dzieje się w środowisku CI, takim jak Jenkins, przy użyciu xcrun lub podobnych narzędzi.
Aplikacja nie była aktualizowana od miesięcy, więc wiem, że nie powinienem oczekiwać żadnych aktualizacji, które to naprawią w najbliższym czasie. Kiedyś działał naprawdę dobrze dla mnie i moich klientów, więc nie chcę go porzucać dla czegoś innego.
Wszelkie pomysły na temat tego błędu i sposobu jego naprawienia będą bardzo mile widziane.
źródło
xcrun -sdk iphoneos PackageApplication -v <Path_to_App> -o <Path_to_IPA> --sign <Distribution_certificate> --embed <Provisioning_profile>
. Z Xcode 6.0.1 wszystko działało OK.Odpowiedzi:
Chciałbym wiedzieć, dlaczego to działa, ale oto poprawka, która zadziałała:
źródło
Code Signing Resource Rules Path
w moich ustawieniach kompilacji. Dowolny pomysł?Następująca poprawka dla PackageApplications naprawiła to za mnie, usunąłem reguły zasobów, ponieważ mówi, że są przestarzałe w 10.10.
Kompilacje Testflight działają bez niego. Appstore też się buduje.
źródło
Wysłałem e-mail do pomocy technicznej TestFlight i otrzymałem tę odpowiedź:
Sugerowane obejście zadziałało.
źródło
Odpowiedź Tim Gostony nie działa już od momentu wydania Xcode 7. Teraz proces składania App Store zawodzi, gdy przepisy zasobów są obecne. Rozwiązaniem jest wyczyszczenie ścieżki reguł zasobów podpisywania kodu i zastąpienie xcrun narzędziem xcodebuild:
Najprostszy Options.plist do eksportowania plików ipa dystrybucji ad hoc wygląda następująco:
Istnieją inne opcje dostępne dla tego pliku plist, dotyczące kodu bitowego, przerzedzania aplikacji itp. Dlatego uważam, że narzędzie xcodebuild jest odpowiednim narzędziem do eksportowania plików ipa na iOS 9 i nowsze.
Więcej szczegółów na temat opcji plist jest dostępnych za pomocą polecenia xcodebuild -help.
źródło
W Yosemite w / XCode 6.4, nawet przy użyciu poprawki SDKROOT, kodowanie kończy się niepowodzeniem. Poniższy artykuł wyjaśnia, jak załatać skrypt XCode, aby obejść ten problem. Zauważ, że jest to łatanie XCode, więc jest to zależne od wersji, ale rozwiązuje problem.
http://www.jayway.com/2015/05/21/fixing-your-ios-build-scripts
źródło
Odpowiedź od pracy Alistra dla mnie, ale ja nie chce zmienić skrypt, który nie jest moje (przyszłe uwolnienie Xcode może zmienić ten plik i korekty zostaną utracone).
Myślę, że odpowiedź Vladimira Grigorova jest najlepsza, jeśli masz archiwum wykorzystujące:
W moim przypadku nie mam archiwum, ponieważ modyfikuję aplikację po jej skompilowaniu i muszę zmienić Bundle ID i certyfikat podpisujący.
Rozwiązaniem, które znalazłem, jest zadzwonić do
codesign
siebie przed użyciemPackageApplication
i poprosić,PackageApplication
aby nie podpisywać. Lubię to :Nie zapomnij osadzić
.mobileprovision
pliku, używając do podpisaniacp
.źródło
Jak określono w innej odpowiedzi , możesz po prostu nie określać certyfikatu dystrybucyjnego do podpisania, a zostanie on prawidłowo spakowany. Aby to zrobić, TestFlight musiałby zaktualizować swoją aplikację.
źródło