目的

fastlaneを今更使ってみました。

今更で使ってみた理由ですが。
iOSの場合だとやはり、アプリを申請する際の待ち時間がどうしても億劫です。
コマンド一つで申請してくれるのであれば良いかなと

先に書きますが、今回は初期設定も含めていて、結局時間がかかりました。

現状、特に設定はしておらず、本当に申請までコマンド一つで行う場合、設定が必要な感じがします(もしくは出来ない)
次回以降どうなるかは追記します。

ちなみに今更の理由ですが、
2年近く前に携わっていた会社にて、私とは無関係のiOSプロジェクトにてfastlaneがエラーでできないという現象がありました。
その案件のiOS初心者担当者がfastlaneでのコマンド実行での申請しか知らないというか、引き継いでいなかったようです。
XcodeからArchiveする方法が分からなく、私がズサンに教授したことがありました。

そのときfastlane不便そうだと感じたので今まで無視してきた状態です。
Appleが2段回認証を導入したことで、ネット上でも阿鼻叫喚になったようで、現状その辺りどうなっているのかという興味もあり、導入してみました。

参照サイト

検索して引っかかるのは、正直どれも古い記事ばかりでした。
ということで、公式サイトだけ参照して入れてみました。
fastlane Getting started with fastlane for iOS fastlane iOS App Store deployment using fastlane fastlane Application specific passwords

導入手順

以降ターミナルで操作いたします。
また、すでに手動でリリースしていたアプリを対象にしています。

command line tool導入

念のため記載しますが、Xcode入れているのであれば不要

command line tool導入
$ xcode-select --install

fastlaneインストール

以下コマンドでfastlaneをインストール
Rubyを使ってのインストールもできそうです。

fastlaneをインストール
$ brew install fastlane
最後でecho ‘export PATH=”/usr/local/opt/ruby@2.5/bin:$PATH”’ » ~/.zshrc と書かれていたので一応設定しました。

fastlaneの設定

まず、アプリのディレクトリに移動しておいて、以下のコマンドで初期設定
ドキュメントには詳細書いてなさそうで、、辛い。

fastlane初期設定
$ fastlane init


fastlaneの使い道を聞かれるので、3を選択
What would you like to use fastlane for?
1. 📸  Automate screenshots
2. 👩‍✈️  Automate beta distribution to TestFlight
3. 🚀  Automate App Store distribution
4. 🛠  Manual setup - manually setup your project to automate your tasks
?
-> 3


AppleIDを入力
-> Apple ID Username:

パスワードを入力
-> Password (for XXX):

これが2段階認証の設定かな?ブラウザ見ていたら後述のようなポップアップがでてきまして、この6桁の数字を入力しました。
-> Please enter the 6 digit code:

metadata管理は危険とかあるのかな。。。とりあえずyesで。
Would you like fastlane to manage your app's metadata? (y/n)
y

上記2段階でのポップアップは以下です。

以上で、アプリディレクトリにfastlaneフォルダができていることを確認。

リリース情報設定

なんと!というか当たり前のことかもしれませんが、iTunes Connectに設定するメタ情報も変更できます。
私はリリース情報だけでよかったので、以下のファイルを修正
既存の情報がすでにファイルに記載されているのが便利。
私は先にこの次のリリースコマンドを実施してしまいまして、既存の情報はそこで取ってくるのかも?

リリース情報修正
fastlaneフォルダ配下の
metadataフォルダ -> jaフォルダ -> release_notes.txtを修正

リリースコマンド実施

まぁ、個人アプリだし良いや!といことでコマンドでリリースしてみる。
アプリバージョンは予めXcodeでアップしています。
またFastfileという設定ファイルでリリース項目を設定できるようですが、デフォルトで設定が記載されており、すぐにコマンドを実行できる状態でした。

リリースコマンド
$ fastlane release


途中でリリースのプレビュー画面が表示される。便利!
Does the Preview on path './fastlane/Preview.html' look okay for you? (y/n)
-> y


その後、AppleIDでは無い、何かのパスワード入力を求められる。
★なんのパスワードかはこの後すぐ書いています。
Please provide your Apple Developer Program account credentials
The login information you enter will be stored in your macOS Keychain
-> Password

あとは10〜20分ほど待ちました。

上記最後のパスワード入力について、AppleIDパスワードなどを入力しても以下エラーとなります。

リリースコマンドエラー
[Transporter Error Output]: 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)
それで、参考サイト3番目のページに記載があるのですが、
どうやらAppleから外部ツール用のパスワードを発行してもらう必要があるようです。

Apple ID 管理ページ に行って、App用パスワード欄から、パスワードを生成します。

パスワードラベルは適切に入力しました。

リリースコマンド実施後

コマンド実行後少ししたら、ビルドアップロード完了のメール書きました。
その後、App Store Connectを見てみると、提出準備中状態でした。

対象アップデートのデータまでは作ってくれていていました。ビルドも未選択の状態です。

なので、ビルドを選択して、提出ボタンを押すだけとなっています。

所感

最初ということもありましたが、かなり時間かかりました。
いつもこの作業が発生するのであれば、使用は控えて手動でやろうと思います。

リリースコマンド$ fastlane release実行

しばらく放置

Appleからビルド受領の連絡が来る

審査提出処理

上記だったら、使い続けたいと思いました。

以上です。