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

Flutter集成Unity上传App Store报Invalid Signature签名错误

问题概述

报错信息:Invalid Signature, code object is not signed at all(iOS端)
场景为使用flutter-unity-view-widget插件完成Unity项目到Flutter项目的集成后,应用上传App Store环节触发该报错,常规公开方案无法修复。
触发报错前的操作流程:

  1. 从Unity导出iOS工程,Unity侧未做任何签名相关配置
  2. 在Xcode中执行安装包签名,为Unity导出的相关包设置了与主App完全相同的Bundle Identifier
  3. 直接执行App Store上传操作
    当前开发环境:Unity 2022.1.1f1,Xcode 13.4.1
问题根因

两个核心错误操作触发签名校验失败:

  • 为Unity导出的关联包设置和主App相同的Bundle Identifier不符合iOS签名规则,嵌套框架/模块的Bundle ID必须和主App存在区分
  • Unity 2022.x版本导出的iOS工程默认包含独立的UnityFramework二进制,仅对主App Target签名会漏签该内嵌代码对象,苹果后台上传校验时会识别到未签名的代码块直接驳回。
修复步骤
  • Unity导出前配置修正
    打开Unity工程的iOS Player Settings面板,进入Other Settings -> Identification分类:
    1. 将Bundle Identifier设置为主App ID加后缀的格式,例如主App为com.xxx.yourapp,Unity模块则设置为com.xxx.yourapp.unity,绝对不能和主App ID重复
    2. 勾选自动签名选项,选中对应开发团队后再导出iOS工程
  • Xcode侧签名配置修正
    打开Flutter项目下的ios/Runner.xcworkspace(不要直接打开Unity导出的独立工程,避免构建时配置被覆盖):
    1. 选中主TargetRunner,确认签名团队、Bundle ID和主App原本的上架配置一致,开启自动签名
    2. 找到Pods工程下的UnityFrameworkTarget,Bundle ID填写Unity侧设置的带后缀的ID,签名团队选择和主App一致的团队,开启自动签名,确保证书和描述文件匹配
    3. 进入Build Phases -> Embed Frameworks分类,检查所有嵌入的Unity相关framework,确保Code Sign On Copy选项处于勾选状态
  • 上传前本地校验
    完成Archive打包后先不要直接上传,打开终端进入Archive包对应的Products/Applications目录,执行签名校验命令:
    codesign --verify --deep --strict --verbose=2 Runner.app
    
    命令执行无报错再触发上传流程;如果提示某一二进制未签名,回到Xcode找到对应Target补全签名配置即可。
版本适配注意事项

针对Unity 2022.1.1f1 + Xcode 13.4.1的组合,不要直接修改Unity导出的独立iOS工程的签名配置,所有签名调整统一在Flutter主工程的workspace中完成,避免Flutter执行构建时覆盖手动修改的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:30:54