LoginSignup
90
67

More than 3 years have passed since last update.

[iOS]アプリ申請完全自動化

Last updated at Posted at 2019-10-19

アプリの申請を完全に自動化する

ソースコードをpushしたら、あとは何も考えなくてもストアにリリースされる。
そんな環境を作ってみたのでメモ
まだちゃんと動かなさそう(fastlane_sessionが1ヶ月でexpireする)

全体の流れ

IMG_88DD0533F907-1.JPG

↑こんな感じ

Bitriseの部分は別になんでも良いのだけど、無料枠があったのでBitriseにしている。
automate.io は、いわゆるIFTTTのようなサービス。
似たようなサービスでメルカリの採用しているZapierと言うのがあるが、カスタムWebhookがプレミアム専用なのでautomate.ioを使うことにした。
正直Zapierの方がsampleみながらzap作れるしgmailの取得速いし、正規表現ちゃんと使えるのでZapierの方がおすすめです。

GithubにpushしてBitriseからappstore connectへアップロードする

ここは簡単。
bitrise.ioにサインアップしたら、チュートリアルの通りに進めばリポジトリとbitriseの連携が完了する。
あとは「Deploy to iTunes Connect - Application Loader」というstepを追加して、適宜情報を書き込めばアップロードされるようになる。
注意点としては、build numberをincrementすることを忘れずに。同じビルド番号のipaはアップロードに失敗します。
build numberの設定は「Set Xcode Project Build Number」というStepを使えば簡単に設定できます。
そして、書いていて思ったけどこの時点でappstore connectに新規のバージョンが無い可能性があるのでここはfastlaneのdeliver使った方がいいですね。

AppStore ConnectのCompleted Processを待つ

ipaをアップロードすると、appleは自動的にipaの健康状態をチェックしてくれます。(悪いことしているとこの時点で弾かれる)
ここは大体数分から数時間と幅があるのでひたすら待ちます。
待っていると、AppleからApp Store Connect: Version 1.0 (1) for AppName has completed processing.というタイトルのメールが届きます。

Completed Processingのメールが届いたらbitriseのworkflowを発火させる

automate.ioを使ってgmailを監視して、メールが届いたらbitirseのapiを叩きます。
メールにはbuild numberとversionも記載されているので、これらをパースしてbitriseの環境変数に乗せておきます。

スクリーンショット 2019-10-20 6.22.26.png

automate.ioのbotの中身はこんな感じ。
正規表現機能がガバガバなので、タイトルをスペースで区切って取り出しています。

bitriseからサブミットする

automate.ioのwebhookから叩かれたworkflowでfastlaneのdeliverを呼びます。
この辺は特に難しいところはないです。
サブミットするビルドのbundle numberなどは環境変数に入っているのでそれを使います。
fastlaneのascへの接続はFASTLANE_SESSIONを利用していますが、2FA切ったアカウントで認証しても良いと思います。

完成

あとはbitriseのtriggerなどを調整しながら、使いやすいようにしていきましょう。

90
67
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
67