文系iOSエンジニアの備忘録

エンジニア iOS Swift

CLIでのBitrise導入(Github EnterPriseを利用している時など)

どうもおはようございます、こんにちは、こんばんは。

 

はじめに

BitriseにはWebのGUIでプロジェクトを追加して設定していく方法とCLIで追加する方法がありますが、 今回GithubがEnterPriseだったので、CLI一択でした。

GUIについても色々ネットで調べると出てきますので今回はCLIの流れを載せていきます。

Bitriseにアプリの追加

  1. Bitriseにログインする。(アカウントはこちらに記載→ 01.共通アカウント)
  2. Add new App をタップして from CLIで続行。 f:id:chiltarou1224:20200811223227p:plain
  3. ページ下部の bashコマンドをコピーする。 f:id:chiltarou1224:20200811223231p:plain
  4. Specify how Bitrise will be able to access the source code: Automaticを選択し、Do you need to use an additional private repository?は I need toを選択する
  5. What bitrise.yml do you want to upload? は 既に使っているbitrise.ymlがなければ、Run the scanner to generate a new bitrise.yml を選択。

  6. 5を行うと現在ローカルで参照しているブランチをscanするので、そのブランチでよければそのまま続行する。

  7. ipaファイルのExportの仕方を聞いてくるので、用途によって選択する。(develop,enterpriseなど)
  8. どの証明書を使用するか聞かれるのでExportの種類によって合ったものを選択する。
  9. bitrise.ymlを自動作成される設定の場合はアーカイブが行われて成功の表示が出る。

Bitriseワークフローの実行

実行にはpushやPRなどのトリガーを設定して自動的に実行する場合と

Bitriseに追加したアプリの詳細画面から実行する場合がある。

f:id:chiltarou1224:20200811223235p:plain

githubのイベントを受信するにはbitriseのSetting画面から取得できるwebhookを対象プロジェクトに設定するのと

Workflowの設定画面のTriggerタブで設定が必要。

また、Secretsに設定している変数を使う場合はプルリクからの参照も許可する。

Slackへの通知設定

通知用のチャンネル作成とwebhookurlを取得をして、

Bitriseのワークフローにslack send messageを追加して、作成したURLを設定する。

f:id:chiltarou1224:20200811223255p:plain

f:id:chiltarou1224:20200811223240p:plainf:id:chiltarou1224:20200811223245p:plain

参考:https://qiita.com/powerispower/items/f8b9e358649df2e4b905

Deploygateとの連携

workflowのステップでdeploygateを追加。 deploygateのAPIキー、グループ(もしくはアカウントユーザー)情報をアカウント画面から確認し設定する。 App file path を$BITRISE_IPA_PATHにする。 必ずXcode Archiveのステップの後にdeploygateのステップを追加する。 ※リリースノートなども書けるが、追加ではなく自動配信時に設定が必要。

f:id:chiltarou1224:20200811223251p:plain

参考: https://devcenter.bitrise.io/jp/deploy/deploy-apps-to-deploygate-from-bitrise/

https://qiita.com/kyoro353/items/200d5b34b9f5805dd43a

課題と対応内容一覧

  • Bitriseのデフォルトのstackがxcode10.2だったため、マルチモーダルアプリのSceenDelegateに対応しておらずビルドが失敗した。

    • 対応

デフォルトのstackをXcode11以降にする。(今回は導入時が11.4だったためそれに合わせた。)

  • 案件特有のログインライブラリがシミュレータ 用と実機用とあるため、現状テストをするにはシミュ用でdeploygateで配信するには実機用にする必要あり。

    • 対応

開発環境ごとに証明書の切り替えが必要だと思われるが、現状そこまでの動作確認、調査は未完了。  また、アーキテクチャごとに設定して、ファイルのあるフォルダのパスを設定する。

証明書のようなセキュアな情報をどのように扱うか検討が必要。(fastlaneの利用?)

 

ブログの投稿は基本毎日19時頃する予定です。