为什么在生成.app文件时,xcode需要打开?

时间:2015-01-19 09:02:54

标签: ios xcode compilation xcodebuild

我正在编写一个脚本来构建并生成来自特定目标和方案的.app文件(与模拟器一起使用)。我使用的是:

DEVELOPER_DIR=$xcode_app_path/Contents/Developer xcodebuild -sdk iphonesimulator -scheme "${SCHEME}" -target "${TARGET}" ONLY_ACTIVE_ARCH=NO CONFIGURATION_BUILD_DIR="${build_folder}" clean build

问题是,我需要打开XCode才能使上面的代码正常工作,否则会向我显示一条消息告诉我:

  

xcodebuild:错误:项目“项目名称”不包含名为“$ {SCHEME}”的方案

我还是,不明白XCode在后台做什么。但是如果我打开IDE并运行脚本,那就行了。如果我打开并稍后关闭它,并运行脚本工作。如果项目尚未首先使用XCode打开,那么它无效。

任何建议都会被证实

1 个答案:

答案 0 :(得分:1)

如果有人面对同样的经历,这就是我发现的。并且工作。

嗯,当您通过命令行创建新方案时显然,默认情况下不是“shared”。所以当你开始链接到文件夹

xcshareddata --> xcschemes 

(尝试使用命令行构建)没有什么可以链接的。当您打开项目时,Xcode会自动执行此操作...

来自 CocoaPods 的人们面临同样的问题,因此他们创建了一个共享该方案的Ruby gem,并将该文件放在 xcscheme 文件夹中:

这是回购:https://github.com/CocoaPods/Xcodeproj

另外,感谢this postthis post我发现了如何使用 xcodeproj gem,并使用我放下的脚本更改共享选项:

require 'xcodeproj'
xcproj = Xcodeproj::Project.open("MyProject.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save