Electron应用上传TestFlight不可测试及macOS签名报错咨询
问题根因
该问题不是单纯的macosx平台配置错误,是两类配置问题叠加导致:
- 初始构建提示「not available for testing(不可用于测试)」,确实和Build Platforms字段为空直接相关:macOS端TestFlight要求提交的构建必须明确声明支持平台,字段为空时不会进入可测试版本列表。
- 后续触发的两项资产校验失败,核心原因有两点:一是你填写的平台值
macosx大小写/拼写不符合苹果官方要求;二是CFBundleSupportedPlatforms属于Info.plist专属配置键,你错误将其写入了代码签名entitlements权限文件,同时Electron打包生成的Login Helper内嵌辅助程序没有做符合App Store要求的独立签名配置,连带触发校验报错。
修复操作步骤
- 修正Build Platforms配置
不要使用全小写的macosx,在App Store Connect构建配置、本地打包注入的所有bundle(主应用、Login Helper等内嵌程序)的Info.plist中,将CFBundleSupportedPlatforms值统一设置为MacOSX(严格匹配苹果系统常量的大小写),禁止留空。 - 清理entitlements文件错误配置
打开所有打包用到的签名权限文件(主应用权限、辅助程序权限),彻底删除CFBundleSupportedPlatforms字段——该字段仅允许存在于Info.plist中,出现在签名权限列表里会直接触发苹果的资产校验拦截。 - 补全内嵌辅助程序的签名配置
针对Electron自动生成的Login Helper(默认路径为appName.app/Contents/Library/LoginItems/Login Helper.app),单独配置最小权限的entitlements文件,不要直接继承主应用的权限配置;签名时确保它和主应用使用同一份分发证书、同一个Team ID,签名顺序要先签内嵌辅助程序,再签外层主应用。 - 本地预校验后再上传
打包完成后先在本地执行签名校验命令,确认无问题再上传,避免反复触发校验失败:# 校验代码签名完整性 codesign --verify --deep --strict --verbose=2 /path/to/appName.app # 校验系统执行权限合规性 spctl -a -t exec -vv /path/to/appName.app
如果你使用electron-builder做打包,注意严格区分
extendInfo(用于注入Info.plist键值)和entitlements(用于配置签名权限)两个配置项,不要把Info.plist专属的配置键写到entitlements列表里,这是Electron应用提交macOS App Store/TestFlight时的高频配置错误。
内容的提问来源于stack exchange,提问作者Данила Никонец
相关产品推荐
相关产品推荐

