AdHocでUDID自動登録とアプリ再配布を自動化したい

こんにちは、iOSアプリエンジニアの二木です。 今回はAdHoc配布でUDID自動登録とアプリ再配布を自動化した話を書きたいと思います。

AdHoc配布はインストールしたい新しい端末が出てきた場合、その端末のUDIDを特定してからデバイス登録してアプリを再配布する手間がありますが、これまでその作業を手作業で行っていました。(アプリのビルドについてはBitriseで自動化できている。)

メグリ株式会社では、エンジニアにはできるだけ思考するところに注力してもらいたいと思っているので、決まった作業はできるだけ自動化するように進めています。今回はその一環でAdHocアプリのUDID登録と再ビルドしたアプリを配布する処理を自動化した話を紹介したいと思います。

新しい端末登録がインストールできるまでの作業

まず、新しい端末がAdHocアプリをインストールできるようになるまで、どのような作業が必要なのかを整理します。 ざっと以下の作業が必要になります。

1. 新しい端末のUDIDを特定
2. AppleのDeveloperサイトからUDIDを登録
3. 登録した端末にチェックを付け、profileを更新
4. 新しいprofileでアプリを再ビルド
5. 再ビルドしたアプリをDeployGateに再アップロード

上記の作業を自動化するわけなのですが、どうすれば実現できるかをいろいろと模索してみました。

UDID自動登録とアプリ再配布の仕組み

模索した結果、以下の構成で自動化を進めることにしました。

UDID登録とアプリ再配布構成

この構成について内容を説明します。

  • 1でUDID未登録端末が配布ページにアクセスすると、DeployGateの機能でメールで通知を受け取ることができます。
  • 2のメール通知をトリガーとして利用し、Zapierで処理を動かします。
  • Zapierではまず初めに、3でメール通知の内容からUDID、グループ名、アプリ名、bundle idを抽出します。
  • 4でDeployGateのWebページをスクレイピングして、UDIDをキーにその端末モデル名やOSを取得します。
  • 5では、Slackで以下のようなフォームを送ります。(フォームはSlack Blok Kit Builderで作成できます。)
    • ※slackでフォームを送らず、そのままUDID登録へ進む選択肢もありましたが、端末登録は100台までと限られているため、敢えて一旦slackで通知して確認作業を入れるフローにしています。

slackへの通知

  • 上記のslack通知で「端末を登録してビルド」ボタンを押すと6でBitriseをキックしてUDID登録と新しいProvisioningProfileでの再ビルドが行われます。(8と9の部分)
  • 再ビルドされたアプリはBitriseからDeployGateに再アップロードされ、未登録端末もインストールできるようになります。

自動化してみて思ったこと

まずは、エンジニアの負担がかなり軽減されたと思います。 slackで通知されるように作ったので、未登録端末がアクセスしたことがわかりやすくなりましたし、手動で行っていた端末登録と再ビルドの作業がボタンひとつでできるようになったことは大きいです。

また、自動化の作業では今回初めてZapierを本格的に使ってみました。1つ1つのステップをテストしながら進められ、作成したステップの成功を確認してから次へ進めるので自動化の処理を作りやすかったです。Zapierは連携しているサービスも多く、他にも使い道がありそうで楽しみです。

メグリのアプリチームでは定期的にメンバーと集まって自動化などの業務改善に取り組んでおり、社内でノウハウを共有して今後も自動化できるものを増やしていく予定です!!