我目前正在使用Phonegap 2.0在XCode中开发iOS应用程序。该应用程序在模拟器和测试设备上构建并运行良好。
当我尝试存档应用以进行分发时,会出现问题。存档失败,并显示以下消息:
找不到CDVViewController.h文件。
有什么想法吗?
答案 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
答案 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
将此添加到“构建设置”中的“搜索路径”部分可以完美地工作。
答案 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
需要放在标题搜索路径中以进行调试和发布。