80 votes

Xcode 5.1 : problèmes d’architecture libCordova.a

Hier (3/10/14) lors de l'iOS 7.1 a été libérée, j'ai également mis à jour de Xcode 5.1 et constaté que mon PhoneGap/Cordova projet ne serait plus de la compilation de mon iPhone 5s. J'ai aussi mis à jour Cordoue à la version la plus récente: v 3.4.0-0.1.3.

J'ai lu beaucoup de solutions différentes, AFIN que l'concernent la modification active architectures et de construction active uniquement les architectures, et aucune de ces travaux. Alors, voici ce que j'ai essayé et les erreurs que j'obtiens. Au départ, j'ai obtenu l'erreur:

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

J'ai donc essayé le suivant. J'ai choisi le CordovaLib sous-projet dans mon projet, et à la fois le projet et la cible, je suis allé à l' Paramètres de construction en vertu de l' Architectures et fait en sorte qu' arm64 n'a pas été inclus dans le Debug ou Release architectures. À ce moment - Construire Active Seulement l'Architecture est réglé sur "Oui". Qui a entraîné dans l'erreur suivante:

file was built for archive which is not the architecture being linked (armv7): 
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7

Réglage de Construire Active Seulement l'Architecture à "No", l'erreur devient:

missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64

Je ne sais plus quoi essayer. Le projet de paramètres de l'architecture inclut uniquement la clé de Base "SDK" qui est fixé à iOS 7.1. La cible du projet n'a pas architectures paramètres. De toute façon je suis assez certain que le problème se trouve intégré à l'CordovaLib sous-projet. Que puis-je faire pour faire de cette chose de la compilation de mon appareil?

Mise à jour: même problème sur Apache Jira: https://issues.apache.org/jira/browse/CB-6223

86voto

inorganik Points 2591

@Shazron posté le correctif sur le serveur Apache JIRA - il remarquer que le correctif sera publié dans le cadre de Cordoue 3.5:

  1. Sélectionnez votre icône de Projet
  2. Choisissez Les Paramètres De Construction.
  3. Pour les "Architectures", sélectionnez $ARCHS_STANDARD - architectures Standard (armv7, armv7s, arm64)
  4. Pour les "Valides" Architectures, ajouter "arm64"
  5. Sélectionnez votre CordovaLib.xcodeproj icône
  6. Dans les Paramètres de construction pour le Projet (pas de Cible), supprimer la condition paramètres de l'architecture (passez la souris pour voir le signe moins)
  7. Pour les "Architectures", sélectionnez $ARCHS_STANDARD - architectures Standard (armv7, armv7s, arm64)
  8. Pour les "Valides" Architectures, ajouter "arm64"
  9. Goto 6, mais maintenant le faire pour "Cible"

Voici un lien vers Shazron complète de l'article de ce problème: http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/

Il est maintenant publié et la version courte de quoi faire, c'est:

Cordova CLI 3.4.1-0.1.0 est sorti, qui comprend Cordova iOS 3.4.1 qui comprend tous les correctifs mentionnés dans ce blog. Mise à jour de votre Cordova CLI, et si vous avez un projet existant, faire un "cordova plate-forme de mise à jour d'ios".

11voto

Neil Faiman Points 101

Une autre approche qui fonctionne:

  1. Cliquez sur votre projet en haut de l'explorateur de projets (pas de Cordova.lib sous-projet).
  2. Dans le volet de l'éditeur, sélectionnez le projet (pas la cible), sélectionnez les Paramètres de construction de l'onglet de l'éditeur, et cliquez sur le Tous les Niveaux et les boutons.
  3. Développer les Architectures de groupe si nécessaire et de trouver les Architectures ligne sous.
  4. La première (résolu) et troisième (iOS par Défaut) les colonnes dans l'Architecture de la ligne va dire la Norme; le deuxième (projet) de la colonne est vide.
  5. Cliquez sur le vide de la deuxième colonne pour afficher une boîte qui aura une ligne, "$(ARCHS_STANDARD)".
  6. Double-cliquez sur cette ligne pour le rendre modifiable, puis de le modifier pour lire "$(ARCHS_STANDARD_32_BIT)".
  7. Cliquez à l'extérieur de la boîte pour confirmer votre changement. Maintenant, la première et seconde boîtes juste un $.
  8. Maintenant, vous devriez être en mesure de construire.

10voto

AlexLopezIT Points 146

Downgrade de Xcode 5.1 à 5.0.2 a fonctionné pour moi, je ne pouvais pas attendre pour une sortie officielle de Cordova 3.5 avec le correctif.

Vous pouvez obtenir une copie de la version précédente ici : https://developer.apple.com/downloads/index.action

8voto

Fabrizio Giordano Points 125

Ils viennent de sortir une nouvelle version 3.4.1 qui traitent de ces questions.

Donc je l'ai mise à jour d'un fichier unique point à la BALISE 3.4.1:

/usr/local/lib/node_modules/cordova/platforms.js

ligne 24 de:

version: '3.4.0'

pour:

version: '3.4.1'

Ensuite, vous enlevez les iOS dossier de votre projet et de l'exécution:

cordova platform add ios

Ceci va télécharger le nouveau modèle basé sur 3.4.1 avec tous les patchs.

5voto

voyager Points 37

Suivez les instructions de cette vidéo : https://www.youtube.com/watch?v=EIkJAKcz8DE

Juste ajouter arm64 dans vos architectures valide des projets et supprimer toute l’architecture conditionnelle du projet de Cordova.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X