To wydaje się być powtarzającym się zjawiskiem.Tworzenie archiwum dla wydania XCode 4.6 z phonegapem v 2.9 nie powiodło się
Widziałem wiele wcześniejszych pytań, gdzie rozwiązaniem było usunięcie armv6, , a następnie archiwum działałoby. Oczywiście, armv6 zniknął.
A więc teraz buduj z obu prądami, Xcode 4.6.3 phonegap 2.9. I tak, aplikacja działa dobrze na iphones, ipadów i na symulatorze.
otrzymuję tę wiadomość na koniec stworzyć archiwum kroku:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -F/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos -filelist /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq.LinkFileList -dead_strip -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a -ObjC -fobjc-link-runtime -miphoneos-version-min=5.0 -framework CoreLocation -framework ImageIO -framework OpenAL -framework AssetsLibrary /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a -framework Foundation -weak_framework UIKit -framework CoreGraphics -framework AddressBook -framework AddressBookUI -framework AudioToolbox -weak_framework AVFoundation -framework CFNetwork -framework MediaPlayer -framework QuartzCore -framework SystemConfiguration -framework MobileCoreServices -weak_framework CoreMedia -framework CoreLocation -o /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/peeq.build/Release-iphoneos/peeq.build/Objects-normal/armv7s/peeq
ld: file not found: /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
i podeszła i rozejrzał się po systemie plików tam:
cd /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build
./Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a
./Intermediates/ArchiveIntermediates/peeq/IntermediateBuildFilesPath/UninstalledProducts/libCordova.a
A jego zostały zbudowane, po prostu nie umieścić gdzie linker chciał go znaleźć.
Bez wątpienia niektóre ustawienia kompilacji informują o tym linkera, lub mówi kompilacji, aby umieścić ją tam, gdzie linker chce ją znaleźć.
Chyba że jest coś innego.
Moje pytanie brzmi: jak poprawnie uzyskać archiwum aplikacji, aby zbudować , aby mogło zostać wysłane do sklepu.
Dzięki John
Drobny człowiek, który pracuje w Apple powiedział mi, gdzie szukać, na którym punkt ten został rozwiązany.
głębi ustawienia kompilacji, istnieje pole do ustawienia, zwany inne flagi Linker
Zaczyna się pokazując żadnej wartości, ale jeśli klikniesz na nim, to wyskakuje z Debug i Release.
W bardzo długim ciągu, który jest Release, znajduje się -force_load libCordova.a
i usuwa tę część ciągu.
Od:
-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load ${TARGET_BUILD_DIR}/libCordova.a -ObjC
Do:
-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -ObjC
Jego prawdopodobnie błąd w jakiś sposób, że PhoneGap domyślne to w miejscu, będę również z nimi skontaktować i sprawdzić, czy to może domyślnie Naprawa .
Jego uwaga, że zwrócił mi na to:
Zauważyłem, że komenda ogniwo zawiera zarówno to:
-force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a
a to:
/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a
Ścieżka były przekazywane do -force_load jest fałszywą ścieżką, na którą narzeka linker. Myślę, że musisz usunąć flagę linkera "-force_load". Czy ustawiłeś taką flagę w ustawieniu "Inne flagi linkerów"?
Miałem ten sam problem i rozwiązałem go, przynajmniej dla mojego projektu. Sprawdź moją odpowiedź tutaj: http://stackoverflow.com/a/17455264/2183674 –
FYI mamy to samo z XCode 5.1.1 i PhoneGap 3.1. Poprawka na dole z moim komentarzem jest tym, co zadziałało dla nas. – ganders