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

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,提问作者Данила Никонец

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:24:33