2014-04-01 47 views
2

採摘的配置這是我的生成命令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 

即,工作區中沒有目標和配置。

如何使工作區可見目標?還是有另一種方式?

回答

1

無法爲工作區配置目標。您可以根據特定目標創建方案,然後構建項目傳遞方案名稱。通過'-configuration'開關設置配置對我來說工作正常。我使用xcode v。5.0.2。

通常通過操作設置配置。您可以創建多個歸檔方案(使用不同的配置),並且根本不需要傳遞配置。將採取默認配置。

+0

是的,我認爲可能是這種情況。我想避免多種方案,因爲我已經有幾個了。感謝您的確認。 – Robert

+0

我想你不會避免有多個計劃。推薦Scheme以支持目標+配置。此外,xctool或apphance流等工具還推薦(甚至強制)使用方案。 – Opal

+0

我現在開始同意你的觀點,但是我最擔心的是,在歸檔操作中只有一個不同的配置會出現幾乎重複的方案。這意味着一個方案可能會更新某些內容,但另一個方案不會導致錯誤。 – Robert

0

謝謝@Opal的回答。我最初被你的陳述誤導了'配置'正在工作。

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聯編時,這並不工作,以及指定的配置將被自動忽略完成正確:

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