如何关闭Xcode自动修改,手动管理iOS App Extension的Bundle Version?
解决Xcode自动修改App Extension的CFBundleVersion问题
你遇到的问题是Xcode自动同步主应用与Extension的构建版本,导致fastlane设置的版本被覆盖,进而出现版本不匹配警告。以下是手动管理版本号的解决步骤:
1. 检查并修改Extension的Info.plist配置
打开Extension的Info.plist文件,找到CFBundleVersion(构建版本)项:
- 如果该项的值是
$(CURRENT_PROJECT_VERSION)或类似变量引用,直接替换为固定版本号(比如和主应用一致的3393),避免Xcode通过变量自动同步版本。 - 若删除该配置后Xcode自动恢复,说明Extension的Target配置中强制关联了主应用的版本变量,需要进一步调整Build Settings。
2. 关闭Xcode的自动版本管理功能
- 打开项目的Project设置(非Target设置),切换到Info标签页,取消勾选「Automatically manage version and build number」选项(Xcode 13及以上版本才有此选项)。
- 进入Extension的Target设置,切换到Build Settings标签页,搜索「Versioning」:
- 将「Current Project Version」设置为与主应用一致的版本号,不要使用继承自主应用的变量。
- 确保「Versioning System」设置为「Apple Generic」(此设置不影响手动管理版本)。
3. 验证fastlane脚本的正确性
确认SHARE_INFO_PLIST_PATH路径指向Extension的真实Info.plist文件,避免路径错误导致脚本未修改到目标文件。脚本执行后,可手动检查Extension的Info.plist中CFBundleVersion是否已被正确设置。
额外注意
若项目使用CocoaPods等依赖管理工具,需确保这类工具不会自动修改Extension的Info.plist配置,部分插件可能默认同步版本变量,需在相关配置中禁用该功能。
内容的提问来源于stack exchange,提问作者kunass2
相关产品推荐
相关产品推荐

