2013-06-27 4 views
24

Dies scheint ein wiederkehrendes Phänomen zu sein.Aufbau eines Archivs für XCode 4.6 Release mit phonegap v 2.9 nicht

Ich sah eine Reihe von früheren Fragen, wo die Lösung war armv6, zu löschen und dann das Archiv würde funktionieren. Natürlich ist ARMv6 gegangen.

So, jetzt, Gebäude mit sowohl Strom, Xcode 4.6.3 phonegap 2.9. Und ja, die App funktioniert auf iphones, ipads, und im Simulator.

Ich erhalte diese Meldung am Ende des Archiv erstellen Schritt:

/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) 

Und ging hinüber und sah sich um das Dateisystem gibt:

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 

Und seine gebaut worden, nur nicht gesetzt wo der Linker es finden wollte.

Also keine Zweifel, einige Build-Einstellung entweder sagt der Linker, um dort zu suchen, oder sagt dem Build, um es dort zu platzieren, wo der Linker es finden will.

Es sei denn, es ist etwas anderes.

Meine Frage ist, wie man das App-Archiv korrekt erstellen, so dass es in den Laden gehen kann.

Danke, john


Eine feine Person, die bei Apple arbeitet hat mir gesagt, wo sie suchen müssen, an welchem ​​Punkt diese gelöst wurde.

Tief in den Build-Einstellungen gibt es ein Feld gesetzt werden, die so genannte Andere Linker Flags

Es beginnt keinen Wert zeigt, aber wenn Sie darauf klicken, es öffnet sich mit Debug und Release.

In der sehr langen Zeichenfolge, die Release ist, findet man eine -force_load libCordova.a
und löscht diesen Teil der Zeichenfolge.

Von:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -force_load ${TARGET_BUILD_DIR}/libCordova.a -ObjC 

An:

-weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -ObjC 

Es ist wahrscheinlich ein Fehler in irgendeiner Art und Weise, dass phonegap defaults diese an Ort und Stelle, so werde ich auch sie kontaktieren und sehen, ob sie es reparieren Standard kann .

Seine Notiz, die mich an ihm zeigte:

ich feststellen, dass Ihr Link-Befehl enthält sowohl das:

-force_load /Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/InstallationBuildProductsLocation/Applications/libCordova.a 

und diese:

/Users/peeq/Library/Developer/Xcode/DerivedData/peeq-gylybvwifdxjmtajtbvdsdpjcvkl/Build/Intermediates/ArchiveIntermediates/peeq/BuildProductsPath/Release-iphoneos/libCordova.a 

Der Weg zum -force_load geleitet wird ist der falsche Weg, über den sich der Linker beschwert. Ich denke, dass Sie das "-force_load" Linker-Flag entfernen müssen. Wurde in der Einstellung "Weitere Linker-Flags" ein solches Flag gesetzt?

+0

Ich hatte das gleiche Problem und löste es, zumindest für mein Projekt. Überprüfen Sie meine Antwort hier: http://Stackoverflow.com/a/17455264/2183674 –

+0

FYI wir haben das gleiche mit XCode 5.1.1 und PhoneGap 3.1. Der Fix unten mit meinem Kommentar ist, was für uns funktioniert hat. – ganders

Antwort

79

Festgelegt.

  1. In Ihren Build-Einstellungen des Ziels findet Other Linker Flags
  2. ändern $(TARGET_BUILD_DIR)/libCordova.a
  3. Um $(BUILT_PRODUCTS_DIR)/libCordova.a
+4

Schnell und einfach. Vielen Dank. – pasine

+0

Danke, löste das Problem! (Keep rennt in alte Beschreibungen von libCordova.a Probleme ...) – Koniak

+4

DANKE !!! warum cordova immer diese probleme haben..jeder xcode release und evey phonegap release nur Kopfschmerzen !! DANKE!! – Francesco

4

Es ist nicht funktioniert für mich "$ (BUILT_PRODUCTS_DIR) /libCordova.a" zu ändern in "Andere Linker Flags". Das Problem existiert noch. (Xcode 4.6.3 phonegap 2.9.0)

Also, ich versuche die Einstellung unten und es funktioniert für mich.

  1. In Ihren Build-Einstellungen des Ziels "$ (TARGET_BUILD_DIR) /libCordova.a"
  2. Change "-force_load" finden "Andere Linker Flags"
  3. Löschen auf "-all_load"

Das hat den Trick für mich gemacht.

======== Update-============

Mit dem obigen Trick kann ich die App erreichen und ohne Problem zu App Store einreichen. Aber ich habe in der iTune Connect herausgefunden, dass es "ungültige binäre" zeigt.

+0

+1 für mich gearbeitet! –

+0

Danke, das hat für mich funktioniert :) –

+0

Super !!!!!!!!! – ganders

Verwandte Themen