はじめに
GitHub Actionsを使いApp Store ConnectへIPAをアップロードする設定を行った。
特にApp Store ConnectとGitHub Actions間でのセッション更新を月に1度程度実施する必要があり、今後も管理が必要なため実施した作業などについてまとめておく。
環境および役割
- GitHub
- クレデンシャルを登録/管理
- p12ファイル、プロビジョニングプロファイルはbase64エンコードして登録
- Fastlane関連のクレデンシャル
- クレデンシャルを登録/管理
- GitHub Actions
- GitHubで管理されているクレデンシャルを利用
- 環境変数としてクレデンシャルをビルドマシンに登録
- base64エンコードされたp12ファイル、プロビジョニングプロファイルをデコード
- Fastlane
- cert、プロビジョニングプロファイルを登録
- IPA作成
- App Store ConnectへIPAをアップロード
Fastlaneが提供する証明書関連の管理機能としてmatchという機能があるようだが、base64エンコードしたプロビジョニングプロファイルなどを利用することで問題ないと判断し導入は見送った。
セットアップに時間がかかった点として、GitHub ActionsからApp Store ConnectへIPAをアップロードする際に必要な認証周りである。
今後もセッションの更新作業が必要になるがこの点についてはFASTLANE_SESSION
を利用して対応した。
詳細については以下記事に詳しい。
FASTLANE_SESSIONの更新作業
前述の通りFASTLANE_SESSION
についてGitHub Actions <=> App Store Connectの環境間での通信で定期的(おそらく1回/月程度)に更新をする必要がある。
手順は以下の通りとなる。
-
fastlane spaceauth -u user@email.com
を実行 -
Should fastlane copy the cookie into your clipboard, so you can easily paste it? (y/n)
と聞かれるためyesを選択しcookieを保存 - GitHubで管理している該当のクレデンシャルを更新
p12ファイル、プロビジョニングプロファイルの更新
1年に1度更新する必要があるiOSアプリ関連の証明書についてbase64エンコードしてGitHubに登録をする必要がある。
手順については概ね以下の通り。
1.証明書を更新
2.base64エンコードを実施
$ openssl base64 -in Distribution.p12 -out Distribution.txt
$ openssl base64 -in Production.mobileprovision -out Production.txt
3.base64エンコードした結果をGitHubに登録
これらの手順については以下記事に詳しい。