Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リモートワークでBitriseを導入したときにハマりにハマった話

tamappe
October 01, 2020

 リモートワークでBitriseを導入したときにハマりにハマった話

前々からチーム内でBitriseを使ってアプリ配信をしたかったのですが、
既存アプリで設定の仕方が分からなかったのでなかなか導入することができませんでした。

大きな問題となっていたのは、弊社アプリが
- 環境別にApp IDを設定していたこと
- Build Configurationで環境別のマクロを設定していたので当然環境別の配信スキームを用意したい
- 全ての環境で同一のKeychainを使っていたが、環境別でKeychainを設定したいという要望
- AppExtentionも使っていたこと
- plistが環境別にDebugとAdhoc用とで分かれている
- ついでにAppStoreへの自動アップロードも整備したい

問題を上げたらキリがないですが、Bitriseを導入する上で上記の問題がありました。
さらに私はProvisioning Profileの知識が乏しかったので、
BitriseのAutoProvisioningがスキーム別に対応できるのかどうかもこの時は正確には把握できていませんでした。
その状況で3月下旬に社内でリモートワーク導入の連絡が入って急遽、強制的にBitrise配信をできるようにしないといけなくなり
急いでBitriseでアプリの配信をできる環境整備に取り掛かりました。

リモートワークまでにBitriseでビルドできるようにまでは設定できるようになりましたが、
なぜかアプリ起動後にクラッシュするというような問題が発生したりでその原因調査に時間がかかりました。
本セッションでは、上記の問題たちをどのように解決していったのか、そして完成した配信スキームを紹介しようと思います。

tamappe

October 01, 2020
Tweet

More Decks by tamappe

Other Decks in Programming

Transcript

  1. I N T R O D U C T I

    O N Tamappe ϞόΠϧΞϓϦΤϯδχΞ 2014೥-2019೥3݄·ͰϑϦʔϥϯεͱͯ͠׆ಈ 2019೥4݄ΑΓϨΞδϣϒʹϞόΠϧΞϓϦΤϯδχΞͱͯ͠ೖࣾ झຯ: ϒϩάͷߋ৽ɺσΟζχʔ८Γ(ίϩφʹΑΓࣗॗ) Qiita: https://qiita.com/tamappe Blog: https://tamappe.com Twitter: https://twitter.com/tamapppe גࣜձࣾϨΞδϣϒ
  2. Bitriseಋೖ͢Δ্ͰͷπϥΠ੍໿ ϋϚͬͨઃఆ 1. App IDͷ࿩ 2. ؀ڥผͷ഑৴εΩʔϜΛߏங͍ͨ͠ 3. ؀ڥผʹKeychainΛઃఆ͍ͯ͠Δ 4.

    AppExtension (Widget Extension)΋࢖͍ͬͯΔ৔߹ 5. Plist ͕؀ڥผ + Debug༻ͱ Adhoc༻ʹ෼཭͞Ε͍ͯΔ 6. App Store ΁ͷࣗಈΞοϓϩʔυͷߏங
  3. 3. ؀ڥผʹKeychainΛઃఆ͍ͯ͠Δ ؀ڥ 1. Rarejob 2. Adhoc 3. Staging 4.

    Staging1 5. Staging2 ؀ڥผKeychain 1. ຊ൪؀ڥ 2. ຊ൪؀ڥ 3. Staging؀ڥ 4. Staging1؀ڥ 5. Staging2؀ڥ
  4. 3. ؀ڥผʹKeychainΛઃఆ͍ͯ͠Δ App ID App ID App ID App ID

    App ID Group ID Group ID Group ID Group ID Group ID
  5. BitriseͰͷworkflow ɾproduction-app-store ɾprod-adhoc-auto-provision ɾproduction-adhoc ɾstg-adhoc-auto-provision ɾstg1-adhoc-auto-provision ɾstg2-adhoc-auto-provision ɾstg-adhoc ɾstg1-adhoc ɾstg2-adhoc

    ɾຊ൪؀ڥ AppStore ɾຊ൪؀ڥ Φʔτ ɾຊ൪؀ڥ ϚχϡΞϧ ɾstg Φʔτ ɾstg1 Φʔτ ɾstg2 Φʔτ ɾstg ϚχϡΞϧ ɾstg1 ϚχϡΞϧ ɾstg2 ϚχϡΞϧ
  6. ·ͱΊ ϋϚͬͨઃఆ 1. App IDͷ࿩ 2. ؀ڥผͷ഑৴εΩʔϜ 3. ؀ڥผʹKeychainͷઃఆ 4.

    AppExtension΋࢖͍ͬͯΔ৔߹ 5. Plist ͕؀ڥผ + Debug༻ͱ Adhoc༻ 6. App Store ΁ͷࣗಈΞοϓϩʔυ ϋϚͬͨઃఆ Bundle Identifier ΛݟΔ Build Setting ͰϚϧνରԠ App Group ͱentitlement ʹ஫ҙ ࣺͯΔ (࡟আ) Build Setting Ͱઃఆ App Store ΁ͷࣗಈΞοϓϩʔυ