Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@kasa_le

FlutterアプリをCodemagicでCDしてみた(App Store Connect)

Google Playストア版の続きになります。

FlutterアプリをCodemagicでCDしてみた(Google Playストア)
https://qiita.com/kasa_le/items/17720a02ea0a4de2b66e

Codemagicへは、すでにtagトリガーなどで動くワークフローがあるものとします。
(こちらの記事などを参照して下さい。)
また、App Store Connectにて、アプリを登録済で、かつTestFlightへ手動でアプリ公開をしたことがあることが前提です。
(こちらの記事などを参照して下さい。)

手順

基本的には以下のページの通りです。
https://docs.codemagic.io/publishing/publishing-to-app-store/

ただ、Apple ID(アプリケーションID)とApple ID(開発者アカウント)、等のように用語で混乱するので、このページでは以下のように統一します。

  • App ID
    • アプリケーション固有のID(10桁の数字)
    • App Store Connectで確認可能
  • 開発者アカウント
    • App Store Connectにログインする時のメールアドレス

1.App IDを取得

App Store Connectにアプリを登録済であれば、以下のような場所に見つかるはずです。

appid.png

2.開発者アカウントのapp-specificパスワードを作成する

app-specificパスワードについては、詳しくはこちらのページにあります。
https://support.apple.com/en-us/HT204397

要するに、サードパーティー製アプリからApp Store Connectに接続できるようにするためのパスワードですね。

(1)二段階認証を有効にする

開発者アカウントを登録する時に必須なので、設定済みなはずですので、割愛します。

(2)app-specificパスワードを作成する

こちらのページよりログインします。ここで二段階認証が必要になるので、iOS/MacOSデバイスが必要です。
https://appleid.apple.com/

  • 「セキュリティ」セクションの「App用パスワード」を探し、[パスワードを生成]をクリック
appspecificpassword.png
  • 任意のラベル名を付ける
    • 例えば、「Codemagic用」とか
app-pass-1.png
  • 表示されたパスワードをコピー
app-pass-2.png

※過去に作成したAppパスワードは、「編集」ボタンから「履歴を表示」で確認できます。

3.ユーザー設定でApple Developerと接続する

  • 左下のプロフィールアイコンから[User Settings]を選ぶ

usersettings.png

  • 開発者アカウントのメールアドレスとパスワードを入力する

connect_appledeveloper.png

  • [Save]をクリック

4.ワークフローに設定する

(1)リリースビルド設定

  • [Build]セクションで、Releaseビルドの設定にする
    • iOSにチェックを入れるのを忘れずに

build_release.png

[Save]を忘れずにクリック。

(2)iOS Code signing設定

  • [Publish]セクションを開く
  • [iOS code signing]を開く
  • Select code signing method: Automatic

    • 個人開発ならAutomaticで良いかと思います。
    • 業務で開発チームのプロビジョニングファイルがある場合はManualにするのかと思います。(こちらは経験無いので、詳しくは分かりません。すみません)
  • Developer portal team (using credentials from user settings): ドロップダウンから選ぶ

    • Apple Developerへの接続が上手くいっていれば、ここでチームを選べます。
    • 基本的には、Xcodeで選択したのと同じものを選べば良いです。
  • Provisioning profile type: TestFlightに上げるならばApp store

  • Bundle identifier (optional): debugビルドとreleaseビルドでBundle Idを変えている場合、ここにリリースビルド用のBundle Idを記入する

    • しておかないとビルド中に「複数のBundle Idが設定にあるよ」的なエラーで失敗します。

ios_code_signing.png

  • [Save]をクリック!

(3)App Store Connect設定

  • [App Store Connect]を開く

    • [Publish]セクションの下の方にあります
  • AppleID: 開発者アカウントのメールアドレス

  • App-specific password: 先ほどコピーしたApp用パスワードを貼り付ける

  • App ID: App IDを貼り付ける

enable_app_store_connect.png

  • Enable App Store Connect publishingにチェックを入れる
  • [Save]をクリック!!

以上で設定は終わりです。
ビルドを流してみましょう!

App Store Connectでの作業

GoogleのPlayストアへのpublishと違い、App Store Connectへのpublishは、ipaファイルというアプリ実行ファイルをアップロードするだけで終わりのようです。
TestFlightでテストを有効にしたり、リリースをAppleに審査申請するのは、App Store Connectのページで手動で行う必要があります。

ipaファイルのビルド・アップロードは、私のマシンだとかなりCPU使って重たくなり、他の作業が出来なくなるので、Codemagicがアップロードまでやってくれればかなり軽減になりますね。

まとめ

Google Playストア版と合わせ、これで「tagがpushされたら自動でリリースビルドしてデプロイ」が両OSで出来るようになりました。

Codemagic、マジでオススメです。Flutterに特化というのが面白いですよね。一応YAML編集してネイティブなAndroidアプリも出来そうではあるんですが、CIまでしかまだ試してなくて(しかもエミュレーターテストはどうやら出来ない)、CDとなるとどうなるか未知数です。

サポートはSlackですがだいたい直ぐに返事が来るので、凄く助かります。もちろん英語のみですが、中学生レベルでなんとかなります。時差に気をつけるくらいかな?

ただ、ちょっと大きめのプロジェクトになると、Mac Miniでのビルドでは時間がかかって無料枠をあっという間に使い切りそうなので、その場合は課金してMac Proコースにするか、増量枠を都度課金して使うといったことが必要そうです。

Mac Proは無料で3回までお試しで使えるので私も試しましたが、圧倒的にビルドが早いので快適でした^-^

FlutterのMeetup(Tokyo)が再開されたら、ちょっと参加してCodemagic推してみようかな?

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kasa_le
言語経験はC→C++→Java+Android(たまにiOS/swift経験なし)→Kotlin Flutterも良いよ. 独学でPHPとpython
Leading-Edge
ITエンジニアの生涯価値向上を目指し、派遣・紹介・教育・自社開発など様々な分野から全方位支援を行っております。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?