Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

【fastlane】環境変数の設定

 

はじめに

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

GitHub

 

手順

Fastfileに環境変数を追加

以下のように、環境変数をbefore_all内に設定する。before_allは、fastlaneの処理が開始される前に一度だけ実行される。

※参考:Lanes - fastlane docs

 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サービスとの連携には必須の設定になるかと思うので、是非試してみてください。

 

参考

Continuous Integration - fastlane docs

Lanes - fastlane docs

これから始めるfastlane - Qiita