web-dev-qa-db-fra.com

Xcode 4.5 aucun fichier ou répertoire de ce type - libCordova.a

clang: erreur: aucun fichier ou répertoire de ce type: '/ Users/admin/Library/Developer/Xcode/DerivedData/__ TESTING __- fzbkvdbnndieeagphtjhdndiyttl/Build/Products/Debug-iphoneos/libCordova.a'

Comment puis-je obtenir ce un manquant libCordova.a ?

align top
(source: kerrydeaf.com )

MISE À JOUR: Pour Simon Germain. align top

MISE À JOUR: Pour Simon Germain. Je ne vois pas "Identité et type". Je peux voir "Identité". J'utilise xcode 4.5 align top
(source: kerrydeaf.com )

align top

MISE À JOUR: Pour Simon Germain. J'ai obtenu l'identité.

align top
(source: kerrydeaf.com )

MISE À JOUR: Pour Samuel

align top
(source: kerrydeaf.com )

MISE À JOUR: Pour Simon Germain - Architecture.

MISE À JOUR: Pour james0n - armv.

align top
(source: kerrydeaf.com )

MISE À JOUR: Pour Simon Germain - Architecture.

MISE À JOUR: Pour james0n - armv.

 Undefined symbols for architecture i386:
   "_OBJC_CLASS_$_CDVURLProtocol", referenced from:
       objc-class-ref in AppDelegate.o
   "_OBJC_CLASS_$_CDVViewController", referenced from:
       _OBJC_CLASS_$_MainViewController in MainViewController.o
   "_OBJC_METACLASS_$_CDVViewController", referenced from:
       _OBJC_METACLASS_$_MainViewController in MainViewController.o
 ld: symbol(s) not found for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

MISE À JOUR: Pour james0n - Architecture valide.

align top
(source: kerrydeaf.com )

MISE À JOUR: Il est maintenant résolu !!! assurez-vous que tous les armv7 et armv7 pour ios 6 sur tous dans xcode. Ça a marché.

28
Irishgirl

Pour votre projet, définissez le paramètre de génération "Build Active Architecture Only" sur yes.

(Peut-être également définir le paramètre de construction Architectures sur "Standard (armv7, armv7s)" pour le projet CordovaLib.)

18
james0n

Eu (comme beaucoup d'autres) le même problème, voici ce que j'ai fait:

  1. Refonte du guide de mise en route de Phonegap (y compris le téléchargement et l'extraction à nouveau de la source)
  2. Même problème avec l'application HelloWorld
  3. produit - propre
  4. Changé à la fois le 'HelloWorld' et le 'CordovaLib' -projet (donc pas les cibles) selon la réponse de james0n, les paramètres:

Architectures: Standard (armv7, armv7s)

Construire une architecture active uniquement: Oui

et puis cela a fonctionné comme par magie, je pense que les étapes 3 et 4 l'ont fait cependant.

9
andy

J'ai eu le même problème que vous, a bien fonctionné déployé sur les simulateurs mais pas sur un appareil. Aucune des réponses suggérées n'a fonctionné pour moi.

Voici ce que a fait pour moi:

Définissez la cible de déploiement sur v4.3 et dans les paramètres du projet pour le projet CordovaLib, définissez le Build Active Architecture Only à Yes. (Pas nécessaire sur votre projet principal).
Important, effectuez un Produit-> Nettoyer et reconstruire.

4
Magnus Johansson

Il suffit de supprimer armv6 de YourProject et CordovaLib: remove armv6 from CordovaLib and do the same for YourProject

Les conséquences de faire cela? Apparemment, cela fonctionne toujours sur l'iPhone 3GS, mais pas sur les versions précédentes ..

4
Samuel

Assurez-vous que la cible du produit CordovaLib est définie sur "Par rapport au produit intégré" sur le panneau de droite, premier onglet à gauche, sous "Identité et type".

enter image description here

3
Simon Germain

Vous devez exécuter le script de mise à jour, je sais que cela pourrait être pénible de le faire, mais c'est ce qu'il faut.

Téléchargez et ouvrez le package Phonegap 2.1 depuis le site officiel. Ouvrez une fenêtre de terminal et accédez au répertoire d'installation

Vous devrez d'abord créer un nouveau projet:

./create [project_folder_path] [package_name] [project_name]

Ensuite, vous devez définir le chemin d'accès à vos bibliothèques.

/update_cordova_subproject [xcodeproj file]

Ouvrez maintenant votre projet et définissez la cible de déploiement sur 4.3 et vous devriez être prêt à partir. J'espère que cela pourra aider

ÉDITER:

Voici à quoi ressemble ma configuration pour le projet CordovaLib

enter image description here

1
ILikeTacos

Aussi - assurez-vous que vous n'avez pas plus d'un projet PhoneGap Xcode ouvert à la fois - J'obtenais des conflits entre les deux. Boucle de type "Espace de travail déjà ouvert dans un autre espace de travail".

1
dijipiji

J'ai résolu ce problème en supprimant l'architecture armv6 et i386 du paramètre Architecture valide

1
gheese

Téléchargez le programme d'installation de Cordova ici http://phonegap.com/download . Assurez-vous que c'est la même version que vous utilisez actuellement (ex 2.0).

Montez ensuite le dmg trouvé dans le répertoire ios.

Exécutez ensuite le programme d'installation .pkg.

Redémarrez Xcode.

1
Vinnie

Après avoir passé de nombreuses heures avec encore plus d'erreurs, voici ce qui a fonctionné pour moi. Combinant essentiellement une grande partie de ce qui précède:

  1. Commencez avec une nouvelle copie de Cordova. Si vous avez joué avec moi comme ça, ce n'est plus frais.
  2. Déplacez les fichiers Cordova hors du répertoire de téléchargement (j'ai tendance à nettoyer ce répertoire de temps en temps ...)
  3. Créez un nouveau projet comme décrit dans les documents Phonegap, c'est-à-dire faites glisser le dossier ios/bin vers l'icône Terminal et exécutez le script de création dans Terminal. Pas besoin d'exécuter le script update_cordova_subproject.
  4. Ouvrez le projet dans XCode.
  5. Pour votre produit, définissez la cible de déploiement iOS sur 4,3 (je l'ai fait 2x, à la fois dans les paramètres de construction de projet et de cible).
  6. Pour CordovaLib.xcodeproj, définissez Build for Active Architecture sur Yes dans les paramètres de construction du projet.
  7. Nettoyez et courez.

N'incluez pas armv7 dans les listes d'architecture, car il ne sera pas construit pour le périphérique.

Testé sur simulateur et sur iPad avec iOS 6. Utilisation de Phonegap 2.1.0 et XCode 4.5.1.

Mise à jour: si vous voulez prendre en charge l'iPhone 5, vous aurez besoin d'armv7s. Il nécessite le correctif dans https://issues.Apache.org/jira/browse/CB-136 , qui sera dans Cordova 2.2.0. (Je ne l'ai pas encore essayé, travaillant sur un projet iPad.)

1
RonaldPK

En plus de plusieurs autres suggestions et messages, j'ai constaté que je rencontrais ce problème uniquement sur mes versions AdHoc. Veuillez noter que j'ai compris cela pendant le débogage, car si je définissais la configuration Edit Build Scheme> Archive sur "release", cela fonctionnerait bien, mais s'il était réglé sur AdHoc, cela me donnerait une erreur de lien, me disant que ce fichier ne pouvait pas être a trouvé:

/Users/jason/Library/Developer/Xcode/DerivedData/MommyNearest-ceourmykvgxdekbkmzenuvhcfnzk/Build/Intermediates/ArchiveIntermediates/MommyNearest/BuildProductsPath/Adhoc-iphoneos.a

C'était en fait un bon indice du problème, à savoir que le sous-projet CordovaLib n'avait en quelque sorte pas de configuration AdHoc (il avait UNIQUEMENT des configurations "Debug" et "Release").

Par conséquent, lors de la génération d'une version AdHoc (à utiliser avec Testflight), il ne créerait pas correctement un lien symbolique pour ce fichier. Une fois que j'ai ajouté une configuration "AdHoc" au sous-projet CordovaLib, cela a commencé à fonctionner.

enter image description here

0
Jason FB

J'ai eu ce problème également. Je pense que c'est parce que j'avais déjà installé une ancienne version de gap de téléphone qui avait installé des trucs dans xcode. J'ai désinstallé, puis réinstallé xcode. Ensuite, j'ai exécuté le Uninstall Cordova.applescript fourni avec le téléphone. Cela a résolu le problème de la libCordova.a rouge

0
Tom Kincaid