iOS用のソフトウェアを作成することは、Objective-CまたはSwiftコードを作成するだけではありません。これには、UIKitの動作、証明書の作成方法、アプリをストアに公開する方法、アプリのレビューに対処する方法などを理解することが含まれます。この永遠のやることリストが使い果たされていることに気付いた場合は、ワークフローの自動化がまさに必要なものです。
既知 追い越し車線 、各展開で数分または数時間も節約できるように設計されたツール。
Fastlaneは、ベータビルドをCrashlytics、TestFlight、AppStoreなどに送信するプロセスを自動化するのに役立ちます。
この記事では、Fastlaneを使用してiOSアプリのデプロイワークフローを自動化する方法を学習します。このツールのiOSの側面に焦点を当てますが、FastlaneはAndroid開発の自動化にも同様に機能します。
最も簡単な方法に応じて、いくつかのインストール方法を選択できます。あなたが持っている場合 自作 インストールおよび構成済みの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クライアントから始めています。設計が完了し、アプリケーションは数週間でコーディングできます。次のステップはコーディングを開始することです。反復プロセス中に、2週間ごとにベータ版アプリをクライアントに送信して、クライアントが進捗状況を確認し、動作についてフィードバックを提供できるようにします。
ベータ版をクライアントに送信するたびに、基本的なチェックリスト(アプリケーションへの署名、ベータサービスへのアップロード、新しいバージョンの追加など)を実行する必要があります。これに、証明書への署名、プッシュ通知証明書への署名(必要な場合)など、1回(毎年)行う必要があることを追加します。
Fastlaneを使用すると、これらすべてを自動的に実行できるようになります。
たとえば、Crashlytics Betaを通じてアプリケーションを共有するには、署名証明書とプロビジョニングプロファイルを作成する必要があります。
Fastlaneには次のアクションがあります match
これを設定すると、次のようになります。
セットアップは簡単です。
まず、fastlane match init
を実行します。開始するには、Gitリポジトリを設定したら、 fastlane match adhoc
を呼び出すだけです。アドホックプロビジョニングプロファイルを取得するか、実行するにはfastlane match appstore
AppStore証明書を取得します。
match
を使用する利点つまり、証明書を取り消す必要がなく、コンピューター間(およびチームメイト間)で証明書を非常に簡単に同期でき、速度も向上します。実行中fastlane match appstore
数秒であなたに証明書を渡します。
これで、必要な証明書とプロビジョニングができました。Crashlyticsを起動しましょう。
アプリケーションをFabricCrashlyticsに送信するための一般的なワークフローには、次の手順が含まれます。
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 acaba de salvarte 14 minutos!
これは、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
これにより、この「バージョンバンプを27に」のような確認メッセージを含むファイルが送信されます。
さて、これまでに達成した場合、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プロジェクトで自動化できるものについてのインスピレーションを探している場合。