Experiments Never Fail

Android/iOSアプリを Azure Pipelines から DeployGate に配信する

Azure Pipelines でビルドした Android や iOS アプリを DeployGate に配信します。

DeployGate はモバイルアプリをテスターやβ版ユーザーに配布するサービスです。
Microsoft 系のサービスだと App Center にアプリ配布機能があるのですが、DeployGate は日本のサービスで(クライアントアプリ含め)UI が日本語である点と、一つのアプリをグループごとに配信管理(会社のお偉いさんた達には Stable を、同僚グループには最新版を、とか)できるのが気に入っています。

DeployGate のユーザー名と APIキーの取得 #

1つ目は、DeployGate でユーザーを作ったときのユーザー名を得ておきます。
2つ目は https://deploygate.com/settings にアクセスして「API key」に表示されてる値を得ます。

Azule Pipelines にタスクを追加 #

DeployGate 用のタスクは残念ながら無いので、Bash Script でやります。

Android の場合 #

Android の場合は、Bash のタスクを「Signing and aligning APK file(s)」の下に追加します。

image.png

スクリプトは次のように記述します。

curl \
-F "token=<DeployGateAPIキー>" \
-F "file=@$(build.binariesdirectory)\$(BuildConfiguration)\<APKファイル名>" \
-F "message=<デプロイ時のメッセージ>" \
https://deploygate.com/api/users/<DeployGateユーザー名>/apps

<APKファイル名> は、初見では分からないと思うので、一度ビルドして Artifact に保存されたファイル一覧を確認するとよいと思います。くれぐれも「サイン済み」の「-Signed」が付いた apk ファイルを指定してください。

iOS の場合 #

iOS の場合は、Bash のタスクを「Copy Files to: $(build.artifactstagingdirectory)」の下に追加します。

image.png

スクリプトは Android とほぼ同じように、次のように記述します。

curl \
-F "token=<DeployGateAPIキー>" \
-F "file=@$(build.artifactstagingdirectory)/<ipaファイルへのパス>" \
-F "message=<デプロイ時のメッセージ>" \
https://deploygate.com/api/users/<DeployGateユーザー名>/apps

<ipaファイルへのパス> も、一度ビルドして Artifact を見るのがよいと思います。

まとめ #

Azure Pipelines を使う人は DeployGate にあまり馴染みがないと感じるので紹介してみました。
これは Pipelines の Builds じゃなくて Releases の方でやるべきかな?わからん。

signed-apk や ipa ファイルへのパスを示す環境変数があったら便利なんすけどねー、どやんすー。

published at tags: Android iOS Azure DeployGate