はじめに
Continuous Integration - fastlane docsに記載のある、環境変数の設定に関して説明します。
環境
・macOS Catalina 10.15.7
・Xcode 12.0.1
・bash 3.2.57
・bundler 2.1.4
・fastlane 2.168.0
・Visual Studio Code 1.50.1
手順
Fastfileに環境変数を追加
以下のように、環境変数をbefore_all内に設定する。before_allは、fastlaneの処理が開始される前に一度だけ実行される。
before_all do ENV["FASTLANE_USER"] = "{Apple Developer Programに登録しているApple IDのアカウント名(メールアドレス)}" ENV["FASTLANE_PASSWORD"] = "{Apple Developer Programに登録しているApple IDのパスワード}" ENV["MATCH_PASSWORD"] = "{matchの実行時に必要なパスワード}" ENV["FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD"] = "{アプリケーション固有のパスワード}" ENV["SLACK_URL"] = "{Webhook URL}" end
不要な設定を削除
例として、【fastlane】アプリをApp Store Connectへアップロードする - Swift・iOSで使用したリリース用のレーンを用いる。内容は以下の通り。
lane :release do sync_code_signing(type: "appstore") build_app(scheme: "{プロジェクト名}") upload_to_app_store( username: "{Apple Developer Programに登録しているApple IDのアカウント名(メールアドレス)}", skip_screenshots: true, skip_metadata: true, force: true, ) slack( message: "Successfully uploaded a new App Store build", slack_url: "{Webhook URL}" ) end
上記のレーンで設定されている、usernameとslack_urlには環境変数が適用されるため、以下のようにusernameとslack_urlを削除する。
lane :release do sync_code_signing(type: "appstore") build_app(scheme: "{プロジェクト名}") upload_to_app_store( skip_screenshots: true, skip_metadata: true, force: true, ) slack( message: "Successfully uploaded a new App Store build" ) end
ターミナルを開いて、プロジェクトファイルのある階層で以下コマンドを実行してみると、環境変数を適用する前と同様に、App Store Connectへのアップロードが完了する。
bundle exec fastlane release
おわりに
環境変数を設定しておくことで、ターミナルで毎回ユーザー名などを入力する手間が省けるだけでなく、CIサービスとの連携には必須の設定になるかと思うので、是非試してみてください。