Xcode13发布应用到App Store/TestFlight时修改Framework版本号如何解决
Xcode 13 自动同步Framework版本号问题解决方案
方案1:上传时临时关闭自动版本管理
在Xcode执行分发到App Store Connect的流程中,到「App Store Connect 选项」步骤时,取消勾选 Manage version and build number 即可。该选项为Xcode 13默认开启,开启后会强制将所有内嵌Framework的版本号同步为宿主App的版本号。
方案2:永久关闭Framework版本同步逻辑
如果不需要每次上传手动修改选项,可以在Framework对应Target的Build Settings中做如下配置:
- 将
VERSIONING_SYSTEM(版本系统)从默认的Apple Generic修改为None - 清空
VERSION_INFO_PREFIX字段的值 - 固定
CURRENT_PROJECT_VERSION字段值为你的Framework版本号 - 确认Framework的Info.plist中
CFBundleShortVersionString、CFBundleVersion字段为固定值,未使用Xcode自动变量占位符
方案3:绕开系统修改逻辑,使用自定义字段存储版本号
你也可以在Framework的Info.plist中新增自定义字段,例如CustomFrameworkVersion,代码中直接读取该自定义字段做版本判断逻辑,Xcode的自动版本同步逻辑不会修改自定义字段,可完全规避该问题。
验证方法
配置完成后无需上传到TestFlight,可先导出Ad Hoc/Development格式的IPA包,解压后找到对应Framework的Info.plist,直接查看CFBundleShortVersionString字段值是否符合预期即可验证配置是否生效。
内容的提问来源于stack exchange,提问作者Stéphane Padovani
相关产品推荐
相关产品推荐

