web-dev-qa-db-ja.com

PROVISIONING_PROFILEを使用してxcodebuildコマンドラインでアプリに署名すると失敗する

Xcodeを使用してアプリのコマンドラインに署名しようとしています。

_MyApp.xcodeproj_でxcodebuildコマンドラインを実行するそのように

_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つの署名IDのリストが表示され、そのうちの1つはiPhone Distribution: My Company (SOME123ID)として明確に示されます。

*では、xcodebuildの手動署名で配布プロファイルを使用できますか?はいの場合、xcodebuildコマンドで使用する配布プロファイルの実際のIDを取得するにはどうすればよいですか?

PROVISIONING_PROFILEの使用は、Xcode8以降非推奨です。代わりにPROVISIONING_PROFILE_SPECIFIERを試してください。 PROVISIONING_PROFILE_SPECIFIER="Human Readable Prov Profile Name"

Xcodeの自動署名をオフにする必要がある場合もあります。

Xcode9:xcodebuildコマンドにCODE_SIGN_STYLE="Manual"を追加するだけです

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

Xcodeのバージョンは、コマンドラインでxcodebuild -versionを使用して確認できます。

13
Sven Driemecker