はじめに
【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
手順
アプリをビルド
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が表示される。
HTML画面の内容を確認して、問題なければyを入力してEnter。
上記の画像は、スクリーンショットの設定がされていない警告画面だったものの、スクリーンショットは手動で設定する想定のため、yを入力して続行すればOK。
Does the Preview on path './fastlane/Preview.html' look okay for you? (y/n)
5.Slackに関して
設定に関しては以下を参照。
コマンドを実行
ターミナルを開いて、プロジェクトファイルのある階層で以下コマンドを実行。
※アップロードが失敗するため、"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
※アプリケーション固有のパスワードを発行する方法は以下参照。
おわりに
App Store Deployment - fastlane docsは説明が簡潔なため、少し手間取りました。fastlaneはオプションが充実しているため、審査提出までのフローはまだまだ改善できそうなので、試して記事にしていきます。
参考
・App Store Deployment - fastlane docs
・upload_to_app_store - fastlane docs