% bundle init
% echo 'gem "fastlane"' >> Gemfile
% bundle install
% fastlane init
[22:17:37]: 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
? 2
# 他にもいくつかの情報を入力
# fastlane/Appfile
# fastlane/Fastfile
# の2ファイルが作られる
Appfileはチームの情報などが入っています。Fastfileは実行したいタスクの内容が記述されています。おそらく次のようになっているはず。
1default_platform(:ios)
2
3platform :ios do
4 desc "Push a new beta build to TestFlight"
5 lane :beta do
6 build_app(workspace: "my-project.xcworkspace", scheme: "my-project")
7 upload_to_testflight
8 end
9end
ちなみに僕はbuild_appの前にincrement_build_numberを入れました。うっかり同じビルド番号で上げてしまうとエラーになって面倒だからです。
1lane :beta do
2 increment_build_number # <= これを追加
3 build_app(workspace: "my-project.xcworkspace", scheme: "my-project")
4 upload_to_testflight
5end
ちなみにincrement_build_numberを動かすために、Apple GenericなVersioningにする必要があります。
あとはコマンドラインで% fastlane betaと叩くと実行されます。
これでAppStoreConnectにビルドが登録されて、あとは輸出コンプライアンスをチェックすれば内部テスターに配布されるところまではいけました。このプロジェクトはまだ外部テスター向けのレビューが通っていないのでその先までは検証できていないです。
ホントは輸出コンプライアンスのチェックもパスできるといいんけど、その操作はできないようです。でも、Xcodeで操作すると待って操作して待って操作してになってしまうから、それに比べたらだいぶいいですね。