20
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS/Android アプリ開発自動化ツール:fastlane

Last updated at Posted at 2017-03-03
1 / 25

Fastlaneとは

iOS/Android のアプリ開発で必要な様々な作業を自動化してくれるツール
感動しすぎて泣けます。

  • ipa/apkの作成
  • iTunesConnect/GoolePlayへのipa/apkのアップロード
  • iTunesConnect/GoolePlayのメタデータの登録・更新
  • テストの実行
  • iOSProvisioningファイル/証明書の管理
  • DeployGate/Testflightなどへのアップロード

設定

Fastfile と呼ばれる設定ファイルに ruby で記述する

lane :beta do
  increment_build_number
  cocoapods
  match
  testflight
  sh "./customScript.sh"
  slack
end

実行

fastlane beta

actionについて

action が用意されていて、実行したい action を記載していく。主要な action は、 command として実行することも可能

bundle exec fastlane deliver

commandについて

fastlane は、様々な command に細分化されている。 commandは独自に、実行可能だし、Fastfile に書いて実行することも可能.pemだけでも便利なのでまずはこれから使うというのもあり。

  • match cerやprovisiongの管理
  • gym Project の build
  • deliver ipa の iTunesへの配信
  • pem 証明書の管理

インストール

  • ローカルにしれっと入れる
gem install fastalne
  • CIでまわすために bundle でいれる
# Gemfile
gem 'fastlane'
# 実行
# --path はお好みで
bundle install --path vendor/bundler 

初期設定

以後、bundle 経由でインストールしたと仮定します。

bundle exec fastlane init
Your Apple ID (e.g. fastlane@krausefx.com):[appleIDを入力]
# 以後パスワードなどきかれるので、プロンプトどうりにいれていきます

pem

Push 通知用の 証明書作成、設定などを一括でやってくれる。
泣ける!

bundle exec pem -a com.hoge.sampleapp1 -u hoge@apple.com

match

証明書管理の新しいやりかた. DevCenter でぽちぽち管理するのではなく、github のレポジトリに配置して、
管理する。涙出る

bundle exec match init
bundle exec match appstore -a com.hoge.sampleapp1 -u hoge@apple.com

match

iOSDevcenterある証明書を一旦すべて削除してから使うのがオススメ!
リリースしているアプリに影響はないよと document にも書いてます。

bundle exec match nuke

deliver

iTunesConnect にアップロードするためのコマンド。バイナリだけではなく、metadataや screenshotsもアップロードできる。

bundle exec deliver

deliver によるストア情報の管理

メタデータのダウンロード

bundle exec deliver download_metadata

スクリーンショット 2017-03-03 16.47.12.png


deliver によるストア情報の管理

スクリーンショットのダウンロード

bundle exec deliver download_metadata

スクリーンショット 2017-03-03 16.47.18.png


deliver によるストア情報の管理

  • ダウンロードしたファイルを 編集して deliver すればOK
  • git で管理できるので変更履歴も終えてサイコー

deliverの細かなポイント

  • download_metadata で落としてきたファイルに app_icon があって、なぜか jpeg なので一旦削除しないと、deliver できません。 できるようになってました

  • 複数の target を管理しないのであれば、Deliverfile にメタデータを書いてもOKです。

  • deliver はデフォルトだと、アップする前に ブラウザが起動して、Store 情報の確認ができます。y/n をきかれるので、OKであれば y でアップされます。 この機能は,CI でまわすときには、不要なので、 deliver に force: true を渡せば 確認はされません。


その他便利オプション

  • --skip_metadata, --skip_screenshots, --skip_binary_upload などの便利な オプション

各種設定ファイルについて

Fastlaneには複数の機能がふくまれていて、一番重要な Fastfile 以外にも設定ファイルがたくさんできる。
(Appfile、Deliverfile、Fastfile、Matchfileなど)


各種設定ファイルについて (1/2)

ただし、設定ファイルは、各コマンドに何も指定しなかった時に使われる値、つまりデフォルト値程度の意味がなく、
各種機能のコマンドには、共通して上書きしたいオプションを渡せるようになっている。


渡せるオプションの例

# アプリID
-a com.hoge.sampleapp
# AppleID
-u hoge@apple.com

CustomAction

bundle exec fastlane new_action

CustomAction で使えるツール

Actions.sh("git status")
Fastlane::UI.user_error("message")
Fastlane::UI.success("message")
UI.important "Seems like launching fastlane takes a while - please run"
          UI.message ""
          UI.command "[sudo] gem cleanup"
          UI.message ""
          UI.important "to uninstall outdated gems and make fastlane launch faster"
          UI.important "Alternatively it's recommended to start using a Gemfile to lock your dependencies"
          UI.important "To get started with a Gemfile, run"
          UI.message ""
          UI.command "bundle init"
          UI.command "echo 'gem \"fastlane\"' >> Gemfile"
          UI.command "bundle install"
          UI.message ""
          UI.important "After creating the Gemfile and Gemfile.lock, commit those files into version control"

Actionを直接実行

bundle exec fastlane run hoge_action

ドキュメント

action に渡せる optionや commandに渡せるoption やその他の tips はdocumentを参照。
またなんやかんやソースコードを見るのがよい。わかりやすくて綺麗!

AppStore(iOS) と GooglePlay(Android)開発 の自動化の比較

  • Fastlaneは、そもそも iTunesConnect 用のツールなので、iTunesを自動化する方に注力されている
  • GooglePlay では、新規アプリの作成はできない、screenshot の download はできない等の GooglePlayのAPIの制限による制限がある
  • Androidアプリの開発は、gradle がついているので、自動化でやりたいことはそもそもなんでもできる。ただ、fastlaneのコマンドを共通化することで、開発をやりやすくすることはできる

ios_deploy

  • ios で、adb install/uninstall を行えるツール
  • npm でいれる
20
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?