web-dev-qa-db-fra.com

Erreur Phonegap/Cordova Build - Erreur Apple Mach-O Linker: aucun fichier ou répertoire de ce type: libCordova.a

Je reçois une erreur après avoir créé un nouveau projet Cordova 2.1.0 et mis à jour le dossier www avec du code provenant d'une application PhoneGap précédente.

clang: error: no such file or directory: '/Users/peterbanjo/Library/Developer/Xcode/DerivedData/OpuzMobile-bhwawiqfaptmxvfosawfabudgbkj/Build/Products/Debug-iphoneos/libCordova.a'

L'erreur ne se produit que lorsque j'essaie d'exécuter l'application sur un périphérique. Dans le simulateur, cela fonctionne bien. 

J'utilise Xcode 4.5 et iOS6 sur l'iPad cible. J'ai essayé une nouvelle version et libCordova.a apparaît dans l'onglet Phases de la construction> Lier la bibliothèque avec les bibliothèques, mais il est en rouge.

32
Peter

Ce que j'ai trouvé déroutant avec PhoneGap/Cordova 2.1.0 en mettant à niveau à partir de la version 1.4, c'est qu'il y a DEUX projets dans mon application. Il y a MyApplication.xcodeproj et CordovaLib.xcodeproj. Les modifications permettant de résoudre ce problème doivent être appliquées au projet CordovaLib.

  • Remplacez "Construire l'architecture active uniquement" par "OUI"
  • Mettez à jour le fichier texte project.pbxproj avec ces valeurs
  • Basculez entre le schéma de construction du simulateur et celui de l'appareil (utilisez le menu de sélection situé à côté du bouton d'arrêt. Cela semble provoquer la détection des modifications).

Cela a-t-il fonctionné pour vous? Ai-je manqué quelque chose?

PS: pour mieux comprendre le problème, jetez un coup d'œil à ceci Fil de discussion Google

43
Peter

J'utilise Cordova/Phonegap 2.9 et cela a résolu mon problème. N'a touché aucun des trucs Arch. Tout est réglé pour armv7 armv7s sur le mien.

Suivez ces étapes pour résoudre ce problème:

  1. Accédez aux paramètres du projet et à l'onglet Construire. 
  2. Recherche de "Autres drapeaux de lieur" 
  3. Double-cliquez sur les drapeaux de l'éditeur de liens pour valider et modifier $ {TARGET_BUILD_DIR} /libCordova.a en $ {BUILT_PRODUCTS_DIR} /libCordova.a 
  4. Faites la même chose pour Debug Clean et compilez à nouveau l'archive
16
Dev01

J'ai eu la même erreur et je l'ai corrigé en revenant à une version plus ancienne de cordova ios. 

Étapes pour résoudre le problème:

  1. Désinstallez d'abord Cordova-ios avec npm uninstall cordova-ios
  2. Installer l'ancienne version de cordova-ios avec npm install [email protected]
  3. Supprimer la plate-forme ios existante avec ionic cordova platform rm ios ou ionic platform rm ios
  4. Après cela, nous devrions ajouter une plate-forme avec ionic cordova platform add [email protected] ou ionic platform add [email protected]
  5. Exécutez ionic cordova build ios.

Les instructions venaient de ici .

6
j.davies

Pour que cela fonctionne, j'ai téléchargé depuis http://connect.Apple.com stand alone Xcode 4.4.1. Avec cette version, je peux construire mon application phonegap avec armv6 :)

Oui, dans ce cas, vous devez avoir deux Xcode sur votre ordinateur.

3
Bartosz Wachowski

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

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

3
Samuel

Regardez cette https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ywoc9wNydZ8

travaille pour moi

-- OS X 10.8.2 Xcode 4.5 IOS 6.0 PhoneGap 2.1.0

1
Theus

NE supposez PAS qu'avoir Standard (armv7,armv7s) - $(ARCHS_STANDARD_32_BIT) est identique au correctif ci-dessus . Modifiez manuellement cette valeur en armv7 et cela l'a corrigée pour moi .

1
Augie Gardner

Si vous avez tout fait ici et que cela ne fonctionne toujours pas et que vous avez une configuration distincte de Release et Debug, cet exemple est Production. Assurez-vous que la configuration de fabrication 'Production' existe dans le projet Cordova. Construisez le projet Cordova et construisez + archivez à nouveau votre projet principal.

0
maridob