fastlane deliver を使ってコマンド1発で Waiting For Review までもっていく

$ bundle exec fastlane release

このコマンドを叩くだけでリリースビルド、iTunesConnect へバイナリ提出、IDFA 情報など入力して審査待ちの状態まで持っていけるようにした。

Deliverfile

こんな感じに書いてる。

app_identifier "com.myapp"
username "appleid@hoge.com"

force true
skip_screenshots false
skip_metadata false
skip_binary_upload false
automatic_release true
submit_for_review true
overwrite_screenshots true
ignore_language_directory_validation ['fonts']

submission_information({
  export_compliance_encryption_updated: false,
  export_compliance_uses_encryption: false,
  add_id_info_uses_idfa: true,
  add_id_info_serves_ads: true,
  add_id_info_tracks_install: false,
  add_id_info_tracks_action: false,
  add_id_info_limits_tracking: true,
})

submit_for_review true にして、 submission_information を書けばいいっぽい。あと force true にしないと申請情報の確認画面が出てしまう。
encryptionadd_id_info は普段手動でぽちぽちしてる状態になるようにした。

他の option 一覧は fastlane/app_submission.rb にある。

Fastfile

deliver で has completed processing まで持っていくので、その後 dsyms を iTunesConnect から DL して Crashlytics に Upload できる。

  desc "Deploy a new version to the App Store"
  lane :release do
    match(type: "appstore")

    increment_build_number(build_number: "#{Time.now.strftime("%Y%m%d%H%M")}")

    gym(scheme: ENV["RELEASE_GYM_SCHEME"])

    deliver

    upload_symbols_to_crashlytics
    
    refresh_dsyms

    payload = {"Git Commit" => changelog}
    slack(
      channel: ENV["SLACK_CHANNEL"],
      message: ":itunesconnect: Successfully uploaded a new App Store build",
      payload: payload,
      default_payloads: default_payloads
    )
  end

Fastfile はソース公開しているのでこっちで全体像を見れる: fastlane-example/Fastfile

おわり

寝る前に bundle exec fastlane release 叩いて、寝ながら Youtube 見てたら Waiting For Review の通知きて最高。