Notre application PhoneGap repose bien pour l'iPhone Simulator, mais génère des erreurs de liaison lors de la construction de l'application sur un iPhone. La seule chose qui a changé était d'installer TestFlight et une application de test.
Nous avons déjà supprimé TestFlight et l'application de test, mais les erreurs de test restent. P>
Des idées sur la manière de résoudre ce problème? P>
Nous sommes sur Xcode 5 et PhoneGap 3.4. p>
Erreurs: p>
ld: warning: ignoring file /Users/c/Library/Developer/Xcode/DerivedData/s-fhgxmhdprdjvwahdbgwuagoragit/Build/Products/Debug-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (arm64): /Users/c/Library/Developer/Xcode/DerivedData/s-fhgxmhdprdjvwahdbgwuagoragit/Build/Products/Debug-iphoneos/libCordova.a Undefined symbols for architecture arm64: "_OBJC_CLASS_$_CDVWebViewDelegate", referenced from: objc-class-ref in CDVInAppBrowser.o "_OBJC_METACLASS_$_CDVViewController", referenced from: _OBJC_METACLASS_$_MainViewController in MainViewController.o "_OBJC_CLASS_$_CDVPlugin", referenced from: _OBJC_CLASS_$_CDVDevice in CDVDevice.o _OBJC_CLASS_$_CDVConnection in CDVConnection.o _OBJC_CLASS_$_LowLatencyAudio in LowLatencyAudio.o _OBJC_CLASS_$_CDVLogger in CDVLogger.o _OBJC_CLASS_$_CDVInAppBrowser in CDVInAppBrowser.o _OBJC_CLASS_$_InAppPurchase in InAppPurchase.o "_OBJC_METACLASS_$_CDVPlugin", referenced from: _OBJC_METACLASS_$_CDVDevice in CDVDevice.o _OBJC_METACLASS_$_CDVConnection in CDVConnection.o _OBJC_METACLASS_$_LowLatencyAudio in LowLatencyAudio.o _OBJC_METACLASS_$_CDVLogger in CDVLogger.o _OBJC_METACLASS_$_CDVInAppBrowser in CDVInAppBrowser.o _OBJC_METACLASS_$_InAppPurchase in InAppPurchase.o "_OBJC_CLASS_$_CDVViewController", referenced from: _OBJC_CLASS_$_MainViewController in MainViewController.o objc-class-ref in CDVDevice.o "_CDVLocalNotification", referenced from: -[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o "_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from: _OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o "_OBJC_CLASS_$_CDVPluginResult", referenced from: objc-class-ref in CDVDevice.o objc-class-ref in CDVConnection.o objc-class-ref in LowLatencyAudio.o objc-class-ref in CDVInAppBrowser.o objc-class-ref in InAppPurchase.o "_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from: _OBJC_CLASS_$_MainCommandDelegate in MainViewController.o "_OBJC_CLASS_$_CDVUserAgentUtil", referenced from: objc-class-ref in CDVInAppBrowser.o "_OBJC_CLASS_$_CDVCommandQueue", referenced from: _OBJC_CLASS_$_MainCommandQueue in MainViewController.o "_OBJC_METACLASS_$_CDVCommandQueue", referenced from: _OBJC_METACLASS_$_MainCommandQueue in MainViewController.o "_CDVPluginHandleOpenURLNotification", referenced from: -[AppDelegate application:handleOpenURL:] in AppDelegate.o -[CDVInAppBrowser openInSystem:] in CDVInAppBrowser.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
3 Réponses :
On dirait que nous sommes également mis à niveau involontairement sur Xcode 5.1, causant le problème. PhoneGap 3.4 et Xcode 5.1 sont incompatibles que si vous apportez des modifications. P>
Voici la solution: http: //shazronatadobe.wordpress .COM / 2014/03/12 / xcode-5-1-and-cordova-ios / p>
Merci mec, cela fonctionne, déteste vraiment les mises à jour de Apple ... même s'est produite avec Mavericks, complètement détruit mes clés RSA et mes outils GCC / Command
Désolé si cela pourrait sembler une réponse trite, mais les étapes suivantes sont généralement ce que je fais toujours lorsque je vois des erreurs de liaison: p>
Mise à jour de la sous-module GIT --Init --Recursive Code> Li>
- Veuillez faire un dossier Clean Build: Allez sur le produit, survolez Nettoyer et appuyez sur ensemble (commande + option) et cliquez sur "Nettoyer le dossier de construction". LI>
ul>
rincer et répéter. p>
Si vous avez des modules qui ne sont pas des références correctement, dirigez-vous vers vos phases de construction, supprimez les modules qui vous troublent et les ajoutent. p>
Ce type de problèmes surviennent lors de la mise à jour de votre Xcode, mais tout outil tiers que vous utilisez peut ne pas être mis à jour avec cette architecture Donc, cliquez sur votre navigateur de projet de Xcode. P>
Cliquez sur Trouver Il suffit de double-cliquer sur cela et de supprimer Assurez-vous qu'il existe armv7 et Dans mon cas, cela a fonctionné pour moi. P>
Nettoyez et construisez votre projet. Ça devrait fonctionner bien maintenant. P>
J'espère que ça vous aide. P>
Maintenant, à partir de févr. 2015 strong>, Apple n'autorisera pas les applications sans architecture ARM64 supportée. p>
Assurez-vous que toutes les applications soumises ont un support ARM64. P> armv64 code>. p>
Cibles CODE> à partir de votre projet et cliquez sur
BuildSettings CODE> de IT. P>
Architectures valides CODE>. p>
armv64 code> de cela. p>
armv7s code> uniquement. p>
Cela a fonctionné pour moi aussi. J'utilisais Cordova 3.6 + Xcode 6 et j'essayais de bâtir pour iPhone 6. Cela a fonctionné dans l'émulateur, mais la construction s'est écrasée pour un appareil iPhone 6. Supprimer ARMV64 Comme mentionné ci-dessus fixe le problème. Merci!
@manthan. Effectuer les étapes ci-dessus me laisse avec l'erreur suivante lorsque j'essaie de construire le fichier XCodeProj. Des idées? Exécuter Mac OSX 10.9.5 (Yosemite) Aucune architecture à compiler pour (seulement_active_arch = YES, active arc = x86_64, valide_archs = i386 code>
@CorneliusParkin: Pour cela, cliquez sur votre navigateur de projet, à partir de là, cliquez sur des cibles, puis dans les architectures, définissez une architrecture active dans le no. Vous serez bon d'aller.
S'il vous plaît supprimer cette réponse. Les gens vont essayer, puis voir la modification en bas.