Swift・iOS

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

【fastlane】アプリをApp Store Connectへアップロードする

 

はじめに

【fastlane】証明書を管理する - Swift・iOSの続きです。App Store Deployment - fastlane docsに沿って、アーカイブで作成したipaファイルをApp Store Connectにアップロードする手順を説明します。

※アプリ提出時に必要なスクリーンショットやアプリ情報の入力に関しては手動でやる想定です。

 

環境

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にリリース用のlaneを追加

以下を追加。

※今回はリリース用のプロビジョニングプロファイルを指定しています。

lane :release do
    sync_code_signing(type: "appstore") 
    build_app(scheme: "{プロジェクト名}")
  end

 

コマンドを実行

ターミナルを開いて、プロジェクトファイルのある階層で以下コマンドを実行。

bundle exec fastlane release

 

App Store Connectへアプリをアップロード

Fastfileに"upload_to_app_store"と"slack"を追加

追加後は以下のようになる。

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

 ※補足

1.usernameに関して

usernameを指定しないと、コマンド実行時に以下のように入力を求められるため、事前にFastfileに記載しておくほうが楽。

 ---------------------------------
 --- Step: upload_to_app_store ---
 ---------------------------------
 To not be asked about this value, you can specify it using 'username'
 Your Apple ID Username: 

 

2.skip_screenshotsに関して

skip_screenshotsをtrueにしているのは、今回はスクリーンショットは手動で設定する想定のため。

  

3.skip_metadataに関して

trueにすると、アプリの審査提出時にApp Store Connectで入力が必要なアプリ情報の送信をスキップする。今回は手動で入力する想定のためtrueにしている。

 

4.forceに関して

forceをtrueにしない場合は、以下のようにエラーが検出された箇所などについて事前確認のためのHTMLが表示される。

f:id:hfoasi8fje3:20201127190227p:plain

 HTML画面の内容を確認して、問題なければyを入力してEnter。

上記の画像は、スクリーンショットの設定がされていない警告画面だったものの、スクリーンショットは手動で設定する想定のため、yを入力して続行すればOK。

Does the Preview on path './fastlane/Preview.html' look okay for you? (y/n)

 

5.Slackに関して

設定に関しては以下を参照。

www.hfoasi8fje3.work

 

コマンドを実行

ターミナルを開いて、プロジェクトファイルのある階層で以下コマンドを実行。

※アップロードが失敗するため、"Assets.xcassets"にアプリアイコンとApp Store用アイコンを設定した上で実行すること。

bundle exec fastlane release

 

以下が表示されたら、アプリケーション固有のパスワードを入力してEnter。

 Sign in with the app-specific password you generated. If you forgot the app-specific password or need to create a new one, go to appleid.apple.com (-22938)
 
 Your account has 2 step verification enabled
 Please go to https://appleid.apple.com/account/manage
 and generate an application specific password for
 the iTunes Transporter, which is used to upload builds
 
 To set the application specific password on a CI machine using
 an environment variable, you can set the
 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD variable

 ※アプリケーション固有のパスワードを発行する方法は以下参照。

www.hfoasi8fje3.work

  

おわりに

App Store Deployment - fastlane docsは説明が簡潔なため、少し手間取りました。fastlaneはオプションが充実しているため、審査提出までのフローはまだまだ改善できそうなので、試して記事にしていきます。

 

参考

App Store Deployment - fastlane docs

upload_to_app_store - fastlane docs

Screenshots - fastlane docs

【fastlane】テストを実行して結果をSlackに投稿する - Swift・iOS

【Bitrise】App Store Connectにアプリをアップロードする - Swift・iOS