Xcode14.3.1上传App Store Connect遇主可执行文件签名错误求助
解决Xcode 14.3.1上传App Store Connect的签名与Bundle验证问题
一、主可执行文件“未正确签名”(非ASCII文件名场景)
- 检查签名配置一致性:
- 打开项目Build Settings,搜索
CODE_SIGN_IDENTITY和PROVISIONING_PROFILE_SPECIFIER,确认二者对应发布用的证书与描述文件,无配置冲突。 - 清理构建缓存:执行
Command+Shift+K清理项目,再用Command+Option+Shift+K清理构建文件夹,重新Archive尝试上传。
- 打开项目Build Settings,搜索
- 修复非ASCII文件名兼容性问题:
Xcode 14.3.x对非ASCII字符的处理存在已知兼容性bug,即便之前正常运行,也可尝试:- 直接修改Target的
Product Name为纯ASCII字符(在Build Settings中找到该选项,替换为无特殊字符的名称)。 - 强制指定
EXECUTABLE_NAME为纯ASCII值:在Build Settings中搜索EXECUTABLE_NAME,将默认的$(PRODUCT_NAME:c99extidentifier)替换为手动设置的纯ASCII文件名,确保可执行文件生成时使用该名称。
- 直接修改Target的
二、修改CFBundleExecutable导致“未找到.app bundle”的解决方法
CFBundleExecutable的核心作用:它是Bundle元数据的可信源,系统通过该键的值定位App Bundle内的主可执行文件,必须与实际文件名完全一致(包括大小写、字符)。- 错误根源:你硬编码的ASCII值与实际生成的可执行文件名不匹配,导致系统无法定位可执行文件,触发包验证失败。
- 正确修改步骤:
- 完成Archive后,找到生成的.xcarchive文件,右键选择「显示包内容」,进入
Products/Applications/你的App.app目录,确认内部主可执行文件的真实文件名。 - 将Info.plist中的
CFBundleExecutable值硬编码为该真实文件名,确保完全匹配。 - 重新Archive并上传,验证问题是否解决。
- 完成Archive后,找到生成的.xcarchive文件,右键选择「显示包内容」,进入
三、关于CFBundleExecutable的定位澄清
- 它不是“引用”,而是系统识别可执行文件的唯一元数据依据:App加载时,系统会严格按照该键的值在Bundle根目录查找可执行文件,二者必须完全对应,否则会触发加载或验证失败。
- 官方文档描述模糊确实容易误导,但核心逻辑就是:该键的值必须等于App Bundle内主可执行文件的实际文件名,无任何容错空间。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

