在Xcode终端中运行时找不到'Cordova/CDVViewController.h'文件

mar*_*dob 7 terminal xcode jenkins cordova xcode5

因此,当我尝试从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
Run Code Online (Sandbox Code Playgroud)

环境:Xcode5,OS 10.8.5

有什么我想念的吗?之所以我这样做是因为我试图通过jenkins来运行它.我认为这是一个jenkins问题,但后来我把它归结为没有看到CordovaLib的xcode终端.

mar*_*dob 17

我花了太多时间找出解决方案,所以不分享是一种耻辱.可能有很多可能的原因导致出现这个问题,但是如果你觉得你已经在CordovaLib中设置了所有东西(就像我一样!)并且仍然存在同样的问题.这可能是原因之一.发生的事情是我跑的时候

 xcodebuild  -scheme myProject -configuration "Release"
Run Code Online (Sandbox Code Playgroud)

它正在构建成功,但是如果你不提供"-scheme"它将默认失败,它正在使用"Release".该方案的参数将控制构建哪些目标以及如何构建它们,myProject方案包含子文件夹和对Cordovalib的引用.

现在,转移到Jenkins,您需要在XCode插件的Advanced Xcode构建选项部分的"Xcode Schema File"文本框中提供该方案.

我的设置是Xcode作为我的奴隶,但这可能仍然适用于你拥有的任何Xcode和Jenkins组合 - 所以当我运行

 xcodebuild  -list
Run Code Online (Sandbox Code Playgroud)

我收到以下消息的消息:

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

This project contains no schemes.
Run Code Online (Sandbox Code Playgroud)

对此的解决方案是,在您的xcode项目中,转到Product | Scheme | Manage Scheme并选中"Shared"到两个项目myProject和CordovaLib.编译.办理登机手续(因为我从TFS获取此信息).再次执行"-list"命令,您将看到刚刚共享的方案.

希望这可以帮助!


小智 5

非常感谢 !只需添加"-scheme"和"-configuration"参数就可以解决问题.

如果它可以帮助其他人,这里是我使用的完整命令行:

xcodebuild -scheme MyProject -configuration"Release"-arch i386 -sdk iphonesimulator7.1

我用它来生成ios模拟器版本,以便将Phonegap/Cordova应用程序提交给Facebook Review