web-dev-qa-db-fra.com

Fichier Phonegap CDVViewController.h introuvable lors de l'archivage pour iOS

J'utilise actuellement Phonegap 2.0 pour développer une application iOS en XCode. L'application est construite et fonctionne correctement dans l'émulateur et également sur les périphériques de test.

Le problème apparaît lorsque j'essaie d'archiver l'application pour la distribution. L'archive échoue avec le message suivant:

Fichier CDVViewController.h introuvable.

Des idées?

38
Reinaldo

Xcode 6.x

ajouter $(OBJROOT)/UninstalledProducts/include à BuildSettings-> Chemins de recherche d'en-tête 

Xcode 7.x

ajouter $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include à BuildSettings-> Chemins de recherche d'en-tête 

1. Double-cliquez sur le <multiple values> et vous pourrez l'ajouter dans. 

2.Changez $(OBJROOT)/UninstalledProducts/include en $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

 enter image description here

154
Allan

Sur Xcode 7.1 , vous devez mettre à jour le champheader search pathsde $(OBJROOT)/UninstalledProducts/include à $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include.

Vous pouvez trouverheader search pathssousbuild settings->search paths

33
Hamid

Réussi à le réparer.

Ceux-ci étaient absents de "Chemin de recherche d'en-tête" dans les paramètres de construction de mes paramètres TARGET:

"$(TARGET_BUILD_DIR)/usr/local/lib/include"
"$(OBJROOT)/UninstalledProducts/include"
"$(BUILT_PRODUCTS_DIR)"

Obtenez la solution sous forme de sources multiples:

Mise à niveau de Cordova iOS (étapes du 31) http://docs.phonegap.com/fr/2.0.0/guide_upgrading_ios_index.md.html#Upgrading%20Cordova%20iOS

Rapport de bug https://issues.Apache.org/jira/browse/CB-1122

Discussion à l'adresse suivante: groups.google.com/forum/?fromgroups=#!topic/phonegap/IcR8-ijrUfk

Discussion sur groups.google.com/forum/?fromgroups=#!topic/phonegap/PzqZEm8QKmc

10
pablobart

Pour référence future:

Je viens de résoudre ce problème exact pour moi-même.

Si vous utilisez Cordova cli et que votre fichier config.xml est mis à jour, vous pouvez simplement supprimer ios en tant que plate-forme et l'ajouter. Puis archivez à nouveau à partir de XCode.

cordova platform remove ios
cordova platform add ios

J'espère que cela aide, a parfaitement fonctionné pour moi,

6
eton_ceb

Je rencontrais exactement le même problème. Je pense que cela a peut-être été introduit parce que j'ai déplacé l'emplacement du projet Xcode après l'avoir créé avec les outils de Cordova. Ou bien, il est également possible que je n’aie pas configuré correctement les outils Cordova pour iOS. Je n’ai peut-être pas exécuté le programme d’installation (j'ai reconstruit cette machine plusieurs fois). En outre, toutes les réponses que j'ai trouvées avec Google suggéraient que je devais modifier certaines classes de base de Cordova - ce que je n'étais pas disposé à faire.

Ma solution consistait à utiliser la commande Cordova create pour créer un projet Xcode entièrement nouveau. J'ai copié le répertoire www de mon projet d'origine dans le nouveau projet, puis j'ai entrepris de reconfigurer le nouveau projet pour qu'il corresponde aux paramètres du projet d'origine. 

Le nouveau projet, utilisant les mêmes plugins, cadres et paramètres de construction, a réussi à créer une archive, contrairement au projet original. Ce n'est pas une solution idéale - mais cela a fonctionné.

2
Jeffrey D. Hoffman

J'étais confronté au même problème lors de la copie de mon projet dans un autre dossier . J'utilise Phonegap 2.0.0 . Après avoir essayé plusieurs solutions sans succès, j'ai lancé Product-> Clean et tout fonctionnait correctement . Ne me demandez pas pourquoi mais ce chemin a déjà résolu plusieurs petits problèmes auxquels je devais faire face, à savoir le changement des fichiers splash et icône, qui n'étaient pas mis à jour sur le périphérique . J'espère que cela vous aidera.

1
Lano

Comme parfois, une solution acceptée peut ne pas aider tout le monde avec un problème similaire mais peut-être sans rapport.

Mon observation était similaire (CDVViewController.h non trouvé). Tout d’abord, assurez-vous que les paramètres TARGET incluent les "chemins de recherche en-tête" décrits ci-dessus.

Suivez ensuite ce lien vers ce qui a fonctionné pour moi: http://outof.me/embedding-cordovalib-in-your-iosphonegap-app-project/

Je devais essentiellement relier Cordova en tant que dépendance cible, puis le lier à mes bibliothèques.

ALORS, si vous avez migré vers cordova 2.5.0, vous rencontrerez probablement un problème semblable à celui-ci: "" _ ALAssetPropertyDate ", référencé depuis:

  ___23-[CDVFile getMetadata:]_block_invoke in libCordova.a(CDVFile.o)

  ___27-[CDVFile getFileMetadata:]_block_invoke in libCordova.a(CDVFile.o)

"_OBJC_CLASS _ $ _ ALAssetsLibrary", référencé depuis:

  objc-class-ref in libCordova.a(CDVFile.o)

  objc-class-ref in libCordova.a(CDVFileTransfer.o)

  objc-class-ref in libCordova.a(CDVURLProtocol.o)

"

Si os, ajoutez le framework AssetLibrary et ayez un peu de paix.

1
Austin
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

Ajouter ceci à la section "Chemins de recherche" dans "Paramètres de construction" fonctionne parfaitement.

Chemins de recherche dans les paramètres de construction XCode

1
Brad Edwards

Vous devrez peut-être mettre à jour votre référence de sous-projet CordovaLib.

Lancer le terminal Accédez à l'emplacement où vous avez installé Cordova dans le sous-dossier bin. Par exemple, /Users/Shared/Cordova/phonegap-2.2.0/lib/ios/bin

Exécutez la commande ci-dessous où le premier paramètre est le chemin d'accès au fichier .xcodeproj de votre projet:

./update_cordova_subproject /path/to/your/project
0
KennyC

Xcode 7.2 est un peu différent 

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

doit être placé dans les chemins de recherche d'en-tête pour le débogage et la publication. 

Header search paths have a debug and release sub field

0
Carl Lewis