Closed4
Cloud Managed CertificatesとGithub Actionsのメモ

そもそもCloud-Managed Certificatesは配布用証明書をAppleが管理してくれる仕組みのこと
開発用証明書は開発者自身のKeychainで管理する
大枠こちらの記事と同じだが、IPAを作成するときに署名なしで作成しているところを変更したかった
署名なしで作成するとEntitlementsが不足してプッシュ通知などが使えなくなってしまう

CI上で開発者用証明書を入れるために手元で作成した証明書をbase64にエンコードして、Github ActionsのSecretsに埋め込んだ
これをやると年一回の更新が必要になるが、回避する方法が思い浮かばず、、
Github Actionsのフロー
上記省略
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup App Store Connect API Private Key
run: |
mkdir -p ./private_keys
echo -n "${{ secrets.APPLE_API_KEY }}" | base64 --decode --output ./private_keys/AuthKey_${{ secrets.APPLE_KEY_ID }}.p8
echo "Authentication key path: $(pwd)/private_keys/AuthKey_${{ secrets.APPLE_KEY_ID }}.p8"
- name: Import Code Signing Certificates
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE }}
p12-password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }}

あとはxcodebuildを実行する
-allowProvisioningUpdatesがないとProfileが見つからないエラー吐くので注意
xcodebuild \
-project ../hoge.xcodeproj \
-scheme hoge \
-configuration Release \
-derivedDataPath ./build \
clean archive \
-archivePath ./build/hoge.xcarchive \
CODE_SIGN_STYLE=Automatic \
CODE_SIGNING_REQUIRED=YES \
CODE_SIGNING_ALLOWED=YES \
-authenticationKeyIssuerID "${APPLE_ISSUE_ID}" \
-authenticationKeyID "${APPLE_KEY_ID}" \
-authenticationKeyPath "${AUTH_KEY_PATH}" \
-allowProvisioningUpdates
xcodebuild \
-exportArchive \
-archivePath ./build/hoge.xcarchive \
-exportPath ./build \
-exportOptionsPlist ./options_release.plist \
-allowProvisioningUpdates \
-authenticationKeyIssuerID "${APPLE_ISSUE_ID}" \
-authenticationKeyID "${APPLE_KEY_ID}" \
-authenticationKeyPath "${AUTH_KEY_PATH}" \
CODE_SIGN_STYLE=Automatic \
CODE_SIGNING_REQUIRED=YES \
CODE_SIGNING_ALLOWED=YES
このスクラップは5ヶ月前にクローズされました