iOSアプリケーションプロジェクト用に自動ビルドサーバーを構成しています。私はそれのほとんどをしました。さて、それは最終ラウンドです。セキュリティ。
開発者証明書/秘密鍵とプロビジョニングプロファイルは、GUIを使用してキーチェーンに簡単にインストールできます。しかし、コマンドラインを介してこれを実行し、構成プロセスも自動化したいと思います。コマンドラインを介した証明書、秘密鍵、プロビジョニングプロファイルのエクスポート/インポート。
任意の推奨事項は非常に高く評価されます。
iOSアプリケーションプロジェクト用に自動ビルドサーバーを構成しています。私はそれのほとんどをしました。さて、それは最終ラウンドです。セキュリティ。
開発者証明書/秘密鍵とプロビジョニングプロファイルは、GUIを使用してキーチェーンに簡単にインストールできます。しかし、コマンドラインを介してこれを実行し、構成プロセスも自動化したいと思います。コマンドラインを介した証明書、秘密鍵、プロビジョニングプロファイルのエクスポート/インポート。
任意の推奨事項は非常に高く評価されます。
codesignに秘密鍵にアクセスするためのACLが与えられていないため、alwaysallowGUIがトリガーされています。これを試して:
security unlock-keychain -p <my keychain password>
security import Certificate.p12 -k ~/Library/Keychains/login.keychain -P password -T /usr/bin/codesign
-Tフラグは、Certificate.p12にインポートするキーにcodesignがアクセスできるようにすることをセキュリティに指示します。
私はからヒントを見つけました:http: //lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html
コマンドはsecurityです。マニュアルページを読んでいます。トライアル後にこの回答を更新します:)
- (編集) -
まず、キーチェーン内の証明書/キーへのアクセスを手動で「常に許可」する必要があります。GUIなしでこれを行う方法がわかりません。
そしてsecurity unlock-keychain、すべてのセッションでビルドツールを実行する前にコマンドを実行します。SSHを使用したので、ログインセッションごとに1回実行する必要がありました。
コマンドラインを使用して証明書をインストールします。
security unlock-keychain -p <machine login password>
security import my_certificate.p12 -k ~/Library/Keychains/login.keychain -P my_password -T /usr/bin/codesign
モバイルプロビジョニングプロファイルをインストールします。
簡単な方法:
#install profiles, will trigger xcode to install the profile
open "my_profile1.mobileprovision"
# wait for xcode to process the request
sleep 3
# shut down xcode (optional)
kill $(ps aux | grep 'Xcode' | awk '{print $2}')
複雑な方法:
PROVISION_FILE ="my_profile.mobileprovision"
uuid=`security cms -D -i ${PROVISION_FILE } | grep -aA1 UUID | grep -o "[-a-zA-Z0-9]\{36\}"`
cp "$PROVISION_FILE " ~/Library/MobileDevice/Provisioning\ Profiles/$uuid.mobileprovision