iOS用のソフトウェアを作成することは、Objective-CまたはSwiftコードを作成することだけではありません。UIKitの仕組み、証明書の作成方法、アプリをストアに公開する方法、アプリのレビューに対処する方法などを知る必要があります。この永遠のタスクリストが疲れる場合は、ワークフローの自動化がまさに必要なものです。
会う 追い越し車線 、各デプロイで数分または数時間も節約できるように設計されたツール。
Fastlaneは、ベータビルドをCrashlytics、TestFlight、AppStoreなどに送信するプロセスを自動化するのに役立ちます。
この記事では、Fastlaneを使用してiOSアプリのデプロイワークフローを自動化する方法を学習します。このツールのiOSの側面に焦点を当てますが、FastlaneはAndroid開発の自動化にも同様に機能します。
例によるPython機械学習
最も簡単な方法に応じて、いくつかのインストール方法を選択できます。あなたが持っている場合 自作 インストールおよび構成済みのFastlaneのインストールには、次の1つのコマンドが必要です。
brew cask install fastlane
それ以外の場合、FastlaneはRubyベースのツールですgem
常にオプションです:
sudo gem install fastlane -NV
または、Fastlaneをいつでもダウンロードできます。 公式サイト 。
Fastlaneをインストールしたら、fastlane init
を実行します。プロジェクトディレクトリで、指示に従います。
Fastlaneをインストールすると、Rubyスクリプトを記述して、必要な場所にデプロイメントを配置するために何をする必要があるかを段階的に示すことができます。これは、アクション、ツール、およびレーンを使用して行われます。
Fastlaneは、アプリの構築に役立つツールをコアに持つことで機能します。ビルドツールに加えて、Crashlytics、HockeyApp、TestFlightなどのサービスとの170以上の組み込み統合があり、サードパーティが作成および公開するプラグインにより、他のサービスなどに接続できます。
基本的に、さまざまなタスクを実行できる主要なツールを利用できます。自動スクリーンショットの撮影からフレーミング、ストアへのアップロードまで、アプリをビルドする前にすべてのテストを自動的に実行できます。
行動 はFastlaneのコアツールであり、プラグインはFastlaneセットアップにサードパーティのアクションを追加する方法です。
Fastlaneは、基本的にアクションまたはプラグインのリストを順番にグループ化するレーンを使用するため、毎回同じ結果を得ることができます。
レーンを実行すると、各アクションは環境変数をエクスポートし、次のアクションはこれらの変数を自動的に取得してプロセスを続行します。たとえば、gym
を使用しますアクションは.ipa
のパスになりますファイルが生成され、crashlytics
を使用しますこれにアクセスします.ipa
このファイルをベータサービス配布システムにアップロードする場所。
あなたは非常にシンプルなアプリを望んでいる新しいApeeScapeクライアントから始めています。設計はすでに完了しており、アプリは数週間でコーディングできます。次のステップはコーディングを開始することです。反復プロセス中は、数週間ごとにベータ版アプリをクライアントに送信して、クライアントが進捗状況を確認し、状況がどのように機能しているかについてフィードバックを提供できるようにします。
ベータ版をクライアントに送信するたびに、基本的なチェックリストを確認します。アプリへの署名、ベータサービスへのアップロード、新しいバージョンの追加などです。これに、必要な作業を追加します。 1回(毎年):証明書への署名、プッシュ通知証明書への署名(必要な場合)など。
Fastlaneを使用すると、これらすべてを自動的に実行できるようになります。
たとえば、Crashlytics Betaを介してアプリを共有するには、署名証明書とプロビジョニングプロファイルを作成する必要があります。
Fastlaneには次のアクションがあります match
設定すると、次のようになります。
セットアップは簡単です。
まず、fastlane match init
を実行します開始するには、Gitリポジトリを設定したら、fastlane match adhoc
に電話するだけです。アドホックプロビジョニングプロファイルを取得するか、fastlane match appstore
を実行しますAppStore証明書を取得します。
match
を使用する利点つまり、証明書を取り消さなくても、コンピューター間およびチームメート間で証明書を非常に簡単に同期でき、速度が向上します。実行中fastlane match appstore
数秒で証明書が発行されます。
これで、必要な証明書とプロビジョニングができました。Crashlyticsにリリースしてみましょう。
アプリをFabric’s Crashlyticsに送信するための一般的なワークフローには、次の手順が含まれます。
Fastlaneは、雑用を次のように置き換えます。
platform :ios do lane :beta do match(type: “adhoc”) gym crashlytics end end
現在、fastlane beta
を実行していますターミナルからこのスクリプトを起動します。
これにより、最初に署名証明書とプロビジョニングプロファイルの作成と更新を処理するアクションであるmatch
が呼び出され、次に、以前に作成されたものと同じ証明書とプロファイルを使用してアプリをビルドおよびパッケージ化するアクションであるgym
が呼び出されます。 、そして最後に、crashlytics
、これはこの署名された.ipa
を取得しますそれをCrashlyticsサービスにアップロードします。
これらのステップはすべて、常に同じ順序で呼び出されるため、結果のファイルがより予測可能になり、エラーが減少します。
MacBook-Pro:TestProject user$ fastlane beta +------+-------------------------------------+-------------+ | fastlane summary | +------+-------------------------------------+-------------+ | Step | Action | Time (in s) | +------+-------------------------------------+-------------+ | 1 | Verifying required fastlane version | 0 | | 2 | match | 57 | | 3 | gym | 592 | | 4 | crashlytics | 195 | +------+-------------------------------------+-------------+ [20:25:13]: fastlane.tools just saved you 14 minutes!
これが、Fastlaneを実行してアプリをCrashlyticsに送信する方法の基本的な設定でした。他に何を自動化できますか?
たとえば、ベータ版を送信するたびに、ビルドのバージョン番号を増やしたいと設定できます。
これは、increment_build_number
と呼ばれるアクションを使用して実現できます。 fastlane run increment_build_number
によって端末から呼び出すことができますまたはベータレーンでインラインで使用:
platform :ios do lane :beta do increment_build_number match(type: “adhoc”) gym crashlytics end end
おめでとう!これで、ビルドバージョン番号もインクリメントする自動デプロイスクリプトができました。唯一の注意点は、このレーンを呼び出すと、プロジェクト内のファイル(または少なくともビルド番号が組み込まれているファイル)が変更されることです。
とにかくその変更をリポジトリにコミットすることを計画していた場合は、そのためのアクションがあります:commit_version_bump
。このアクションは、新しいバージョン番号でファイルをコミットします。
platform :ios do lane :beta do increment_build_number match(type: 'adhoc') gym crashlytics commit_version_bump( xcodeproj:'myProject.xcodeproj', ) end end
これにより、「Version Bumpto27」のようなコミットメッセージでファイルがコミットされます。
さて、ここまで進んだら、Crashlyticsへの自動デプロイを非常に短時間で行うことができ、長期的には数え切れないほどの時間を節約できます。それについての最も良い部分は、代わりにアプリをTestFlightに送信したい場合、あなたがする必要があるのは変更することだけですcrashlytics
pilot
へ。
または、そのために別のレーンを作成できます。
platform :ios do lane :beta-testflight do increment_build_number match(type: 'adhoc') gym pilot commit_version_bump( xcodeproj:'myProject.xcodeproj', ) end end
Fastlaneはシンプルで使いやすいです。しかし、それはあなたの常連に驚くべき価値をもたらします iOS開発 面倒なことや時間を無駄にすることからあなたを救うことによってワークフロー。
このFastlaneの紹介がお役に立てば幸いです。あなたはチェックアウトすることができます 公式ドキュメント Fastlaneの詳細、特に 行動 現在および次のiOSプロジェクトで自動化できるものについてのインスピレーションを探している場合。
Fastlaneは、iOSおよびAndroidアプリのリリースおよび配信ワークフローを自動化するツールです。
ターミナルで「brewcaskinstall fastlane」を実行するか、https://download.fastlane.tools/からインストーラーをダウンロードします。