使用带有 PROVISIONING_PROFILE 的 xcodebuild 命令行签署应用程序失败

Signing app with xcodebuild command line with PROVISIONING_PROFILE fails

我正在尝试使用 Xcode 对我的应用程序命令行进行签名。

运行 xcodebuild MyApp.xcodeproj 上的命令行 :

xcodebuild -project "MyApp.xcodeproj" -target "MyApp" -sdk "iphoneos" -configuration *Release* PROVISIONING_PROFILE="xxxx-xxxx-xxxx-xxxx" CODE_SIGN_IDENTITY="iPhone Developer: something.com (SOMEVALUE)"

给出以下错误:

Check dependencies
Provisioning profile "iOS Team Provisioning Profile: *" doesn't include signing certificate "iPhone Developer: something.com (SOMEVALUE)".
Provisioning profile "iOS Team Provisioning Profile: *" is Xcode managed, but signing settings require a manually managed profile.
Code signing is required for product type 'Application' in SDK 'iOS 10.3'

** BUILD FAILED **

怎么了?我的 xcodebuild 命令中缺少什么?

如何包含它询问的签名证书?

我从下面的回答和评论中尝试了
据我了解,发布版本应该使用专用的 distribution profile。那存在于系统中。如果可以的话,我只需要知道如何将它与 xcodebuild 命令一起用于手动签名。

执行 security find-identity -p codesigning -v | grep "$CODE_SIGN_IDENTITY" 会给出一个包含 5 个签名身份的列表,其中一个清楚地标明为 iPhone Distribution: My Company (SOME123ID)

*那么,我可以使用带有 xcodebuild 手动签名的分发配置文件吗?如果是,如何获取分发配置文件的实际 ID 以用于 xcodebuild 命令?

自 Xcode8 后,不推荐使用 PROVISIONING_PROFILE。请尝试 PROVISIONING_PROFILE_SPECIFIERPROVISIONING_PROFILE_SPECIFIER="Human Readable Prov Profile Name"

可能还需要关闭 Xcode 的自动签名:

Xcode9:只需将 CODE_SIGN_STYLE="Manual" 附加到您的 xcodebuild 命令

Xcode8: sed -i '' 's/ProvisioningStyle = Automatic;/ProvisioningStyle = Manual;/' TestApp/TestApp.xcodeproj/project.pbxproj && xcodebuild ...

您可以使用 xcodebuild -version

在命令行上检查您的 Xcode 版本