LoginSignup
31
23

More than 5 years have passed since last update.

[BITRISE][iOS][Android] CI をBITRISE に移行した時のメモ

Posted at

iOS/AndroidプロジェクトでCI環境をBITRISEに移行したのでメモ書きを共有します。

BITRISEからFabric Betaへのdistributionも行いましたが、内容がてんこ盛りになってしまうため、また別の機会に共有します。

BITRISEは無料で使うことができますが、ビルド回数やビルド時間、メンバー数など若干制限があります。$50/月の有料プランでも非常にお得な感じがします。
https://www.bitrise.io/pricing

:pen_ballpoint: Sign Up

GitHubアカウントでサインアップ。
signin.png

:heavy_plus_sign: アプリの追加

Add new app

  1. Add new app を押下する。

    addnewapp.png

  2. リポジトリ一覧が表示される。この画面の先頭にアプリの追加先アカウントの選択ポップアップがあるので、チームで共有したい場合はチームのアカウントを選択します。

    addnewappto.png

Setup repository access

AUTOMATIC の No, auto-add SSH key を選択して自動的にSSH keyが追加されるようにする。
auto_add_ssh_key.png

Validation setup

  1. developに変更(デフォルトはmaster)
  2. Nextを押してスキャンする。

    validation_setup.png

  3. 数分かかり、Validation complete!します。

Project build configuration (iOS)

build_configuration.png

iOS
- Project (or Workspace) path
- Scheme name
- iOS stack
iOS stack をXcode 8.3.x, on macOS 10.12 (Sierra)に変更
select_build_configuration.png
change_build_configuration.png

プロジェクトにFastfileを含んでいる場合、Fastlaneで対応することもできるらしい。

Next > Confirmで次のステップへ

Project build configuration (Android)

build_configuration_android.png

Android
- Path to the cradle file to use
- Gradlew file path
- Select a stack

Confirmで次のステップへ

Webhook setup

特にフックしないのでSkipします。
メールよりSlackとかの方が良い場合ここで設定します。(後からWorkflowでstepを追加してもOK!)

:hammer: ビルド

問題がなければ通る。

自分の場合、Podfileなどでプライベートなライブラリを指定していたので、以下を実行しておいた。
1. Podfile中に記載しているURLのスキームをhttpsからsshに変更
2. Private keyをコピー
$ pbcopy < ~/.ssh/id_xxxx_rsa
3. BITRISE > アプリ > Settings > SSH Settingsにペーストして追加

参照:http://devcenter.bitrise.io/faq/adding-projects-with-submodules/

:clipboard: Code Signing

Code Siginingの設定

アプリ > Workflow > Code Signingタブを開く
1. PROVISIONING PROFILE
iOS Dev Centerからダウンロードした.mobileprovisionファイルをドラッグ&ドロップして追加する。

2. CODE SIGNING IDENTITY
.p12ファイルをドラッグ&ドロップして追加する。

3. 2で追加したp12のパスワードを入力

XcodeプロジェクトのCodesigning Style設定

Xcode8のCodesigning StyleがAutomaticになっている場合、BITRISE上でCodesignがうまくいかないためManualに切り替えておく必要があります。

Xcode:
1. Project > Target > Build Settings > Signing > Provisioning Profile
Debug, Releaseでそれぞれ適切なProvisioningを選択(事前にmobileprovisionをダウンロードして取り込んでおくこと)

2. Project > Target > Build Settings > Signing > Development Team
Debug, Releaseでそれぞれ適切なチームを選択(事前にp12ファイルをキーチェーンに追加しておくこと)
参照:https://blog.bitrise.io/xcode-8-and-automatic-code-signing

codesigndoc

codesigndocというローカル環境でビルド確認できるツールがあるので実行しておけば、特にややこしいiOSの証明書関連のビルドが通るかどうかを事前チェックすることができる。

$ bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap.sh)"
  1. .xcodeproj.xcworkspaceの選択
Please drag-and-drop your Xcode Project (.xcodeproj)
   or Workspace (.xcworkspace) file, the one you usually open in Xcode,
   then hit Enter.  

どちらかをドラッグ&ドロップ(=full pathで指定)してEnter

  1. ビルド対象のschemeを選択する
Select the Scheme you usually use in Xcode

:iphone: デバイス登録

Account Settings > Test devicesで登録可能。

BITRISE のdeploy でinstall する場合に必要。
Enterprise buildする場合や別のstepでdistributionする場合、必要ないはず。

:hammer: 再ビルド

  1. App画面の右上にあるStart/Schedule a Buildをクリック
  2. 表示されたBuild configuration画面のWorkflow (optional)でworkflowを選択する
  3. Start Buildする

:heavy_plus_sign: Stepの追加

fabric_step.png

ビルドしたipaをFabricに上げたり、iTunes ConnectでSubmitしたりできます。
iOSならFabric Betaで共有する便利なstepがありますが、
Androidの場合はGradle Runnerというstepでgradle実行してアップロードする必要があります。

:heavy_plus_sign: 環境変数の追加

add_env_vars_list.png

Env Varsタブから環境変数を定義することができます。
各stepで共通の変数はここに定義しておけば便利。

また Script stepを使えばenvman addを実行することにより動的に追加することもできます。(exportは通用しなかった)

Info.plistのBundle Version基準による自動インクリメントの例:

.
.
.
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $plistPath)
echo "Current build number $buildNumber"
buildNumber="${buildNumber%.*}.$((${buildNumber##*.}+1))"
echo "New build number $buildNumber"

envman add --key BITRISE_BUNDLE_VERSION --value $buildNumber
.
.
.

上記例の場合、Info.plistの書き換えやその後のgitへのpushが必要になり、バージョン管理的に適切でないなら、手っ取り早い手としては、BITIRISE上でのビルドナンバーを仕込むのが吉。
Set Xcode Project Build Number stepので$BITRISE_BUILD_NUMBERを指定してやるだけ。
set_build_number.png

YAMLフォーマットで管理

yml_editor.png

  1. Workflow > bitrise.ymlタブを選択
  2. "Download currently saved config"ボタンからymlファイルをダウンロード
  3. bitrise.yml editorで直接編集すると設定が反映されます

設定は全てymlファイルとしてダウンロード&編集ができるため慣れてきたら、ymlの直接編集の方が効率が良いかもしれない。

プロジェクトに含めておけばバージョン管理もできる。

BITRISE CLIでローカル実行

コマンドラインで実行することができます。

  1. brewでbitirseをインストール
$ brew install bitrise
  1. バージョン確認
$ bitrise
VERSION: 1.10.0
  1. セットアップ
$ bitrise setup
  1. 初期化
$ bitrise init
  1. 設定

    ブラウザ上で設定したymlファイルに置き換える。

    App画面 > Workflow > bitrise.ymlタブを選択し、Download currently saved configでダウンロードしたbitrise.ymlと置き換える。

  2. workflow一覧確認

$ bitrise run
  1. workflowを指定してrun
$ bitrise run WORKFLOW_ID

—-
非常に便利です、BITRISE。
長々と書き連ねましたが、ブラウザ上でポチっていけば基本終わります。

今回はMacのSafariから操作しましたが、iOSのSafariからも操作できてしまいます。*少し怪しい部分もあるので要注意


Expose an Environment Variable and use it in another Step

使用可能なBITRISE 環境変数一覧

31
23
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
31
23