在Xcode终端运行时出现“Cordova/CDVViewController.h”文件未找到的错误

7
当我试图从Xcode终端构建我的代码时,它失败并给出了一个错误:“未找到Cordova / CDVViewController.h”但是当我从Xcode构建它时,它构建得很好。
在我的Xcode中,我已经完成了整个Cordova子目录的升级,如升级 Cordova所述。此外,当我运行列表时,我看到以下内容:
xcodebuild -list
关于“myProject”项目的信息:
Targets:
    myProject

Build Configurations:
    Debug
    Release

If no build configuration is specified and -scheme is not passed then "Release" is used.

Schemes:
    myProject
    CordovaLib

环境:Xcode5,OS 10.8.5

我有什么遗漏吗?我之所以这样做是因为我想通过Jenkins运行它。我原以为这是一个Jenkins的问题,但后来发现问题出在xcode终端无法识别CordovaLib。


不是完全相同的问题,因为涉及到不同版本的Xcode和iOS,但这里有一个非常类似的问题的解决方法:https://github.com/meteor/meteor/issues/5496 - MastaBaba
3个回答

17

我花了太多时间来找出这个问题的解决方案,所以不分享一下真是可惜。导致这个问题出现可能有许多可能性,但如果你觉得在CordovaLib中已经设置好了一切(就像我一样!),但仍然存在相同的问题,那么这可能是其中之一。发生的情况是当我运行时,

 xcodebuild  -scheme myProject -configuration "Release"

编译成功了,但如果你不提供“-scheme”,它将默认失败使用“Release”。方案的参数将控制构建哪些目标以及如何构建,myProject方案包含了子文件夹和对Cordovalib的引用。

现在,转到Jenkins,您需要在XCode插件的高级XCode构建选项部分的“XCode Schema File”文本框中提供方案。

我的设置是将Xcode作为我的从机,但这可能仍适用于您拥有的任何Xcode和Jenkins组合 - 因此,当我运行

 xcodebuild  -list

我收到了以下消息:

If no build configuration is specified and -scheme is not passed then "Release" is used.

This project contains no schemes.

解决方法是,在您的Xcode项目中,转到产品|方案|管理方案,并选中“共享”到myProject和CordovaLib两个项目。编译。检入(因为我从TFS获取这个)。再次运行“-list”命令,您将看到刚刚共享的方案。

希望这能帮到您!


你应该接受你的答案。这解决了我的问题(将我的方案添加到 Jenkins 中的 XCode 部分)。 - ganders
对我来说,这是因为在首选项中选择了“遗留版”>位置>高级。 - Jacksonkr

5
非常感谢!只需添加“-scheme”和“-configuration”参数即可解决我的问题。如果能帮助其他人,这是我使用的完整命令行:
xcodebuild -scheme MyProject -configuration "Release" -arch i386 -sdk iphonesimulator7.1
我使用它生成了一个iOS模拟器构建,以便提交一个Phonegap / Cordova应用程序到Facebook Review

0
在构建设置中,将此项目添加到"Header Search Path"
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接