XCodeBuild没有从我的工作区中选择配置

时间:2014-04-01 16:01:03

标签: ios xcode xcodebuild

这是我的构建命令

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

即。工作区中没有目标也没有配置。

如何让目标对工作区可见?或者还有另一种方式吗?

3 个答案:

答案 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