2015-10-20 31 views
2

我們的CI服務器確實在不同的包ID交換這樣我們的應用程序每天特設建築:xcodebuild聯編將在Xcode 6和備用包ID的協同設計,但不是在Xcode 7

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.example.app.daily" \ 
    app/app-Info.plist 

,然後建築和歸檔與xcodebuild聯編:

xcodebuild \ 
    CODE_SIGNING_REQUIRED=YES \ 
    CODE_SIGN_IDENTITY="$DEVELOPER_NAME" \ 
    PROVISIONING_PROFILE="$PROFILE_UUID" \ 
    -sdk iphoneos \ 
    -workspace "$XCODE_WORKSPACE" \ 
    -scheme "$XCODE_SCHEME" \ 
    clean archive \ 
    -archivePath "$ARCHIVE_PATH" 

和Xcode 6這個工作完美,但在Xcode 7我們得到這個錯誤:

Code Sign error: Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (「Daily AdHoc Profile for CI Servers」) has an AppID of 「com.example.app.daily」 which does not match your bundle identifier 「com.example.app」.

就好像Xcode 7沒有看到我們更改了捆綁ID。它正在尋找其他地方?

+1

嗨。當我安裝'xcode7'並進行了第一次構建時,xcode讓我進行升級項目設置。之後,'BUNDLE_ID'被放置在構建設置的'Packaging'部分,而不是'Info-Plist.plist'。 –

回答

8

@Mozilla指出我朝着正確的方向。升級到Xcode 7項目將捆綁包標識符轉移到構建設置的Packaging部分的「Product Bundle Identifier」設置中。

Xcode的幫助邊欄顯示此設置被命名爲PRODUCT_BUNDLE_IDENTIFIER。所以我的命令成爲:

xcodebuild \ 
    CODE_SIGNING_REQUIRED=YES \ 
    CODE_SIGN_IDENTITY="$DEVELOPER_NAME" \ 
    PROVISIONING_PROFILE="$PROFILE_UUID" \ 
    PRODUCT_BUNDLE_IDENTIFIER="com.example.app.daily" \ 
    -sdk iphoneos \ 
    -workspace "$XCODE_WORKSPACE" \ 
    -scheme "$XCODE_SCHEME" \ 
    clean archive \ 
    -archivePath "$ARCHIVE_PATH" 

它的工作!

相關問題