Flutter热修复:iOS与Android版本号差异及iOS版本升级疑问
iOS热修复版本号方案说明
iOS版本号的核心规则
iOS的版本体系分为两个独立字段,和Android的x.x.x+x格式逻辑不同:
CFBundleShortVersionString:对外展示的正式版本号(如3.3.12),苹果要求提交的新版本必须比之前已通过审核的版本号更高,且同一版本号对应的版本线一旦关闭(比如正式发布、被锁定),就无法再提交该版本号的任何新构建。CFBundleVersion:内部构建号(支持纯数字或点分隔数字,如1、2、1.1),同一CFBundleShortVersionString下可以自由递增这个值,用来区分同一版本下的不同构建包。
针对你的错误分析
你遇到的90186和90062错误,核心原因是3.3.12这个版本线已经被苹果关闭,此时无法再提交该版本号的任何新构建,哪怕只修改构建号也不行。
可行的解决方案
- 如果
3.3.12版本线仍处于开放状态(比如只是测试版未正式发布,可在App Store Connect中查看版本状态):可以保持CFBundleShortVersionString=3.3.12,仅递增CFBundleVersion(比如从原构建号1改为2),就能提交新的热修复构建。在Flutter中可以通过以下命令指定:flutter build ios --build-name=3.3.12 --build-number=2 - 如果
3.3.12版本线已关闭:必须升级CFBundleShortVersionString到更高版本(比如3.3.13),同时搭配新的CFBundleVersion才能提交。Flutter中命令示例:flutter build ios --build-name=3.3.13 --build-number=1
内容的提问来源于stack exchange,提问作者nyphur
相关产品推荐
相关产品推荐

