Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cloud-managed certificates へ移行した話
Search
swiftty
July 23, 2024
Programming
0
570
Cloud-managed certificates へ移行した話
Mobile勉強会 Wantedly × チームラボ × Sansan #15 で発表した内容です
https://sansan.connpass.com/event/321922/
swiftty
July 23, 2024
Tweet
Share
More Decks by swiftty
See All by swiftty
Wantedly Visit での SKIE の導入と振り返り
swiftty
0
53
iOS 18 から追加された SwiftUI の傾向について調べてみる
swiftty
3
800
Flutter アプリのリリースフローを考える
swiftty
0
320
Meet BrowserEngineKit
swiftty
0
1.8k
同じアプリを Flutter と SwiftUI で書いてみる
swiftty
0
580
Swift Package Manager へ移行した話
swiftty
0
690
SwiftLint にコントリビュートする
swiftty
1
4.6k
SwiftUI でリスト要素のインプレッションを計測する
swiftty
0
580
個人開発アプリでの Swift Macros 紹介
swiftty
0
650
Other Decks in Programming
See All in Programming
OSS開発者という働き方
andpad
5
1.7k
RDoc meets YARD
okuramasafumi
4
170
AWS発のAIエディタKiroを使ってみた
iriikeita
1
190
Reading Rails 1.0 Source Code
okuramasafumi
0
250
Kiroで始めるAI-DLC
kaonash
2
610
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
複雑なドメインに挑む.pdf
yukisakai1225
5
1.2k
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.4k
楽して成果を出すためのセルフリソース管理
clipnote
0
180
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
610
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
400
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The World Runs on Bad Software
bkeepers
PRO
70
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Code Review Best Practice
trishagee
71
19k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Transcript
© 2024 Wantedly, Inc. Cloud-managed certificates へ 移行した話 Mobile勉強会 Wantedly
× チームラボ × Sansan #15 Jul. 23 2024 - 林達也
© 2024 Wantedly, Inc. 自己紹介 林達也 ウォンテッドリー株式会社 github swiftty x
_swiftty wantedly tatsuya_hayashi_ar Swift Package Manager へ移行した話 ハーモナイザー - 性格診断
© 2024 Wantedly, Inc. 前提
© 2024 Wantedly, Inc. 前提 • 今までは fastlane match で証明書を管理
• 開発者証明書は個々人、 CI 用にそれぞれ持っている • 開発時は Automatically manage signing を利用 チーム状況
© 2024 Wantedly, Inc. 前提 • 毎年の証明書・プロビジョニングプロファイル更新作業におい て一部自動化できない手順が存在 ◦ App
Store Connect 上で手動で entitlements を更新したあとに改めてプロファイル をリポジトリに保存 更新作業
© 2024 Wantedly, Inc. 前提 • 毎年の証明書・プロビジョニングプロファイル更新作業におい て一部自動化できない手順が存在 ◦ App
Store Connect 上で手動で entitlements を更新したあとに改めてプロファイル をリポジトリに保存 更新作業 → カイゼンしたい💪
© 2024 Wantedly, Inc. ちなみにみなさん 証明書どう管理していますか? クラウド管理 or Xcode Cloud、手動、…
© 2024 Wantedly, Inc. Cloud-managed certificates とは
© 2024 Wantedly, Inc. Cloud-managed certificates とは Cloud-managed certificates(クラウド管理証明書) •
アプリ配布のための署名がクラウドで行われる • 期限が近づいてきたら自動で更新される https://developer.apple.com/jp/help/account/create-certificates/cloud-managed-certificates/
© 2024 Wantedly, Inc. プロビジョニングプロファイルと 配布用証明書の管理が不要に👏
© 2024 Wantedly, Inc. 署名方法
© 2024 Wantedly, Inc. 署名方法 • 準備 ◦ Automatically manage
signing を有効化 ◦ App Store Connect API キーを発行 • xcodebuild にオプションを追加 -allowProvisioningUpdates -authenticationKeyIssuerID <issuer_id> -authenticationKeyID <key_id> -authenticationKeyPath <api_key_path>
© 2024 Wantedly, Inc. 移行の流れ
© 2024 Wantedly, Inc. 移行の流れ • 社内配布をクラウド署名に変更 • どの証明書が用いられたかを確認 ◦
DistributionSummary.plist ◦ *.ipa/*.app/*.mobileprovision ◦ → 証明書が「Cloud Managed Apple Distribution」となっていること 適切な entitlements が反映されていること • 問題ないことを確認してプロダクション配布にも適用 • (各アプリごとに検証・適用)
© 2024 Wantedly, Inc. ハマったこと
© 2024 Wantedly, Inc. ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜
© 2024 Wantedly, Inc. クラウド証明書は配布(エクスポート)時に署名に利用されるもの そのためアーカイブ時の署名を無効( CODE_SIGNING_ALLOWED=NO )とすれば開発者証明書も不要 ipa 作成の流れ
ビルド/アーカイブ ➜ エクスポート ➜
© 2024 Wantedly, Inc. クラウド証明書は配布(エクスポート)時に署名に利用されるもの そのためアーカイブ時の署名を無効( CODE_SIGNING_ALLOWED=NO )とすれば開発者証明書も不要 → entitlements
が反映されない ※プッシュ通知や Associated domains の設定など ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜
© 2024 Wantedly, Inc. クラウド証明書は配布(エクスポート)時に署名に利用されるもの そのためアーカイブ時の署名を無効( CODE_SIGNING_ALLOWED=NO )とすれば開発者証明書も不要 → entitlements
が反映されない ※プッシュ通知や Associated domains の設定など ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜ → 開発者証明書は必要 開発者証明書のみ fastlane match で管理することに
© 2024 Wantedly, Inc. ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜
※ Session Video の説明では部分署名と説明 https://developer.apple.com/videos/play/wwdc2021/10204/ 開発者証明書で署名 ※ クラウド証明書で署名
© 2024 Wantedly, Inc. まとめ
© 2024 Wantedly, Inc. まとめ • クラウド管理になり配布証明書とプロビジョニング プロファイルの更新から開放 ◦ ただし開発者証明書は
1 年ごとの更新は必要… ◦ そのため開発者証明書のみ引き続き fastlane match で管理 • まだベストな運用が定まっていないので懇親会で ぜひ情報交換しましょう