Slide 1

Slide 1 text

© 2025 ANDPAD All Rights Reserved. 1 CocoaPods ライブラリ群の SPM への移行戦略 Yuki Takagi

Slide 2

Slide 2 text

© 2025 ANDPAD All Rights Reserved. Confidential 2 Swift Package Manager 対応、おわってますか? - CocoaPods の Trunk が Read Only へ 2年以内の移行* - 新規の追加、既存の更新が不可能になる - アンドパッドでは現役で CocoaPods のライブラリを使用 * https://blog.cocoapods.org/CocoaPods-Specs-Repo

Slide 3

Slide 3 text

© 2025 ANDPAD All Rights Reserved. Confidential 3 アンドパッドの iOS アプリの現状 - アンドパッドでは複数の社内ライブラリを CocoaPods モジュールとして管理* - 各チームがそれぞれのタイミングで移行する - 一時的に SPM / CocoaPods 両対応 CocoaPods アプリ * https://tech.andpad.co.jp/entry/2022/04/28/100000

Slide 4

Slide 4 text

© 2025 ANDPAD All Rights Reserved. Confidential 4 やること - 移行対象のライブラリが依存しているライブラリがすべてSPM 対応しているかを確認する - podspec をみる - 未対応の場合 → まずはそれを移行するなどして頑張る - Package.swift にライブラリを追加 - コードを修正していく - Bundle を修正する / - #if SWIFT_PACKAGE で分岐 - Storyboard を修正する

Slide 5

Slide 5 text

© 2025 ANDPAD All Rights Reserved. Confidential 5 難しいところ - 複雑な依存関係が大変 - Flutter Package もある - 強く依存している / SPM 対応してないライブラリ - 実行時にクラッシュする - リソースの取得 - Bundle - ✅ Bundle.module - ❌ Bundle(for: type(of: self)) - Storyboard

Slide 6

Slide 6 text

© 2025 ANDPAD All Rights Reserved. Confidential - Flutter Package もある - Flutter の SPM 対応待ち* 6 難しいところ - Flutter Package も考慮する 社内ライブラリ(CocoaPods) アプリ * https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-plugin-authors

Slide 7

Slide 7 text

© 2025 ANDPAD All Rights Reserved. Confidential - Flutter Package もある - Flutter の SPM 対応待ち* 7 難しいところ - Flutter Package も考慮する 社内ライブラリ(Flutter Package) アプリ 社内ライブラリ(CocoaPods) * https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-plugin-authors

Slide 8

Slide 8 text

© 2025 ANDPAD All Rights Reserved. Confidential - 強く依存している / SPM対応してないライブラリ - RxSwift などほぼ全てに依存しているライブラリがある - 一部だけの SPM 移行を妨げる 8 難しいところ - 複雑な依存関係 Rx Swift 社内ライブラリ(CocoaPods) アプリ 社外ライブラリ(CocoaPods)

Slide 9

Slide 9 text

© 2025 ANDPAD All Rights Reserved. Confidential 9 難しいところ - 実行時にクラッシュする - Bundle の取得時に実行時クラッシュする - CocoaPods / SPM どちらの環境か確認してBundleを返す

Slide 10

Slide 10 text

© 2025 ANDPAD All Rights Reserved. Confidential 2022年4月より現職の iOS アプリエンジニア GitHubActions、Bitrise の CI/CD の整備やメンテナンスし、効率 的な開発環境の構築に興味がある 趣味はキャンプやラーメン巡り X: https://x.com/kiwi_yuki 高木 友稀 株式会社アンドパッド 開発本部 SWE Profile | 経 歴 10 自己紹介

Slide 11

Slide 11 text

© 2025 ANDPAD All Rights Reserved. Confidential 11 まとめ - アンドパッドにおけるライブラリ群の現状 - CocoaPods のライブラリを SPM 対応する際のやることを紹介 - 実際にやってみる際に辛いポイントを紹介 - Flutter への依存 - ほかライブラリへの依存により、部分的な移行が難しい - 実行時クラッシュ