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?
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
Sur Xcode 7.1 , vous devez mettre à jour le champheader search paths
de $(OBJROOT)/UninstalledProducts/include
à $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
.
Vous pouvez trouverheader search paths
sousbuild settings
->search paths
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
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,
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é.
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.
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.
$(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
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
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.