xcodebuild联编将在Xcode 6和备用包ID的协同设计,但不是在Xcode 7

问题描述:

我们的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'。 –

@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" 

它的工作!