QT开发iOS应用.pro配置无法生成版本号导致部署失败怎么解决?
问题解决方案
问题原因
你自定义了QMAKE_INFO_PLIST指向本地的Info.plist文件后,Qt默认自动注入版本号的逻辑会失效。未自定义plist时Qt会默认补全1.0.0的版本信息,自定义plist后需要你手动配置版本号和plist的关联逻辑。
可行配置方案
方案1:修改自定义plist添加变量占位(最常用)
打开你$$PWD/ios/Info.plist文件,新增/修改两个版本相关的key,值设置为qmake变量占位:
<key>CFBundleShortVersionString</key> <string>$(QMAKE_SHORT_VERSION)</string> <key>CFBundleVersion</key> <string>$(QMAKE_FULL_VERSION)</string>
之后在.pro的ios配置块中添加版本配置即可:
ios { # 其他原有配置保留 QMAKE_SHORT_VERSION = 1.0.0 # 对应App对外显示的版本号 QMAKE_FULL_VERSION = 100 # 对应内部构建号,可每次构建递增 }
方案2:直接使用全局VERSION变量
无需修改plist,直接在.pro文件中添加全局VERSION配置即可,Qt会自动将值映射到iOS的两个版本key中:
VERSION = 1.0.0
如果需要区分对外版本和构建号,可以额外补充QMAKE_TARGET_BUILD_VERSION = 100配置。
方案3:直接向plist追加版本配置
如果不想修改原有自定义plist,可以在.pro的ios配置块中用QMAKE_INFO_PLIST_APPEND直接追加版本配置:
ios { # 其他原有配置保留 QMAKE_INFO_PLIST_APPEND += \ <key>CFBundleShortVersionString</key> \ <string>1.0.0</string> \ <key>CFBundleVersion</key> \ <string>100</string> }
生效验证
修改完配置后,必须先清空原有构建目录,再重新执行qmake、构建操作,避免旧缓存导致配置不生效。重新生成的Xcode项目就会自动携带正确的版本号,无需手动修改。
内容的提问来源于stack exchange,提问作者user7179690
相关产品推荐
相关产品推荐

