存档为iOS时找不到Phonegap CDVViewController.h文件

时间:2012-08-29 18:58:30

标签: ios xcode cordova

我目前正在使用Phonegap 2.0在XCode中开发iOS应用程序。该应用程序在模拟器和测试设备上构建并运行良好。

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

找不到CDVViewController.h文件。

有什么想法吗?

10 个答案:

答案 0 :(得分:154)

Xcode 6.x

$(OBJROOT)/UninstalledProducts/include添加到BuildSettings->标题搜索路径

Xcode 7.x

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include添加到BuildSettings->标题搜索路径

1.双击<multiple values>,您可以将其添加到。

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

enter image description here

答案 1 :(得分:33)

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

您可以在 header search paths - &gt;下找到 build settings search paths

答案 2 :(得分:10)

管理修复它。

我的TARGET设置的构建设置中的“页眉搜索路径”中缺少这些内容:

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

从多个来源获取解决方案:

升级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讨论

答案 3 :(得分:6)

将来参考:

我刚刚为自己解决了这个问题。

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

cordova platform remove ios
cordova platform add ios

希望这对我来说很有帮助,

答案 4 :(得分:2)

我遇到了完全相同的问题。我相信它可能已经被引入,因为我在使用Cordova的工具创建它之后移动了Xcode项目的位置。或者,我也可能没有正确设置Cordova iOS工具集 - 也许我没有运行安装程序包(我已经重建了这台机器几次)。此外,我在Google上找到的所有相关答案都表明我需要更改一些Cordova的核心课程 - 我不愿意这样做。

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

新项目使用相同的插件,框架和构建设置成功构建了一个存档,而原始项目却没有。这不是一个理想的解决方案 - 但它确实有用。

答案 5 :(得分:1)

将项目复制到另一个文件夹时,我遇到了同样的问题。 我正在使用Phonegap 2.0.0。 在尝试了几个没有成功的解决方案后,我运行了Product-&gt; Clean,一切正常。 不要问我为什么,但是这条路已经解决了我必须处理的几个小问题,即更改了未在设备上更新的启动和图标文件。 希望这有帮助。

答案 6 :(得分:1)

有时就是这种情况,一个公认的解决方案可能无法帮助每个人遇到类似但可能不相关的问题。

我的观察结果相似(找不到CDVViewController.h)。首先确保TARGET设置包括如上所述的“标题搜索路径”。

然后点击此链接了解对我有用的内容:http://outof.me/embedding-cordovalib-in-your-iosphonegap-app-project/

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

然后,如果你迁移到cordova 2.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框架并保持平静。

答案 7 :(得分:1)

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

将此添加到“构建设置”中的“搜索路径”部分可以完美地工作。

Search Paths in XCode Build Settings

答案 8 :(得分:0)

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

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

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

./update_cordova_subproject /path/to/your/project

答案 9 :(得分:0)

Xcode 7.2有点不同

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

需要放在标题搜索路径中以进行调试和发布。

Header search paths have a debug and release sub field