fastlaneを使ってハッピーになった話


新規のiOSアプリを作っていて、fastlaneを導入していろいろ捗ったという話です

どんなプロジェクトだったか

  • 0からの新規開発アプリ
  • iOS開発は自分一人

fastlane導入前

  • Deploygateで社内配布していた
  • 1回配布するのに15分くらいはかかっていた(ほぼビルドの時間)
  • 配布作業中はXcodeとかDeploygateをポチポチする必要があるので、他の作業がし辛い
    • 他の作業してるとarchiveが終了していたのに気づかず、そこで止まっていて先に進んでないとか良くあった
  • bundle_idをstaging等で分けており、Deploygateでは2つ配布したかった (15分 x 2回)

たまにやるだけならいいんですが、週に数回くらいの頻度だったので結構な手間でした

fastlane導入後

  • archive→Deploygateアップロードまでをやってくれるレーンを作った
    • bundle exec fastlane submit_deploygate_stagingとかを叩けば今まで手作業でやっていたことを全部自動でやってくれる
  • stagingなどの環境別に配布できるレーンを作った
    • レーン別にconfiguration設定やinfo.plist書き換えなどをやっている
    • bundle exec fastlane submit_deploygate_staging; bundle exec fastlane submit_deploygate_prodとかを叩けば、後は自動で2つそれぞれビルドしてDeploygateに配布できるようになった!
    • 超楽ちん!

導入して良かったこと

  • 30分早く帰れるようになった
    • 「今日の作業分をDeploygateにあげてから帰ろう
      • 今まで: ぽちぽち30分くらい作業してから帰社
      • fastlane導入後: コマンド叩いて帰社
  • ストアの申請も楽になった
    • レーンをちょっといじれば、そのままiTunesConnectへの申請用のビルド→アップロードもできる
  • 気軽に最新版を配布できるので、社内フィードバックが早くなった(はず)
    • ちゃんと見て無いけど、導入前後では配布頻度がだいぶ増えたと思う
  • badgeというfastlaneのアクションを追加して、stagingアプリのアイコンを区別できるようになった

悲しい所

  • 手元のマシンでfastlaneを走らせている
    • fastlaneを走らせている間(30分くらい)はXcodeさわれない(ソースコードいじれない)
      • なので、開発以外の作業をするはめになる
      • 帰る時とか昼休みとかによくfastlaneを走らせていた
    • 諸事情でCIを使えなかったが、CIを使えば解決
  • レーンを作るのが大変だった
    • 丸1日以上はかかったような...
    • 私の場合だとfastlane構築工数の元を取るのに1ヶ月以上かかる計算に

感じたこと

  • ビルドとか配布を既に手動でやっている人向けの自動化ツールである
    • iOSの複雑なビルド/配布周りを隠蔽してくれるわけではない
    • fastlaneを使ってて何かエラーが起きたときに、結局ビルド/配布周りの知識がないと直せない
    • ビルド職人は引き続き必要か
      • とはいえfastlaneが壊れた時だけ必要になるのでだいぶ出番は減らせそう
  • fastlane超便利最高