38

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

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

未找到 CDVViewController.h 文件。

有任何想法吗?

4

10 回答 10

154

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

在此处输入图像描述

于 2012-09-26T07:45:54.527 回答
33

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

您可以header search pathsbuild settings->下找到search paths

于 2015-10-23T01:00:31.137 回答
10

设法修复它。

我的目标设置的构建设置中的“标题搜索路径”中缺少这些:

"$(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 讨论

于 2012-10-24T16:14:43.950 回答
6

对于未来的参考:

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

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

cordova platform remove ios
cordova platform add ios

希望对我有帮助,完美地工作,

于 2015-10-26T18:06:05.323 回答
2

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

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

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

于 2012-09-05T19:47:14.573 回答
1

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

于 2012-11-21T22:05:11.567 回答
1

有时,一个公认的解决方案可能无法帮助每个人解决类似但可能不相关的问题。

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

然后按照这个链接找到对我有用的东西: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 框架并有一些平静。

于 2013-03-15T05:09:18.760 回答
1
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

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

XCode 构建设置中的搜索路径

于 2015-10-30T14:02:55.590 回答
0

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

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

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

./update_cordova_subproject /path/to/your/project
于 2013-05-17T03:28:18.063 回答
0

Xcode 7.2 有点不同

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

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

标头搜索路径具有调试和发布子字段

于 2016-02-16T00:31:28.107 回答