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

Cloud-managed certificates へ移行した話

Cloud-managed certificates へ移行した話

Mobile勉強会 Wantedly × チームラボ × Sansan #15 で発表した内容です
https://sansan.connpass.com/event/321922/

swiftty

July 23, 2024
Tweet

More Decks by swiftty

Other Decks in Programming

Transcript

  1. © 2024 Wantedly, Inc. 自己紹介 林達也 ウォンテッドリー株式会社 github swiftty x

    _swiftty wantedly tatsuya_hayashi_ar Swift Package Manager へ移行した話 ハーモナイザー - 性格診断
  2. © 2024 Wantedly, Inc. 前提 • 今までは fastlane match で証明書を管理

    • 開発者証明書は個々人、 CI 用にそれぞれ持っている • 開発時は Automatically manage signing を利用 チーム状況
  3. © 2024 Wantedly, Inc. 前提 • 毎年の証明書・プロビジョニングプロファイル更新作業におい て一部自動化できない手順が存在 ◦ App

    Store Connect 上で手動で entitlements を更新したあとに改めてプロファイル をリポジトリに保存 更新作業
  4. © 2024 Wantedly, Inc. 前提 • 毎年の証明書・プロビジョニングプロファイル更新作業におい て一部自動化できない手順が存在 ◦ App

    Store Connect 上で手動で entitlements を更新したあとに改めてプロファイル をリポジトリに保存 更新作業 → カイゼンしたい💪 
  5. © 2024 Wantedly, Inc. Cloud-managed certificates とは Cloud-managed certificates(クラウド管理証明書) •

    アプリ配布のための署名がクラウドで行われる • 期限が近づいてきたら自動で更新される https://developer.apple.com/jp/help/account/create-certificates/cloud-managed-certificates/
  6. © 2024 Wantedly, Inc. 署名方法 • 準備 ◦ Automatically manage

    signing を有効化 ◦ App Store Connect API キーを発行 • xcodebuild にオプションを追加 -allowProvisioningUpdates -authenticationKeyIssuerID <issuer_id> -authenticationKeyID <key_id> -authenticationKeyPath <api_key_path>
  7. © 2024 Wantedly, Inc. 移行の流れ • 社内配布をクラウド署名に変更 • どの証明書が用いられたかを確認 ◦

    DistributionSummary.plist ◦ *.ipa/*.app/*.mobileprovision ◦ → 証明書が「Cloud Managed Apple Distribution」となっていること 適切な entitlements が反映されていること • 問題ないことを確認してプロダクション配布にも適用 • (各アプリごとに検証・適用)
  8. © 2024 Wantedly, Inc. クラウド証明書は配布(エクスポート)時に署名に利用されるもの そのためアーカイブ時の署名を無効( CODE_SIGNING_ALLOWED=NO )とすれば開発者証明書も不要 → entitlements

    が反映されない ※プッシュ通知や Associated domains の設定など ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜ → 開発者証明書は必要 開発者証明書のみ fastlane match で管理することに  
  9. © 2024 Wantedly, Inc. ipa 作成の流れ ビルド/アーカイブ ➜ エクスポート ➜

    ※ Session Video の説明では部分署名と説明 https://developer.apple.com/videos/play/wwdc2021/10204/ 開発者証明書で署名 ※ クラウド証明書で署名
  10. © 2024 Wantedly, Inc. まとめ • クラウド管理になり配布証明書とプロビジョニング プロファイルの更新から開放 ◦ ただし開発者証明書は

    1 年ごとの更新は必要… ◦ そのため開発者証明書のみ引き続き fastlane match で管理 • まだベストな運用が定まっていないので懇親会で ぜひ情報交換しましょう 󰢧