【Xcode/Fastlane】Test Flightへのアップロードを自動化!pilot

【Xcode/Fastlane】Test Flightへのアップロードを自動化!pilot

この記事からわかること

  • iOS/Xcode自動化ツールFastlane使い方
  • Test Flightへのアップロード方法
  • upload_to_testflightアクション
  • pilotとの違い

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Xcode/iOSアプリでFastlaneを使用してTest Flightにアップロードする方法をまとめていきます。導入やセットアップの方法は以下の記事を参考にしてください。

Test Flightへのアップロードを自動化する

公式リファレンス:upload_to_testflight

Test Flightヘアップロードするためにはupload_to_testflightアクションを使用します。このアクションを使用することでipaファイルをTest Flight配布用としてApp Store Connectへアップロードすることが可能です。

ただupload_to_testflightアクションでアップするためには「署名済みのipaファイルの作成」「App Store Connectへの認証」が必要になります。

実装の流れ

  1. ビルド番号インクリメント
  2. 自動署名 or 署名済みプロビジョニングプロファイルの用意
  3. ビルド(ipaファイル生成)
  4. 認証(JWTの生成)
  5. Test Flightへアップロード

「1〜4」までの詳細な準備方法は以下の記事を参考にしてください。

platform :ios do

  desc "Test Flightへアップロード"
  lane :upload_test_flight do
    # 1.ビルド番号インクリメント
    increment_build_number
    # 2.自動署名
    automatic_code_signing(
      use_automatic_signing: true,
      team_id: ENV['TEAM_ID']
    )
    # 3.ビルド(ipaファイル生成)
    gym(
      scheme: "MinnanoTanjyoubi",
      output_directory: "./build",       # 出力先ディレクトリ
      output_name: "MinnanoTanjyoubi.ipa",   # 出力ファイル名
      export_xcargs: "-allowProvisioningUpdates"  # プロビジョニングプロファイルを自動的に更新
    )
    # 4.認証(JWTの生成)
    api_key = app_store_connect_api_key(
      key_id: ENV['KEY_ID'],
      issuer_id: ENV['ISSUER_ID'],
      key_filepath: ENV['KEY_FILE_PATH']
    )
    # 5.Test Flightへアップロード
    upload_to_testflight(api_key: api_key)
  end
end

パラメータ

upload_to_testflightにはいろいろなパラメータを指定することができます。changelogでリリースノートを指定できるのかと思いましたが指定しても正しく反映されませんでした。

説明
api_key App Store Connect APIキー情報
ipa アップロードするipaファイルへのパス
demo_account_required 審査時にデモアカウントが必要かどうか
beta_app_description ベータ版アプリの説明
changelog リリースノート?
公式記載:新しいビルドをアップロードするときに「テスト対象」のテキストを入力します
distribute_external 外部テスターに​​配布するかどうか

他にもたくさんのパラメーターがあるので詳細は以下を参考にしてください。

公式リファレンス:upload_to_testflight # parameters

pilotとの違い

upload_to_testflightは内部的にpilotをラップしているアクションです。pilotCLIで実行できるコマンドとして定義されているのでそのままターミナルで使うことも可能です。

# ビルド情報一覧を取得する
$ fastlane pilot builds

+------------------------------------------------------------+
| みんなの誕生日 -メモするだけで通知が届く管理アプリ- Builds |
+--------------------+-------------------+-------------------+
| Version #          | Build #           | Installs          |
+--------------------+-------------------+-------------------+
| 2.1.0              | 3                 | 0                 |
| 2.0.0              | 2                 | 0                 |
| 1.0.0              | 1                 | 0                 |
+--------------------+-------------------+-------------------+

pilotでできること

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

Search Box

Sponsor

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article