4

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

'Cordova/CDVViewController.h' file not found

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

我已经尝试过几次从头开始(根据我见过的一些类似问题的建议)以及卸载和重新安装 Xcode 以获得良好的效果。我的 Xcode派生数据位置设置为唯一(根据另一个类似的问题)。我也update_cordova_subproject对项目进行了无效果。

非常感谢这里的任何帮助!

4

4 回答 4

8

几周前我遇到了同样的问题,我做了一些研究,试图找出原因和解决方案,但最终尝试了不同的方法,然后突然随机地,它就奏效了。究竟是什么使它起作用-我不知道,但我建议您采用跟踪和错误方法并尝试以下方法

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

方法一

转到BuildSettings > Header > Search Paths并添加以下行:

$(OBJROOT)/UninstalledProducts/include

更多信息/建议可以在这里找到

方法二

出于某种原因,在升级到新的 2.x 版本的 Cordova 时,似乎缺少 Cordova 中的依赖项。这被认为是 Cordova 2.x更改了iOS 项目中引用框架的方式的原因。尝试按照 本文的步骤

方法 3

如果 A1 和 A2 未能解决您的问题,则您收到的错误消息可能具有一定的误导性,迫使人们寻找其他潜在原因的替代方法。证书和代码签名身份将是下一个要研究的地方。尝试从 keychain/xcode中删除它们,从临时门户中撤消它们,重新创建新的并将它们添加到您的 Xcode 项目中。尝试存档,看看它是否有效。

方法 4

确保您的主项目CordovaLib.xcodeproj都设置为Build Active Architecture Only

其他建议

您可能已经尝试过其中的一种或多种,​​但只是为了确保

  1. 从全新安装重新安装cordova ,在最新版本的Xcode上显式安装命令行工具(在执行此操作之前退出Xcode)
  2. 在删除当前包含的所有内容后,将旧项目 www 文件夹复制到新命令行创建的 www 文件夹中
  3. 运行时密切关注错误控制台,看看是否有任何错误可能进一步帮助确定此问题的根源。

如果这些提议的解决方案都没有解决您的问题,请告诉我,那么我们只需要更深入地挖掘,直到找到可行的解决方案。

于 2012-12-19T01:22:39.917 回答
8

Xcode 6.x

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

Xcode 7.x

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

这对我有用。希望它可以帮助你..

于 2015-10-24T03:28:29.210 回答
2

在尝试了我能找到的所有解决方案(包括乔纳森为这个问题发布的解决方案)但没有成功后,我已经解决了我的问题。希望添加到其他人列表中的这个答案会帮助其他人。如果我的回答不适用于您的类似情况,请查看以下由 Jonathan 发布的列表,该列表是其他可能解决方案的完整列表。

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

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

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

于 2012-12-22T15:42:39.477 回答
0

I encountered this problem when using Cordova 2.7.0 on xcode 4.6.2 and fixed it by changing the setting for the build location for derived data:

Go to xcode->preferences Clicked advanced button under derived data Select unique

The reason I encountered this problem was because I was restarting a new 'version' of an old project as a new project in xcode, and after creating it I changed the bundle identifier to match my old project (Doing this allows you to submit your new project as an update of your old project in the app store). The default setting for derived data was Legacy, so it was looking for the cordova files using the original bundle identifier, not the new one.

Hope this helps someone that may encounter something similar

于 2013-06-01T06:02:15.293 回答