iOS/Androidでアプリの申請を自動化できるツール:fastlane

投稿者: | 12月 31, 2016

fastlane は、iOS と Android アプリケーションのリリースをするためのツールです。スクリーンショットの生成や電子署名、アプリケーションのリリースなどのタスクをすべて自動化できます。

  • Storeへの新しいリリースの提出、ベータテストの準備にかかる時間を削減します
  • 既存のツールやサービスに統合できます(170アクションが準備済み)
  • MITライセンスで100%オープンソース
  • 数分の準備できる簡単セットアップアシスタント
  • 自分のマシン上で実行できる
  • 全てのメジャーなCIシステムと統合できる
  • iOS、Mac、Androidアプリケーションをサポートしてます
  • 必要に応じてfastlaneを拡張、カスタマイズでき、他の何も依存しません
  • 多くのコマンドを覚える必要はなく、fastlane のみです
  • CIサーバーなどあらゆるコンピューターからデプロイできます

目次

  1. アクション一覧
  2. インストール方法
  3. スクリーンショットの自動撮影(iOS)
  4. App Store にスクリーンショットをアップロードする 
  5.  デバイスフレームの中に、スクリーンショットを配置する

アクション一覧

アクション説明
deliverスクリーンショット、メタデータ、アプリをApp Storeにアップロード
snapshot全デバイスを対象にアプリのスクリーンショット撮影を自動化
frameitスクリーンショットを各デバイス画像にはめ込む
pemプッシュ通知用のプロファイルを自動生成したり更新
sighプロビジョニングプロファイルの生成、更新、修復
produce新しいアプリをiTunes ConnectやDev Portalで作成
cert証明書の作成と管理
spaceshipApple Dev CenterやiTunes Connectにアクセスする
pilotTestFlightのテスターを管理
boardingTestFlightのbetaテスターを招待
gymアプリをビルドする
matchGitを使って証明書とプロファイルを管理
scaniOSアプリ、Macアプリのテストを実行

インストール方法

Macのターミナルで次のコマンドを実行してインストールする。

xcode-select –install
(Homebrewでインストール)
brew cask install fastlane

セットアップ

次のコマンドでディレクトリが作成されて、iTunes Connect から既存のメタデータが取得されます。

fastlane init

スクリーンショットの自動撮影 (iOS)

ユーザーがアプリケーションを購入したりダウンロードしたりする機会を増やすのに、アプリケーションのスクリーンショットは重要な要素です。

しかし、不幸なことに多くのアプリケーションは、正しくスクリーンショットをとれていません。
表示用に準備し、アプリケーションのスクリーンショットを撮影するには時間がかかり、すべてのものを一貫して対応するのは難しいのです。
例えば、次のようなことがあります。

  • App Storeのスクリーンショットは、直近のアプリケーションデザインと同じものですか?
  • あなたのアプリケーションが多言語対応してる場合、それぞれの言語毎に異なるスクリーンショットを用意していますか?
  • ロードインディケーターが表示されていないことを確認しましたか?
  • それぞれの表示サイズごとに同じ場面のスクリーンショットを用意していますか?

fastlane ツールは、これらのことを素早く自動的に実行でき、一貫性のあるきれいな結果を提供してくれます。

2016年8月の iTunes Connect のスクリーンショットのアップデートで、1つのスクリーンショットセットですべてのデバイスとスクリーンショットを使用できるようになりました。iTunes Connectが自動的にイメージを拡大し、同じイメージで複数のデバイス用にレンダリングしてくれます。これはとても便利なのですが、ユーザーデバイスで実際に表示したときとは異なる画面になってしまいます。

fastlane の snapshot は、アプリケーションのスクリーンショットの撮影を自動的にしてくれます。

  • 全てシミュレーター上で、複数の言語で百のスクリーンショットを取得してくれます。
  • コンピューターがスクリーンショットをとっている間、他のことをすることができます。
  • 一度設定し、設定を格納しておけば、チームの誰でもそれを実行できます。
  • 全てのデバイス上のすべてのスクリーンショットを表示するきれいなWebページを生成します。これはQ&Aやマーケティング、翻訳検証にとても最適です。
  • ネットワークリクエストが終了するまで待って、App Store 用のスクリーンショットを撮るために、ローディングインディケーターを避けます。
  • 全てのサポートしているデバイスと言語の外観の概要を取得できます。

全てのスクリーンショットの取得ができたら、キャプチャーしたすべての画面を一覧にするきれいなHTMLページを表示します。

HTML summary page

  1. Xcodeプロジェクトで新しいUI Testを作成します。
  2. プロジェクトフォルダーで、 fastlane snapshot init を実行します。
  3. UI Testに、./SnapshotHelper.swift を追加します。
  4. UI Testクラスで、Recordボタンをクリックし、操作を記録します。
  5. スクリーンショットを撮影するために、インタラクション間で次のコードを呼びます。
    snapshot("01LoginScreen")
  6. setup() メソッドに次のコードを追加します。
    let app = XCUIApplication()
    setupSnapshot(app)
    app.launch()

fastlane shapshot を簡単に試すには、fastlaneリポジトリをクローンして、サンプルプロジェクトで実行することです。

git clone https://github.com/fastlane/fastlane  # Clone the fastlane repo
cd fastlane/snapshot/example                    # Navigate to the example project
fastlane snapshot                               # Generate screenshots for the sample app

App Store にスクリーンショットをアップロードする

fastlane snapshot を使用して、スクリーンショットを生成した後、iTunes Connect にいつでもそれらをアップロードできます。
fastlane/screenshots と fastlane/metadata ディレクトリにスクリーンショットとメタデータが格納されています。
fastlane/screenshots に格納されているスクリーンショットをアップロードするために、次のコマンドを使用します。

fastlane deliver

スクリーンショットを実際にアップロードする前に、メタデータの概要を表示します。iTunes Connect 上のスクリーンショットとメタデータを上書きします。

fastfile を使用する

チームのだれでも、新しいスクリーンショットを生成しアップロードできるようにするために、screenshots をコールするfastlaneのlaneを定義することができます。
次の定義で、自動的にスクリーンショットをキャプチャーし、App StoreのiTunes Connect にスクリーンショットを送信します。

lane :screenshots do
  snapshot
  deliver
end

提供されているすべてのオプションを確認するには、次のコマンドを使用します。

fastlane action snapshot
fastlane action deliver

デバイスフレームの中に、スクリーンショットを配置する

ftameit は、デバイスフレームの中にスクリーンショットを配置し、シンプルなコマンドでテキストを配置できます。
次のような機能を提供します。

  • 複数のデバイス種類
  • 背景画像などの設定
  • ブラックデバイス、シルバーデバイスの選択
  • 背景色と画像をテキストで装飾できます

frameit results

現在のディレクトリとサブディレクトリにあるすべてのスクリーンショットにデバイスフレームを自動的に追加します。

fastlane frameit

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください