iOS版存档时未findPhonegap CDVViewController.h文件

我目前正在使用Phonegap 2.0在XCode中开发iOS应用程序。 该应用程序在仿真器中以及在testing设备上build立并运行良好。

当我尝试存档分发的应用程序时出现问题。 存档失败,并显示以下消息:

未findCDVViewController.h文件。

有任何想法吗?

Xcode 6.x

$(OBJROOT)/UninstalledProducts/include到BuildSettings-> Header Search Paths

Xcode 7.x

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include到BuildSettings-> Header Search Paths

1.双击<multiple values> ,你可以添加它。

2.将$(OBJROOT)/UninstalledProducts/include更改$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

在这里输入图像描述

Xcode 7.1中 ,您需要将$(OBJROOT)/UninstalledProducts/include header search paths字段更新为$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

您可以在build settings – > search paths下findheader search paths search paths

pipe理解决它。

这些在我的TARGET设置的构build设置中的“标题searchpath”中缺失:

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

从多个来源获取解决scheme:

升级Cordova iOS(从31开始) http://docs.phonegap.com/en/2.0.0/guide_upgrading_ios_index.md.html#Upgrading%20Cordova%20iOS

错误报告https://issues.apache.org/jira/browse/CB-1122

讨论groups.google.com/forum/?fromgroups=#!topic/phonegap/IcR8-ijrUfk

讨论groups.google.com/forum/?fromgroups=#!topic/phonegap/PzqZEm8QKmc

对于未来的参考:

我只是为自己解决这个确切的问题。

如果您正在使用Cordova cli,并更新config.xml,则可以将ios作为平台删除,然后将其添加回去。 然后再从XCode存档。

 cordova platform remove ios cordova platform add ios 

希望有所帮助,为我完美工作,

我遇到了完全相同的问题。 我相信可能是因为我在用Cordova的工具创buildXcode项目之后移动了Xcode项目的位置。 或者,也可能是我没有正确设置cordovaiOS工具集 – 也许我没有运行安装程序包(我已经重build了这台机器几次)。 而且,我在Google上发现的所有相关答案都表明,我需要更换cordova的一些核心课程 – 我不愿意这样做。

我的解决scheme是使用Cordova create命令来构build一个全新的Xcode项目。 我将原来的项目的www目录复制到新项目中,然后重新configuration新项目以匹配原始项目的设置。

使用相同的插件,框架和构build设置的新项目成功构build了一个存档,而原始项目不能。 这不是一个理想的解决scheme – 但它的工作。

当我的项目复制到另一个文件夹时,我面临同样的问题。 我正在使用Phonegap 2.0.0。 在尝试了几个解决scheme但没有成功之后,我运行了产品 – >清理,一切正常。 不要问我为什么,但这条道路已经解决了我必须处理的几个小问题,即更改飞溅和图标文件,谁没有更新设备上。 希望这个帮助。

有时候,一个被接受的解决scheme可能不会帮助每个人都有类似的,但也许不相关的问题。

我的观察是类似的(CDVViewController.h未find)。 首先确保目标设置包括如上所述的“标题searchpath”。

然后按照这个链接,为我工作: http : //outof.me/embedding-cordovalib-in-your-iosphonegap-app-project/

基本上我需要重新链接cordova作为目标依赖关系,然后将其链接到我的库。

那么,如果你迁移到cordova2.5.0,你可能会碰到一个问题,吐出类似于这个:“_ALAssetPropertyDate”,引用:

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

“_OBJC_CLASS _ $ _ ALAssetsLibrary”,引用自:

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

如果os,添加AssetLibrary框架,并有一定的安宁。

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

将其添加到“构build设置”中的“searchpath”部分可以很好地工作。

XCode构build设置中的searchpath

您可能需要更新您的CordovaLib子项目参考。

启动terminal转到您在bin子文件夹中安装Cordova的位置。 例如/Users/Shared/Cordova/phonegap-2.2.0/lib/ios/bin

运行下面的命令,其中第一个参数是项目的.xcodeproj文件的path:

 ./update_cordova_subproject /path/to/your/project 

Xcode 7.2有点不同

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

需要放在标题searchpath中进行debugging和发布。

标题搜索路径有一个调试和发布子字段