Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
24
Help us understand the problem. What is going on with this article?
@chanNaru

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

More than 3 years have 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は端末数制限があるので...)
24
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
chanNaru
バイトル(dip)→ジモティー swiftでiOSアプリ開発してます、iOSDCに登壇したりしてますʕ•ᴥ• ʔ お絵描きと世界史とドライブが好きです (twitterは完全な車垢><)
jmty
日本最大のクラシファイドサイト「ジモティー」を開発・運営するスタートアップ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
24
Help us understand the problem. What is going on with this article?