CodeBuild、AWSの継続的インテグレーションサービスはiOS、iPadOS、watchOS、tvOS、macOSアプリのコード署名、スクリーンショット生成、ベータ版配布、アプリストアへの申請などのタスクを管理するFastlaneサポートを提供するようになった。
Amazonは数ヶ月前にCodeBuildでmacOS環境のサポートを開始した。AWSのプリンシパルデベロッパーアドボケイト Sébastien Stormacq氏が指摘するように、Fastlaneを手動でインストールすることはCodeBuildを使いたい開発者にとって不必要なハードルだった。そこでAWSはFastlaneをデフォルトでインストールし、すぐに使えるようにした。
Fastlaneがデフォルトで利用できるようになったことでよりシンプルに使えるようになったとはいえ、現在も開発者はプロジェクトに合わせて適切に設定し、CodeBuildに統合する必要がある。
Stormacq氏が説明するように、そのための重要なステップは、iOSビルドに必要な秘密鍵、証明書、モバイルプロビジョニングプロファイルへのアクセスをFastlaneに提供することだ。この目的のために、Fastlaneはすべての署名材料をGitHub、GitLab、または安全なクラウドストレージにホストされたプライベートリポジトリに保存し、パスワードを使って暗号化する。ビルド時には、すべての署名資料を取得し、codebuild
で使用する。これがチームがiOSビルドとデプロイメントに必要な署名材料を安全に共有することを可能にするFastlaneの基本的なメカニズムである。
Fastlaneがローカルで設定されたら、それを使うようにCodeBuildを設定する必要がある。そのためには、署名資料を復号化するためのパスワード、Apple IDのセッションクッキー、Gitの基本認証を保存するための環境変数をいくつか設定する必要がある。セキュリティを高めるために、Stormacq氏はAWS Secrets Managerを使ってこれらの値を保存することを強く推奨する。例えば、暗号化パスワードを含むMATCH_PASSWORD
変数の場合はこう使う:
aws --region $REGION secretsmanager create-secret --name /CodeBuild/MATCH_PASSWORD --secret-string MySuperSecretPassword
Fastlaneを設定するプロセスは、複数の失敗ポイントを伴ういくつかのステップが必要だ。何か問題が発生した場合、Stormacq氏によると最初のステップは提供された環境変数をチェックし、CodeBuildがAWS Secrets Managerにアクセスできることを確認することだという。Stormacq氏のステップバイステップの説明記事を参照されたい。
Fastlaneは、すべてのmacOSイメージで追加費用なしで利用できる。Fastlaneに加えて、Mac用のCodeBuildイメージにはXcodeも含まれており、Java、Kotlin、Node.js、Python、Ruby、Rust、Swiftを含む様々なツールとフレームワークをサポートしている。
最後に注意すべき点としてCodeBuild for macOSは、レイテンシに敏感なシナリオでのビルドとテスト用に設計されているもののオンデマンドフリートより柔軟性に欠ける予約フリート(reserved fleets)を利用する。実際、オンデマンドフリートはビルド時間1分ごとに課金されるが、macOSフリートはAppleのmacOS向けSLAにより、最低24時間課金される。