Xcode 7.2:在“存档”中:出现问题:“找不到 Cordova/CDVViewController.h 文件”。虽然在构建应用程序时没有这样的问题

Posted

技术标签:

【中文标题】Xcode 7.2:在“存档”中:出现问题:“找不到 Cordova/CDVViewController.h 文件”。虽然在构建应用程序时没有这样的问题【英文标题】:Xcode 7.2: In “Archive”: Getting the issue: “Cordova/CDVViewController.h’ file not found ”. While there is no such issues in building the app 【发布时间】:2016-04-05 10:28:24 【问题描述】:

ios 中,我更新了 7.2。我能够毫无问题地将我现有的项目构建到我的设备上。但是,当需要归档项目以准备提交到应用商店时,我遇到了构建错误 - 未找到 Cordova/CDVViewController.h 文件。我已经完成了几乎所有我没有找到 Stack Overflow 和 Google 的修复/解决方法,但没有一个对我有用。如果我回到 Xcode 6.4,我可以毫无问题地构建和存档,但现在我无法构建到我的设备,因为它运行的是 iOS 9.1。

我猜这是新 Xcode 版本设置的某个配置问题。有没有其他人遇到过这个?同样,通常的嫌疑人(首选项 > 位置 > 派生数据 > 高级 > 唯一)、标题搜索路径等似乎都很好。

谢谢, 阿迪舍舒

【问题讨论】:

【参考方案1】:

由于搜索路径/包含,此问题似乎出现在 Xcode 7.2 中。

通过以下方式解决:

    在 Xcode TARGETS 中选择您的 [projectName]

    转到构建设置选项卡。

    确保过滤器设置为“全部”而不是“基本”。

    搜索“标题搜索路径”

    双击并将此路径添加到“调试”和“发布”:$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

    现在清理项目并重新启动 Xcode。

    能够制作BuildArchive

    仅此而已。

【讨论】:

这是正确答案。另外值得注意的是:构建设置选项卡默认为“基本”过滤器。确保选中“全部”,否则您将看不到标题搜索路径字段。 我看到这个答案抛出了很多,但我的项目已经有这个完全相同的字符串作为搜索头路径的一部分,但仍然找不到该文件。 :-( 不要忘记将它添加到所有路径,发布,而不仅仅是调试。我首先只添加到 Debug 并错过了 Release 并没有帮助。添加到发布解决了这个问题。谢谢! 我还必须删除旧的:$(OBJROOT)/UninstalledProducts/include 然后存档将运行。以前没有。 如果您不记得清理项目的快捷方式,请按Shift-Cmd-K【参考方案2】:

在尝试了所有解决方案都没有成功后,我跑了:

cordova platform update ios

这为我解决了问题。 (XCODE 7.3.1,科尔多瓦 6.3.0)

参考: Cordova app failing to Archive with Xcode 7.1 (Cordova/CDVViewController.h file not found)

【讨论】:

谢谢。我有 Xcode 7.2 版,这解决了我的问题。 奇怪的是,这似乎让我变得更糟了。我必须删除 ios 然后再次添加它,然后才能摆脱添加的 xcode 错误。 这解决了我与cordova 7.1 和使用CDVViewController.h 的inappbrowser 插件的问题; github.com/purplecabbage/GDCordova/blob/master/docs/… 这解决了我使用 Xcode 10.2 和 Cordova 6.0.0 的问题。【参考方案3】:

如果添加这一行:

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

到 headers-search-path (如 'im3r3k' 答案中所述)没有解决这个问题,也设置这个:

Build Settings -> Architectures -> Build Active Architecture Only -> YES

【讨论】:

【参考方案4】:

您应该将项目的 Cordova iOS 版本更新为 3.9.2(截至 2016 年 3 月 11 日的最新版本 3)。我在使用 3.8.0 时遇到了同样的错误,它已在 3.9 中修复。

或者,您可以升级到 Cordova iOS v4.1.0(截至 2016 年 3 月 11 日的前沿),但请注意您将失去对 iOS 6 和 7 的支持,以及 cordova-plugin-screen-orientation isn't updated to use 4 yet 所以您必须将您的应用锁定为纵向或横向。

编辑:

无需升级,您可以在 XCode 中手动修复此问题。去

构建设置 -> 标题搜索路径: 变化:

$(OBJROOT)/UninstalledProducts/include

到:

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

(related issue on apache.org)

【讨论】:

【参考方案5】:

这为我解决了问题:

在 Xcode 中打开您的项目 转到首选项 -> 位置 -> 高级 选择“唯一”作为构建位置的选项 产品 -> 清洁 产品 -> 构建

取自https://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/40

【讨论】:

我已经尝试了构建配置中的所有其他更改,但最终我的项目可以安装在真实设备上 我也尝试了上述所有更改,但没有一个起作用;我已经从一个古老版本的 Xcode(回到它与我的 iPod 一起工作时)升级到现在的 8.3 版本,并且上面需要添加的所有路径都已经在调试和发布中,但它仍然无法找到他们;添加独特的工作,哇哦,谢谢!【参考方案6】:

我也遇到了这个问题,但对我来说,添加标题搜索的路径是不够的。我已将 CDVViewController.h 添加到子项目的“公共”部分 CordovaLib.xcodeproj -> CordovaLib(target) -> Build Phases -> Headers -> Public

【讨论】:

【参考方案7】:

对我来说,$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include 已经在 Header Search Paths 中(在 El Capitan 中使用 XCode 8)。然后,我在 User Header Search Paths 中添加了 CordovaLib 文件夹的特定路径,并启用了 recursive 选项(对于像我这样没有经验的 XCode 用户,在树视图(第一个节点)中选择项目请参阅“构建设置”!!)

但要注意空格!在丢失了很多之后,从查找器窗口中拖动文件夹会更安全,它填充为$(SRCROOT)/..(续),这不是预期的,但确实有效..

同样在XCode/Preferences/Locations/Custom Paths 中,我添加了一个CORDOVALIB 名称,该名称与之前的文件夹相同,方式相同(这次使用的是完整路径,没有$(SRCROOT) 的东西) .

我花了好几个小时才弄清楚...

【讨论】:

如果路径中有空格,可以在其周围添加引号"$(SOME_VAR)some path/with spaces" 谢谢@Jacksonkr。不确定我是否没有尝试过(这很明显,但非常有用),或者路径太长我迷路了。不过,这仍然是一个很好的评论,谢谢。【参考方案8】:

上述解决方案对我不起作用。

In my case, when I build my iOS platform, CordovaLib folder was not included.
1. Delete existing CordovaLib.xcodeproj
2. Add existing files. Add CordovaLib.xcodeproj from CordovaLib folder
3. Add dependencies and select CordovaLib
4. Add link Binaries with library and select libCordova.a

就是这样!

【讨论】:

我执行了步骤 1-3,它对我有用。我不确定在哪里执行第 4 步。【参考方案9】:

我使用的是 xcode 7.3,但遇到了同样的问题。在我的情况下,错误是由于执行“cordova platform add ios”时发生的错误,因为在 res 文件夹中找不到图像而发生错误,这避免了 cordova platform add ios 正确完成。

【讨论】:

【参考方案10】:
    在您的 Xcode 项目设置中选择 TARGETS 在 TARGETS 中选择构建设置选项卡 在“构建设置”选项卡下的子选项中,请务必选择“全部” 向下滚动到“搜索路径”部分 定位标题搜索路径 将以下配置添加到 Release 选项(作为其自己的行上的新值):$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include 清理项目:Command + Shift + K 重启 Xcode

以下屏幕截图展示了在执行完第 1 步到第 6 步后您应该在 Xcode 7.2 中看到的内容(以蓝色突出显示的行显示添加的配置):

【讨论】:

【参考方案11】:

我的问题之一是一个插件cordova-plugin-inappbrowser。确保您的插件已更新。

【讨论】:

【参考方案12】:

还要在 Build Settings 中设置 ENABLE BITCODE = NO

【讨论】:

【参考方案13】:

我遇到了同样的问题,所以我刚刚从配置文件中删除了<icon src="icon.png" />。然后我使用cordova platform remove ios然后cordova platform add ios删除并添加了IOS平台

【讨论】:

我敢说这与删除图标关系不大,更多的是与 ios 的删除/添加有关【参考方案14】:

对我来说,以下工作

Xcode 8.1 ios 10.x

(目标 -> 构建设置 -> 标头搜索路径)

“$PODS_ROOT/Cordova/CordovaLib/Classes/Public”

作为

“$PODS_ROOT/Headers/Public”文件夹为空

【讨论】:

【参考方案15】:

我在删除并重新添加项目时遇到了这个问题,一些资源文件,例如图标或闪屏,导致项目根本无法创建。

【讨论】:

【参考方案16】:

CDV.h 文件位于 CordovaLib/CordovaLib.xcodeproj/public 中。你可以给我这条路并为我工作。

我不知道如何给出相对路径。所以我将文件拖放到""#import 中,例如:

#import "dragged file full path"

【讨论】:

【参考方案17】:

卸载并重新安装 Cordova 平台

cordova platform rm ios

cordova platform add ios

【讨论】:

【参考方案18】:

补充响应。添加

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

不要替换看起来相似的现有行,它仍然需要向后兼容 Xcode 7 和 Xcode 6.4。

click here

【讨论】:

以上是关于Xcode 7.2:在“存档”中:出现问题:“找不到 Cordova/CDVViewController.h 文件”。虽然在构建应用程序时没有这样的问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Archive 在子项目中找不到头文件

图标没有出现在 Xcode 存档中?

XCode 无法创建存档并出现“无法生成进程 /usr/bin/make”错误

Xcode 7.2 语法高亮在 Swift 文件中闪烁

无法构建或存档运行良好的 Xcode 项目

CollectionViewCell对齐XCode 7.2