layout | title | date | comments | categories | ||||
---|---|---|---|---|---|---|---|---|
post |
Android/iOSアプリを Azure Pipelines から DeployGate に配信する |
2018/12/11 23:59:00 +0900 |
true |
|
Azure Pipelines でビルドした Android や iOS アプリを DeployGate に配信します。
DeployGate はモバイルアプリをテスターやβ版ユーザーに配布するサービスです。 Microsoft 系のサービスだと App Center にアプリ配布機能があるのですが、DeployGate は日本のサービスで(クライアントアプリ含め)UI が日本語である点と、一つのアプリをグループごとに配信管理(会社のお偉いさんた達には Stable を、同僚グループには最新版を、とか)できるのが気に入っています。
1つ目は、DeployGate でユーザーを作ったときのユーザー名を得ておきます。 2つ目は https://deploygate.com/settings にアクセスして「API key」に表示されてる値を得ます。
DeployGate 用のタスクは残念ながら無いので、Bash Script でやります。
Android の場合は、Bash のタスクを「Signing and aligning APK file(s)」の下に追加します。
スクリプトは次のように記述します。
curl \
-F "token=<DeployGateAPIキー>" \
-F "file=@$(build.binariesdirectory)\$(BuildConfiguration)\<APKファイル名>" \
-F "message=<デプロイ時のメッセージ>" \
https://deploygate.com/api/users/<DeployGateユーザー名>/apps
- <DeployGateAPIキー> - 先に取得しておいた DeployGate の APIキー
- <DeployGateユーザー名> - 先に取得しておいた DeployGate の ユーザー名
- <APKファイル名> - ビルド・サインされた APK ファイル(com.mycompany.awesomeapp-Signed.apk など)
- <デプロイ時のメッセージ> - DeployGate へのこの配信に付与するメッセージ(最新のgitコミットログを代入できるとよいんだけど…)
<APKファイル名> は、初見では分からないと思うので、一度ビルドして Artifact に保存されたファイル一覧を確認するとよいと思います。くれぐれも「サイン済み」の「-Signed」が付いた apk ファイルを指定してください。
iOS の場合は、Bash のタスクを「Copy Files to: $(build.artifactstagingdirectory)」の下に追加します。
スクリプトは Android とほぼ同じように、次のように記述します。
curl \
-F "token=<DeployGateAPIキー>" \
-F "file=@$(build.artifactstagingdirectory)/<ipaファイルへのパス>" \
-F "message=<デプロイ時のメッセージ>" \
https://deploygate.com/api/users/<DeployGateユーザー名>/apps
- <DeployGateAPIキー> - Android 側と同じ
- <DeployGateユーザー名> - Android 側と同じ
- <ipaファイルへのパス> - ビルドされた ipa ファイルへのパス(xxx/bin/iPhone/Release/AwesomeApp.ipa など)
- <デプロイ時のメッセージ> - Android 側と同じ
<ipaファイルへのパス> も、一度ビルドして Artifact を見るのがよいと思います。
Azure Pipelines を使う人は DeployGate にあまり馴染みがないと感じるので紹介してみました。 これは Pipelines の Builds じゃなくて Releases の方でやるべきかな?わからん。
signed-apk や ipa ファイルへのパスを示す環境変数があったら便利なんすけどねー、どやんすー。