这是我的构建命令
xcodebuild -workspace MyApp.xcworkspace \
-scheme MySchemeName \
-configuration AdHoc \
clean archive
它可以工作,但它使用归档方案的默认配置(release
)而不是我指定的AdHoc
。事实上,如果你指定-scheme ASchemeNameThatDosnNotExist
它仍然有效,并默默地忽略配置名称。
项目设置如下:
xcodebuild -list
Targets: MyApp MyAppTests Build Configurations: Debug AdHoc Release If no build configuration is specified and -scheme is not passed then "Release" is used. This project contains no schemes.
工作区就像这样:
xcodebuild -workspace MyApp.xcworkspace -list
Schemes: MyApp Pods Pods-AFNetworking .. More pods
即。工作区中没有目标也没有配置。
如何让目标对工作区可见?或者还有另一种方式吗?
答案 0 :(得分:1)
无法为工作区配置目标。您可以基于特定目标创建方案,然后构建传递方案名称的项目。通过' -configuration'设置配置开关对我来说很好。我使用xcode v.5.0.2。
通常,通过操作设置配置。您可以创建多个归档方案(具有不同的配置),并且根本不需要通过配置。将采用默认配置。
答案 1 :(得分:0)
谢谢@Opal的回答。我最初误导你的声明“配置'工作。实际上,这不起作用,并且在通过工作区执行xcodebuild时会以静默方式忽略指定的配置:
xcodebuild -workspace $WORKSPACE.xcworkspace \
-scheme $SCHEME \
-configuration QA \
clean archive -archivePath archives/$APP_NAME
xcodebuild -exportArchive \
-archivePath archives/$APP_NAME.xcarchive \
-exportPath . \
-exportOptionsPlist $WORKSPACE/ExportOptions.plist
mv $APP_NAME.ipa $APP_NAME.$VERSION.$BUILD_NUMBER.ipa
但是,在为该配置创建自定义共享方案后," myapp-QA",构建正确完成:
xcodebuild -workspace $WORKSPACE.xcworkspace \
-scheme $SCHEME-QA \
clean archive -archivePath archives/$APP_NAME-QA
xcodebuild -exportArchive \
-archivePath archives/$APP_NAME-QA.xcarchive \
-exportPath . \
-exportOptionsPlist $WORKSPACE/ExportOptions.plist
mv $APP_NAME-QA.ipa $APP_NAME.$VERSION.$BUILD_NUMBER.qa.ipa
答案 2 :(得分:0)
使用配置和方案参数存在问题。方案有自己的配置,并且很可能会覆盖通过 xcodebuild -configuration
指定的配置。
您可以使用配置和目标来解决它:
xcodebuild -project <project>.xcodeproj \
-configuration <configuration> \
-target <target> \
-sdk iphonesimulator \
clean build