メインコンテンツまでスキップ
バージョン: v8

CapacitorアプリのCI/CD

すべての本格的なアプリは、継続的なテスト、統合、デリバリーのためにCI/CDプロセスを利用します。

残念ながら、モバイルには独自のCI/CDの課題があり、ビルドとデプロイのプロセスが根本的に異なるため、Web開発者がフロントエンドCI/CDに使用するのと同じ技術はモバイルには適用されません。

フロントエンドの基本的なCI/CD

Capacitorアプリのの CI/CD最初のステップは、_フロントエンド_JSアプリをビルドおよびテストするためのプロセスを使用することです。

これは今日、GitHub Actions、CircleCI、Jenkinsなどの汎用CI/CDサービスを使用して一般的に行われています。

このプロセスでは、アプリは各コミットでビルドされるように設定され、多くの場合ローカルテストスイートを実行します。これは典型的なJS CI/CDプロセスであり、チームはすでにこれに精通している可能性があります。

しかし、これは氷山の一角に過ぎず、チームはアプリの実際のネイティブモバイル側をビルド、テスト、デプロイする方法を把握する必要があります。

モバイルCI/CDの追加

モバイルアプリの大部分はネイティブiOSおよびAndroidアプリとしてビルドして実行する必要があるため、JSアプリテストをビルドして実行するだけでは、モバイルアプリには到底十分ではありません。

さらに、モバイルアプリのデプロイと更新の方法はWebアプリとは大きく異なります。Webアプリはすぐに更新できるサーバーでホストされますが、モバイルアプリはアプリストアで「ホスト」され、暗号署名されたバイナリとして配布されます。更新プロセスは非常に異なります。

これは、ネイティブモバイルビルドとテストを行い、ネイティブモバイルに適した方法でアプリをデプロイおよび更新する方法も提供できるサービスが必要であることを意味します。

Appflow:CapacitorアプリのモバイルCI/CD

このようなエンドツーエンドのモバイルCI/CDを提供するサービスの1つが、Capacitorアプリのための公式モバイルCI/CDおよびモバイルDevOpsプラットフォームであるAppflowです。

Appflowは、頻繁に更新される管理されたiOSおよびAndroidビルド環境を提供します。AppflowはAzure DevOps、GitLab、GitHub、Bitbucketなどの人気のあるgitサービスと統合され、各コミットでJSおよびネイティブモバイルビルドをトリガーすることをサポートします。Appflowは、関係者、ベータテスター、本番ユーザー向けにビルドを異なるチャンネルに分離することもサポートしています。さらに、Appflowは自動化されたワークフローの一部としてアプリをアプリストアに自動的に提出でき、チームが複雑なネイティブiOSおよびAndroidビルドスタックを管理する必要がなくなります。

Capacitor開発者にとって、Appflowは更新がアプリのJS/HTML/CSSレイヤーにある限り、アプリストアへの提出なしにアプリにリアルタイムの更新をプッシュする機能も提供します。

詳細については、Appflowドキュメントを参照してください。

AppflowとtraditionalCI/CDサービスの併用

AppflowはWeb/JSビルドとネイティブモバイルビルドを行うため、従来のCI/CDサービスを置き換えることができます。ただし、従来のCI/CDサービスとの併用も優れています。

このように使用するには、各コミットでビルドされたアセットをWebhookを使用してAppflowに送信します。

その他のモバイルCI/CDオプション

モバイルCI/CD用の他のサービスもありますが、Capacitorに特化したものはありません。どのCI/CDサービスを選択しても、Capacitorアプリはネイティブアプリであるため、Capacitorはそれと統合できます。ただし、Capacitorアプリのリモートライブ更新については、Appflowがこの機能を持つ唯一のサービスです。