iOS SwiftUI应用移除Google Maps冗余包,仅保留Google Places
解决Google Places冗余依赖导致IPA体积过大的问题
- 换用官方单独的Google Places SPM包
Google官方已经提供了仅包含Places功能的SPM包,无需依赖整套Google Maps套件。操作步骤:
- 打开Xcode的Package Dependencies,移除当前使用的第三方GoogleMaps-SP包
- 添加官方包:搜索
https://github.com/googlemaps/google-maps-ios-sdk,添加时仅选择GooglePlaces产品;或者直接在Package.swift中指定依赖:
这种方式只会引入GooglePlaces相关二进制文件,不会带入GoogleMaps、GoogleMapsCore等冗余框架,从根源解决体积问题。dependencies: [ .package(url: "https://github.com/googlemaps/google-maps-ios-sdk.git", from: "7.0.0") ], targets: [ .target( name: "你的Target名称", dependencies: [ .product(name: "GooglePlaces", package: "google-maps-ios-sdk") ] ) ]
- 手动剥离冗余框架(仅无法替换官方包时使用)
如果必须保留当前第三方包,可尝试手动移除未使用的框架:
- 进入项目
Build Phases,找到Link Binary With Libraries,删除GoogleMaps.framework、GoogleMapsCore.framework、GoogleMapsBase.framework - 检查
Copy Bundle Resources,若存在GoogleMaps相关bundle文件,一并删除 - 清理项目(
Cmd+Shift+K)后重新归档,验证IPA体积变化
- 开启App Thinning进一步优化
归档发布时记得开启App Thinning:
- 归档完成后选择
Distribute App,选择App Store Connect分发,勾选Enable App Thinning - Apple会自动移除未使用的架构和资源,进一步压缩IPA体积
⚠️ 注意:手动剥离框架前,务必确认代码完全没有间接依赖这些冗余框架的API,否则会导致运行时崩溃。优先推荐使用官方单独的Places包,不仅体积更小,维护也更稳定。
内容的提问来源于stack exchange,提问作者dhaval123
相关产品推荐
相关产品推荐

