Fastlane
FastlaneはコマンドラインでAppleのReview申請,証明書発行などを自動化するツールです。Push通知の証明書もコマンドで非常に簡単な作成できてしまう一度使ったら止められないツールです。
React Native with Fastlane
React Nativeのアプリを作ると、結局はAppleへ申請をするので、Fastlaneを使うことができます。
## インストール
READMEに従ってインストールすれば問題ないです。FastlaneはRuby2.0.0以上が必要です。
$ gem install fastlane
$ xcode-select --install
React Nativeの場合、iosディレクトリがプロジェクトのルート直下にあると思うのでそこに移動して、
$ cd ios
$ fastlane init
インタラクティブに色々聞かれるので質問に答えていくとfastlaneディレクトリができて、インストールが完了します。
私のfastlaneディレクトリは下記のようになっています。
fastlane/
├── Appfile
├── Deliverfile
├── Fastfile
├── Preview.html
├── Snapfile
├── SnapshotHelper.swift
├── actions
├── metadata
│ ├── copyright.txt
│ ├── en-US
│ │ ├── description.txt
│ │ ├── keywords.txt
│ │ ├── marketing_url.txt
│ │ ├── name.txt
│ │ ├── privacy_url.txt
│ │ ├── release_notes.txt
│ │ └── support_url.txt
│ ├── primary_category.txt
│ ├── primary_first_sub_category.txt
│ ├── primary_second_sub_category.txt
│ ├── secondary_category.txt
│ ├── secondary_first_sub_category.txt
│ └── secondary_second_sub_category.txt
└── screenshots
├── README.txt
├── en-US
│ ├── 3.5\ Device\ 1.jpg
│ ├── 3.5\ Device\ 2.jpg
│ ├── 3.5\ Device\ 3.jpg
│ ├── 3.5\ Device\ 4.jpg
│ ├── 3.5\ Device\ 5.jpg
│ ├── 4.0\ Device\ 1.jpg
│ ├── 4.0\ Device\ 2.jpg
│ ├── 4.0\ Device\ 3.jpg
│ ├── 4.0\ Device\ 4.jpg
│ ├── 4.0\ Device\ 5.jpg
│ ├── 4.7\ Device\ 1.jpg
│ ├── 4.7\ Device\ 2.jpg
│ ├── 4.7\ Device\ 3.jpg
│ ├── 4.7\ Device\ 4.jpg
│ ├── 4.7\ Device\ 5.jpg
│ ├── 5.5\ Device\ 1.jpg
│ ├── 5.5\ Device\ 2.jpg
│ ├── 5.5\ Device\ 3.jpg
│ ├── 5.5\ Device\ 4.jpg
│ └── 5.5\ Device\ 5.jpg
└── screenshots.html
使い方
私が使っているコマンドを解説します。
$ fastlane deliver
アプリのDescription等のファイルをiTunes connectにアップロード。アプリの情報をファイルで管理、githubで保存できて便利です。ただし、fastlane snapshot
はReact Nativeでは動かないので、Sketchのプラグインでまとめてsnapshotを作成して、screenshots
のディレクトリ内に入れて、fastlane deliver
しています。
$ fastlane pem
Push通知の証明書作成、アップロード。作成するプロセスを知っている人はわかると思いますが、異常に簡単です。
$ fastlane gym
アプリをビルドして、ipaファイルを作成します。ビルドをReleaseに変えて作ってくれます。ipaファイルを作って、fastlane deliver
を行うとバイナリのアップロードまで行ってくれます。
Summary
このようにReact Nativeでも基本的にiOSと変わらず、Fastlaneを使うことができます。React Nativeで全てのツール群を使えるようにはまだなっていないので、こういったiOSの資産を使っていくと便利になります。