xcodebuild将使用Xcode 6和备用软件包ID进行编码,但不能与Xcode 7进行编码

bug*_*oaf 2 xcode xcodebuild info.plist codesign ios

我们的CI服务器通过交换不同的捆绑ID来执行我们应用程序的每日临时构建,如下所示:

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.example.app.daily" \
  app/app-Info.plist
Run Code Online (Sandbox Code Playgroud)

然后使用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"
Run Code Online (Sandbox Code Playgroud)

使用Xcode 6,这非常有效,但在Xcode 7中,我们遇到了这个错误:

代码签名错误:供应配置文件不匹配捆绑标识符("为CI服务器每日的AdHoc配置文件")在构建设置中指定的供应配置文件具有"com.example.app.daily"一个AppID不匹配您的包标识符"com.example.app".

就好像Xcode 7没有看到我们更改了包ID.它在寻找其他地方吗?

bug*_*oaf 8

@Mozilla指出了我正确的方向.升级到Xcode 7项目会将包标识符移动到构建设置的"打包"部分中的"产品包标识符"设置中.

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"
Run Code Online (Sandbox Code Playgroud)

它工作了!