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
520
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
50
iOS 18 から追加された SwiftUI の傾向について調べてみる
swiftty
3
730
Flutter アプリのリリースフローを考える
swiftty
0
300
Meet BrowserEngineKit
swiftty
0
1.7k
同じアプリを Flutter と SwiftUI で書いてみる
swiftty
0
560
Swift Package Manager へ移行した話
swiftty
0
670
SwiftLint にコントリビュートする
swiftty
1
4.6k
SwiftUI でリスト要素のインプレッションを計測する
swiftty
0
550
個人開発アプリでの Swift Macros 紹介
swiftty
0
630
Other Decks in Programming
See All in Programming
kiroでゲームを作ってみた
iriikeita
0
110
QA x AIエコシステム段階構築作戦
osu
0
220
Advanced Micro Frontends: Multi Version/ Framework Scenarios
manfredsteyer
PRO
0
120
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
180
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
0
230
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
3
320
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
170
階層化自動テストで開発に機動力を
ickx
1
450
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
1k
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
4
510
What's new in Adaptive Android development
fornewid
0
130
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
1k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Being A Developer After 40
akosma
90
590k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Designing for humans not robots
tammielis
253
25k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Thoughts on Productivity
jonyablonski
69
4.8k
Raft: Consensus for Rubyists
vanstee
140
7k
Visualization
eitanlees
146
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Faster Mobile Websites
deanohume
308
31k
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 で管理 • まだベストな運用が定まっていないので懇親会で ぜひ情報交換しましょう