归档分发时找不到Phonegap CDVViewController.h

时间:2012-12-14 17:25:08

标签: cordova cordova-2.0.0

我在 Xcode 4.5.2 Cordova / Phonegap 2.2版中遇到此问题。这是一个新项目 - 所以在没有修改www文件夹中的任何内容的情况下立即开始。当我在Debug模式下构建时,一切都很顺利。当我尝试在分发模式(AdHoc或App store)中构建存档时,我收到此错误:

'Cordova/CDVViewController.h' file not found

我是否可以发布任何进一步的信息以帮助澄清情况?

我尝试过几次从头开始(根据我见过的一些类似问题的建议)以及卸载和重新安装Xcode以获得良好的衡量标准。我的Xcode 派生数据位置设置为唯一(根据其他类似问题)。我还对该项目执行update_cordova_subproject无效。

非常感谢你们的帮助!

4 个答案:

答案 0 :(得分:8)

几周前我遇到了同样的问题,我做了一些研究,试图找到原因和解决方案,但最终尝试了不同的方法,然后突然和随机,它只是工作。究竟是什么让它发挥作用 - 我不知道,但我会建议你采取追踪和错误的方法并尝试以下

我已按照相关性(解决您的问题的可能性)以及复杂性(升序)的顺序列出了建议的解决方案

方法1

转到 BuildSettings > 标头> 搜索路径并添加以下行:

$(OBJROOT)/UninstalledProducts/include

可以找到更多信息/建议here

方法2

出于某种原因,升级到新的2.x版本的Cordova时,似乎 Cordova中的依赖项丢失。假设Cordova 2.x的原因是改变了iOS项目中框架的引用方式。 请尝试按照以下步骤操作 This article

方法3

如果A1和A2无法解决您的问题,您收到的错误消息可能会有一些误导性质,迫使人们将替代方法与其他潜在原因联系起来。 证书和代码签名身份将是下一个需要考虑的地方。在临时门户重新创建新内容中尝试从keychain / xcode中删除撤消,然后添加它们到您的Xcode项目。尝试存档并查看其是否有效。

方法4

确保主项目 CordovaLib.xcodeproj 都设置为仅构建活动架构

其他建议

您可能已尝试过其中一项或多项但只是为了确保

  1. 从全新安装中重新安装cordova ,在最新版本的Xcode上显式安装命令行工具(在执行此操作之前退出Xcode)
  2. 将旧项目www文件夹复制到新命令行中,删除当前包含的所有内容后创建www文件夹
  3. 运行时请关注错误控制台,看看是否有任何错误可能会进一步帮助识别此问题的根源。
  4. 请告诉我,如果这些提议的解决方案都没有解决您的问题,那么我们只需要深入挖掘,直到我们找到可行的解决方案

答案 1 :(得分:8)

Xcode 6.x

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

Xcode 7.x

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

它为我工作。希望它可以帮到你..

答案 2 :(得分:2)

在尝试了我能找到的每一个解决方案(包括Jonathan为这个问题发布的解决方案)后,我没有成功解决了我的问题。希望这个答案添加到其他人的名单中将有助于其他人。如果我的答案不适用于您的类似情况,请查看Jonathan发布的下面列表,其中列出了其他可能的解决方案。

我有点独特的情况:在2.0版本的Phonegap中(当我能够编译时),我为AdHoc和AppStore创建了一个自定义构建配置。我们的默认设置是“Debug”和“Release”,我创建了两个自定义配置,因此当我从AppStore版本切换到AdHoc版本时,我没有必要切换代码签名证书。

问题/解决方案:在post 2.0 Phonegap中我们有一个CordovaLib.xcodeproj子项目的实例(这是新的)...这意味着如果我要在我的主项目中使用自定义构建,我必须在该子项目中添加该自定义构建配置。

Project Navigator>>单击CordovaLib.xcodeproj>>单击项目 CordovaLib>>配置>>确保在此列表中存在您要使用的任何构建(按名称)。假设您已经在主项目中处理了过去已创建这些自定义构建配置的内容,则无需进一步配置。

答案 3 :(得分:0)

我在xcode 4.6.2上使用Cordova 2.7.0时遇到了这个问题,并通过更改派生数据的构建位置设置来修复它:

转到xcode->偏好设置 单击派生数据下的高级按钮 选择唯一

我遇到这个问题的原因是因为我正在重新启动旧项目的新“版本”作为xcode中的新项目,并且在创建它之后我更改了包标识符以匹配我的旧项目(这样做可以让你将您的新项目作为应用商店中旧项目的更新提交。 派生数据的默认设置是Legacy,因此它使用原始包标识符而不是新标识符来查找cordova文件。

希望这可以帮助可能遇到类似事情的人