🐡

Bitrise で Flutter iOS アプリの Build & TestFlight の勘所 (2022.12)

2022/12/15に公開

Bitrise で Flutter の iOS アプリをビルドしてTestFlightにアップロードするワークロードの必要最小限の設定です。Automatically manage signing が有効なプロジェクトにも対応しています。

Bitrise の設定

アカウント設定

https://devcenter.bitrise.io/en/accounts/connecting-to-services/connecting-to-an-apple-service-with-api-key.html

アプリ > App Settings

  • Integration
    • Connection to Apple services で👆と同じAPIを設定する

アプリ > Workflow Editor

Code Signing > CODE SIGNING CERTIFICATES から証明書を追加する

  • Xcode のプロジェクト設定で Automatically manage signing有効な場合
    • 開発用証明書(Apple Development)
  • Xcode のプロジェクト設定で Automatically manage signing無効な場合
    • 開発用証明書(Apple Development)
    • 配布用証明書(Apple Distribution)

https://devcenter.bitrise.io/en/code-signing/ios-code-signing/managing-ios-code-signing-files---automatic-provisioning.html#ios-code-signing-with-automatic-provisioning

主要なワークフローと必要な設定

  • Certificate and profile installer
  • Flutter Install
  • Flutter Build
    • Input variables > Platform
      • ios
    • iOS Platform Configs > iOS output artifact type
      • app
  • Xcode Archive & Export for iOS
    • Input variables > Project path
      • ./ios/Runner.xcworkspace
    • Input variables > Scheme
      • Runner
    • Input variables > Distribution method
      • app-store
    • Automatic code signing > Automatic code signing method
      • api-key
  • Deploy to App Store Connect - Application Loader (formerly iTunes Connect)
    • Input variables > Bitrise Apple Developer Connection
      • automatic or api-key

補足

Xcodeプロジェクトの Automatically manage signing による挙動の違い

  • ON の場合
    • Cloud signing を使って Apple のサーバー上で署名される
    • 署名に使われた配布用証明書(Apple Distribution)や Provisioning Profile は Apple のサーバー上で管理され、自分の Apple Developer アカウントの管理画面からは参照できない
  • OFF の場合
    • Bitrise が作成した Provisioning Profile を使って署名が行われる
      • Bitrise iOS app-store - (Bundle ID)
      • Bitrise iOS development - (Bundle ID)
    • 作成された Provisioning Profile は Apple Developer の管理画面から確認できる

ExportOptions.plist を用意しなくても良いか?

プロジェクトやワークフローの設定をもとにビルド時にBitriseが ExportOptions.plist を生成しているので不要

参考情報

Discussion