Flutter构建iOS包时缺失BuildName与BuildNumber的求助
解决Flutter iOS包BuildName/BuildNumber丢失的方案
检查pubspec.yaml基础配置
确保version字段格式正确,比如version: 1.0.0+6(前者对应BuildName,后者对应BuildNumber),不要遗漏+分隔符。确认iOS Info.plist变量绑定
打开ios/Runner/Info.plist,确保以下两个字段值为Flutter动态变量:CFBundleShortVersionString:$(FLUTTER_BUILD_NAME)CFBundleVersion:$(FLUTTER_BUILD_NUMBER)
不要设置为空或硬编码固定值。
检查Xcode项目的Target配置
打开ios/Runner.xcworkspace:- 选中Runner目标,切换到「General」标签,确认「Version」和「Build」输入框显示为
$(FLUTTER_BUILD_NAME)和$(FLUTTER_BUILD_NUMBER) - 如果项目包含多个Target(如测试Target、扩展Target),需同步设置这些Target的Version和Build值,避免验证时遗漏。
- 选中Runner目标,切换到「General」标签,确认「Version」和「Build」输入框显示为
清理并重建项目缓存
执行以下命令彻底清理缓存:flutter clean rm -rf ios/Pods ios/Podfile.lock pod install --project-directory=ios之后重启Xcode,重新执行构建命令。
修正命令行构建参数格式
去掉--build-name和--build-number的引号(部分Shell环境会解析错误),改用:flutter build ipa --obfuscate --split-debug-info=./debug-info --build-name 1.0.0 --build-number 6检查Xcode Build Settings版本配置
在Runner目标的「Build Settings」标签,搜索「Versioning」:- 确认
MARKETING_VERSION值为$(FLUTTER_BUILD_NAME) - 确认
CURRENT_PROJECT_VERSION值为$(FLUTTER_BUILD_NUMBER)
- 确认
重新生成iOS项目文件(极端情况)
备份ios文件夹后,执行命令重新生成iOS项目结构:flutter create --platforms ios .重新配置签名、权限等必要信息后再构建。
验证IPA包正确性
确保提交的是最新构建的IPA,路径为build/ios/ipa/[你的应用名].ipa,避免使用旧缓存包。
内容的提问来源于stack exchange,提问作者Binoy Babu
相关产品推荐
相关产品推荐

