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

Xcode14.3.1上传App Store Connect遇主可执行文件签名错误求助

解决Xcode 14.3.1上传App Store Connect的签名与Bundle验证问题

一、主可执行文件“未正确签名”(非ASCII文件名场景)

  • 检查签名配置一致性:
    1. 打开项目Build Settings,搜索CODE_SIGN_IDENTITY和PROVISIONING_PROFILE_SPECIFIER,确认二者对应发布用的证书与描述文件,无配置冲突。
    2. 清理构建缓存:执行Command+Shift+K清理项目,再用Command+Option+Shift+K清理构建文件夹,重新Archive尝试上传。
  • 修复非ASCII文件名兼容性问题:
    Xcode 14.3.x对非ASCII字符的处理存在已知兼容性bug,即便之前正常运行,也可尝试:
    1. 直接修改Target的Product Name为纯ASCII字符(在Build Settings中找到该选项,替换为无特殊字符的名称)。
    2. 强制指定EXECUTABLE_NAME为纯ASCII值:在Build Settings中搜索EXECUTABLE_NAME,将默认的$(PRODUCT_NAME:c99extidentifier)替换为手动设置的纯ASCII文件名,确保可执行文件生成时使用该名称。

二、修改CFBundleExecutable导致“未找到.app bundle”的解决方法

  • CFBundleExecutable的核心作用:它是Bundle元数据的可信源,系统通过该键的值定位App Bundle内的主可执行文件,必须与实际文件名完全一致(包括大小写、字符)。
  • 错误根源:你硬编码的ASCII值与实际生成的可执行文件名不匹配,导致系统无法定位可执行文件,触发包验证失败。
  • 正确修改步骤:
    1. 完成Archive后,找到生成的.xcarchive文件,右键选择「显示包内容」,进入Products/Applications/你的App.app目录,确认内部主可执行文件的真实文件名。
    2. 将Info.plist中的CFBundleExecutable值硬编码为该真实文件名,确保完全匹配。
    3. 重新Archive并上传,验证问题是否解决。

三、关于CFBundleExecutable的定位澄清

  • 它不是“引用”,而是系统识别可执行文件的唯一元数据依据:App加载时,系统会严格按照该键的值在Bundle根目录查找可执行文件,二者必须完全对应,否则会触发加载或验证失败。
  • 官方文档描述模糊确实容易误导,但核心逻辑就是:该键的值必须等于App Bundle内主可执行文件的实际文件名,无任何容错空间。

内容的提问来源于stack exchange,提问作者Andreas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:06:27