Xcode 13で作ったプロジェクトでbitriseでのCIビルドに対応する

こんにちは、ピリカ開発チームの九鬼です。

最近、新規のiOSアプリをxcode13を使って開発しました。Xcode 13でbitriseのCIビルドについて設定方法が見つからなかったので、備忘録として展開します。

前提

  • 以下の説明では、ソースコードGitHub上で管理されているものとします。ただし、他のバージョン管理システム(Bitbucket, GitLab, etc.)も使用可能です。
  • すでにbitriseのアカウントを設定していて、GitHubに対して接続完了している状態とします。

1. Xcode上でTests iOSが実行できるよう設定

アプリのTARGETS設定にて、Tests iOS > Target Applicationを一度Noneにしてからアプリ名に指定し直す必要があります。デフォルト設定の場合、UITargetAppPath should be providedとなり、UIテスト段階でビルドに失敗します。

Tests iOSを実行できるよう、TARGETSからTarget Applicationを再設定する

2. bitriseにアプリ追加

(もし追加済みであれば、次節をご覧ください)

bitriseにログインし、ビルドしたいiOSアプリを新規作成します。

URL: https://app.bitrise.io/apps/add

  1. アカウント設定 1.1. CHOOSE ACCOUNT: bitriseのアカウント 1.2. SET PRIVACY OF THE APP: アプリに合わせ、public/private のどちらかを選んでください
  2. Connect your repository設定 2.1. タブ: GitHub 2.2. ORGANIZATIONS' REPO: ビルドしたいiOSアプリのオーナー名/リポジトリを選択
  3. Setup repository access: No, auto-add SSH key (自動的にSSH接続用のキーが当該リポジトリで作成されます)※
  4. Choose branch: mainもしくはmaster
  5. Project build configuration: iOSになっていることを確認します。
  6. Select Distribution method: ad-hocなどを選び、Confirm
  7. App icon: Skip for Now (すでにアプリのアイコンがあれば、ここで設定することができます)
  8. Webhook setup: Register a Webhook for me! (GitHubでのPush, Pull Request時のCIビルドをトリガーさせるために必要です)
  9. FINISHを選択

※ 操作しているアカウントが、GitHubの当該リポジトリに対してAdmin権限を持っている必要があります。Admin権限があるユーザでアプリ追加するか、bitrise Docsに従ってSSHキーを作成してください。

3. Workflow Editor設定

3.1. Stackの設定

Workflows > Stack > Default Stackで Xcode 13.x.x...を選択します。マイナーバージョンはローカルで使っているXcodeのバージョンに合わせてください。

Workflow Editorのstackから、Default StackをXcode 13以上にする

3.2. Code Signing設定

アプリ署名用のProvisioning ProfileおよびCertificatesを追加します。

3.2.1. Provisioning Profile設定

向け先ごとにProvisioning Profileを追加します。向け先は以下のとおりです。

  • 開発用(development)
  • 社内配布用(ad-hoc)
  • 一般配布用(app-store)
  • 企業配布用(enterprise)1

Workflows EditorのCode Signingを選択します。PROVISIONING PROFILEの節について、Add Provisioning Profile(s)からProvisioning Profileのファイルをアップロードします。

3.2.2. Certificates設定

3.2.1.に続き、Code Signingからコード署名用の秘密鍵(.p12)をアップロードしておきます。

3.3. Env Vars設定

Env Varsを開き、以下の様に設定します。

3.3.1. App Environment Variables: 共有設定

  • BITRISE_PROJECT_PATH: xcodeprojファイルへのパスです。例えば、(プロジェクト名)/(プロジェクト名).xcodeprojです。
  • APP_TEAM_ID: Apple DeveloperのTeam IDです。後述のDeveloper Portal teamで指定します。bitrise側と被らないようにしておきます。

App Environment Variablesでプロジェクトファイルパス、Team IDを設定する

3.3.2. Workflow Environment Variables: ビルドの向け先ごとの設定

向け先毎(Workflow毎)に、以下の設定を行います。

  • BITRISE_SCHEME: アプリをビルドするためのschemeです。
    • 開発環境向けリリースビルドなら"devRelease", 本番環境向けリリースビルドなら"proRelease"などを設定します。ご自身のビルドスキームに合わせてください。
  • BITRISE_DISTRIBUTION_METHOD: アプリの配布方法です。Provisioning Profileのtype(development, ad-hoc, app-store, enterprise等)に対応します。

3.4. Workflows設定

  • Certificate and profile installerの直後にXcode Archive & Export for iOS xcode-archive@4を追加します。バージョンは4.0以上にしてください。4.0未満はXcode 13に対応していません。
  • xcode-archive@4について、以下の設定を行います。
    • Input Variables
      • Scheme: $BITRISE_SCHEME
      • Distribution method ※: $BITRISE_DISTRIBUTION_METHOD
    • IPA export configuration
      • Developer Portal team: $APP_TEAM_ID

※ バージョン4.0から、export_methodはdistribution_methodに変わっています。 詳しくはリリースノートRenamed some inputs for consistency across Xcode steps (without any behavior change)の節をご覧ください。


  1. 現在、ADEPを新規取得するのは困難のためenterpriseを使うことは無いかもしれません。代わりにカスタムAppを使うことになります https://developer.apple.com/jp/custom-apps/