You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XCode 13运行旧iOS应用报错Info.plist无有效CFBundleVersion怎么办

Xcode 13 运行旧iOS应用CFBundleVersion无效错误解决方案

错误原因

该错误明确指向应用包中的CFBundleVersion(构建版本号)不符合苹果的格式要求,不是缺失,而是内容无效。

合法CFBundleVersion规则

苹果要求CFBundleVersion为最多3个段的正整数字符串,段之间用英文点分隔:

  • 合法示例:1、1.1、2.10.3
  • 非法示例:1.01(含前导零)、1.2beta(含字母)、1.0_2024(含特殊字符)

分步解决步骤

  • 第一步:同步双端版本配置
    很多旧项目的版本号是和项目配置绑定的,仅修改Info.plist不生效:
    1. 点击Xcode左侧导航栏顶部的项目根节点,在中间TARGETS列表选中你的应用目标
    2. 切换到「General」标签,找到「Identity」区块
    3. 确认Build字段的值为合法格式,且和Info.plist中的Bundle version(即CFBundleVersion)值完全一致
    4. 同时检查Bundle versions string, short(即CFBundleShortVersionString,显示给用户的版本号)也符合上述格式要求
  • 第二步:检查构建配置的版本变量
    如果Info.plist中的版本号用了变量引用,需要确认变量值合法:
    1. 选中应用目标后切换到「Build Settings」标签,搜索Versioning
    2. 确认Current Project Version(对应CFBundleVersion)和Marketing Version(对应CFBundleShortVersionString)的值均为合法格式
    3. 如果你有自定义构建配置(如Debug、Release、自定义的测试环境配置),要确认所有配置下的这两个变量值都合法
  • 第三步:清理旧构建缓存
    旧的缓存文件会保留错误的配置,修改后需要清理才能生效:
    1. 点击顶部菜单栏「Xcode -> Settings -> Locations」
    2. 点击「DerivedData」项右侧的小箭头打开缓存文件夹,删除对应你项目名称的文件夹
    3. 退出Xcode重新打开,按下Command+Shift+K清理项目后重新构建运行

常见无效场景排查

  • 版本号中含有中文、字母、下划线、横线等非数字非英文点的字符
  • 版本号的分段存在前导零,比如2.03.1需要修改为2.3.1
  • 仅修改了Project级别的配置,没有同步修改Targets级别的配置

内容的提问来源于stack exchange,提问作者Lukas Luke Stateczny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:57:05