BitriseでiTunesConnectに自動でipaファイルをビルド&iOSリリース手順

More than 1 year has passed since last update.

iOSアプリのリリース準備をする際のBitriseを用いた手順が見つからなかったので、

iTunesConnectに自動でipaファイルをビルドするための手順をまとめてみました(・ω・)

でもってリリース準備をする際にこれさえあれば問題ないという自分メモ。


0.前提


■Bitriseとは?

https://www.bitrise.io

d9a1d9c8-7a0b-ac02-4794-3c6efd683964.jpeg

「Bitrise - iOS Continuous Integration and Delivery」

を謳っていますが、iOS/Androidに特化したCIツールです。

基本的な使用メリットとしては、


  • workflow形式で設定ができるので楽

  • 月のビルド回数等に制限がありますが個人で使う分には無料枠で十分

  • リリース、テスト準備が楽&確実になる

  • 成功失敗の通知をslackに送る等も可能

など。


■ゴール

iTunesConnectにipaファイルを上げてslackに通知を送る(・ω・)


■準備するもの


  • Bitriseアカウント

  • AppleDeveloperアカウント

  • Xcode

  • Github(またはBitBucket)(プライベートリポジトリも可能)


1.事前準備


■Identifier&ProvisioningProfileの作成

リリース用のIdentifierとProvisioningProfileを作成する。


  • Identifier

    BundleIDはxcode上のgeneral>bundleidentiferを設定

    ff890620-2825-4ff7-bea5-d7662d6db67f.png

     


  • ProvisioningProfile

    リリースの場合はDistribution

    AppIDは先ほどのIdentifierを指定

    作成したらダウンロードする

    Xcode>preference>Accounts>ViewDetails..からでもDL可能)

    ba1f7dfc-7608-4bb7-be51-6737ae777b33.png



■プロジェクトの準備

リリースするプロジェクトの準備をする。


  • 先ほどのProvisioningProfileを下記に設定

    0323715f-4955-4a29-8daa-6e4e83a64d62.png

     


  • Version,Buildの設定

    b6c8d27f-024d-4939-95f9-254ef3710a16.png



■iTunesConnectの準備


  • iTunesConnectで新規Appを作成

    (自分でプロジェクト消せないのはいつ改善されるのだろう...(ボソッ))

    480986d8-1067-db32-5898-a7516aaa7b19.png
     

バンドルIDはxcode上のgeneral>bundleidentiferを、

SKUはXcodeのプロジェクト名をそれぞれ入力する。

37801461-6af1-0618-8162-1ab865d98ef1.png

 


  • 今回作るアプリバージョンを追加

     ※バージョンはxcode上のgeneral>Versionを入力
    6e28c271-6a12-46c1-a387-b3716b17e12b-1920x964r.png


2.Githubの準備


  • プロジェクトのリポジトリを準備(今回はprivateで作成)

    リリースしたいバージョンをmasterにマージする
    d7c46275-ebfb-46e0-b0c7-247fcd100a78-1920x1357r.png


3.Bitriseの設定

Bitriseを色々設定していきます(・ω・)


■プロジェクトの作成&リポジトリの設定


  • 「+Add(+Addfirstapp)」

  • リポジトリを設定する

     ※privateの場合は、other/Manualを選択

     ※また、privateリポジトリの場合はurlではなくSSHで入力

    5f6ea3e7-cb65-4b54-9b7c-67df1f454973-1920x571r.png

     


  • 表示されるsshkeyをGithub側に登録する

    ccc09d89-c33d-4a15-9fdf-9c48f7e33de6-1920x960r.png

     


  • 「Next」を押すとBitriseが試しにGithubからデータを持ってこようとする

    e9c49980-9f03-4a9a-9d66-fb08c42f9aac.png


 

おぅふ、Warning(;ω;)

3da8aa1f-dc24-4387-b5ac-325cfe820838-1920x1068r.png


調べてみるとこの場合の対処法としては、

xcodeprojを開いて、Product>Scheme>ManageSchemes

cece82af-6229-463c-8416-a0eb6a93d3cd.png

で、ここの、sharedにチェックを入れる。

cece82af-6229-463c-8416-a0eb6a93d3cd.png

warningになった理由は、

xcshareddataとxcuserdataというファイルはそれぞれ、

xcshareddata:みんなで共有できるもの

xcuserdata:ユーザー(他の人の環境では表示されない)

4581a7c1-ec7e-4a5f-aac8-1788ab057134-1920x407r.png

なので、xcshareddataファイルはsharedにチェックを入れないと生成されない。

つまり、

Bitriseちゃん「xcschememanagement.plistが見れない(;;)」

って怒ってた為。

個人開発の場合は特に忘れやすいので注意!!


設定し直してリビルド。

294d8ece-6cf0-43fa-87b1-4e1b3273bf87.png

gitの準備はOK。


■ProvisioningProfileの登録

先ほどのProvisioningProfileを登録する。

059f91e3-5f69-4b73-8f37-e68f68a1ce38.png


■Workflowの設定

Github→iTunesConnectのだけの流れであれば、

以下の順でWorkflowediterからフローstepを追加、並び替える。

+ボタンをポチポチしていくだけです。簡単素敵。


  • Activate SSH key (RSA private key)

  • Git Clone Repository

  • Certificate and profile installer

  • Set Xcode Project Build Number

  • Xcode: Create Archive

  • Deploy to iTunes Connect / TestFlight (with Deliver)

  • あとは必要であればSend a Slack messageなど

24a43839-58f5-40b9-94b9-933397a4b140.png


■各Workflowのstepの設定

基本的には自動設定のままで大丈夫だったりで設定自体は割と簡単です。

全部説明すると長くなってしまうので、ちょっと手こずった部分&コツを紹介。


■Set Xcode Project Build Number

スクリーンショット 2016-12-10 18.47.59.png

 


  • Info.plist file path

    →xcode内のplistの場所のパス
    2a067f65-8c29-4b7a-ad57-63c230c348c9.png

こういうこと言ってる方もおりますがこれだと上手くいかない可能性があるので、プロジェクトのファイルに入ったとこからのスタートのパスを記載がベターです。



BitriseTest/Info.plist



こんな感じ。

 


  • Build Number、Version Number

    →ビルドバージョンの設定

    それぞれプロジェクトと同じ設定を毎回直書きでもよいのですがせっかくなので変数を使用。

    ※Bitrise内で環境変数を作ることが可能。
    3c9bfe73-6d29-4894-ac78-188143fcf5d7.png

 

それを設定する。

63075583-6875-4e27-a958-377b87960111.png

 

こんな感じ。

リリースするたびにここを書き換えるだけ。


■Deploy to iTunes Connect / TestFlight (with Deliver)

スクリーンショット 2016-12-10 19.02.29.png


  • iTunes Connect: User Apple ID (email)

  • iTunes Connect: Password

  • iTunes Connect: App Apple ID

    これらも変数を作って設定。
    2fabc547-9297-467b-935c-0f0826b08f1d.png
     

それを設定する。

faeeb398-aedd-490a-9b9c-74a8578e2d69.png

 

こんな感じ。


※変数の設定について

AppleIDを

もしログ上で変数の中身を表示したくない場合は、

Secret Environment Variables

特に気にしない場合は、

App Environment Variables

で変数を設定する。

今回はAppleIDとパスワードはsecretに設定してみました。


4.実行

一通り設定し終えたのでBitrise上でビルド

 ※cloneがmasterに向いてるか最後に確認

5de6dd6d-0ed4-4cec-9453-504c9c41eb76.png

 

成功したらslackにこのような感じで通知が届く

ab9c7199-94ec-4ce9-80c2-8c22b3b5e438.png

 

Bitriseのログの方を確認、success。

bd5a64f0-57b9-401a-b5a1-10cffa1ddc91.png

最後にiTunesConnectで確認

 ※アップされるまで15-30分ほどかかるので待つ

dec1b1f1-115f-40a5-bce3-a04187e54e26.png

0e405441-537a-4b6c-91d0-711581800d10.png

👍👍👍👍


■まとめ


  • リモートリポジトリの方と連携しているのでどの環境でも同じようにビルドすることができる

  • slackに通知が来るのでBitriseでビルドスタートさせればあとは待ちなので非常に楽

  • 何よりもworkflowが便利すぎる

  • hockyAppとの連携も可能なのでTestFlightはちょっと..という場合でも対応可能


    • (TestFlightは端末数制限があるので...)