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

iOS签名构建报错:MBProgressHUD框架签名无效(含iXGuard场景)

解决MBProgressHUD结合iXGuard时签名构建报错的问题

以下是针对你遇到的「Debug正常、签名构建时报错Invalid Code Signing. The executable 'Payload/myapp.app/Frameworks/PKHUD.framework' must be signed with the certificate」问题的排查和修复步骤:

1. 核对框架签名配置

  • 先注意报错里的PKHUD.framework,确认是否是MBProgressHUD的别名、或是项目中误引入的依赖。不管是哪个框架,都要保证它的签名配置和主App完全一致:
    • 在Xcode中选中该框架的target,进入Signing & Capabilities面板,把Team、证书、描述文件都改成和主App相同的配置。
    • 如果是CocoaPods集成的,在Podfile里添加post_install脚本统一签名配置:
      post_install do |installer|
        installer.pods_project.targets.each do |target|
          # 替换成你的框架名称,比如MBProgressHUD或PKHUD
          if target.name == 'MBProgressHUD' || target.name == 'PKHUD'
            target.build_configurations.each do |config|
              config.build_settings['CODE_SIGN_IDENTITY'] = 'iPhone Distribution: 你的团队ID'
              config.build_settings['PROVISIONING_PROFILE_SPECIFIER'] = '你的描述文件名称'
            end
          end
        end
      end
      

2. 调整iXGuard的混淆规则

iXGuard的混淆操作可能会破坏框架的签名信息,需要在它的配置文件(比如ixguard.yml)里排除目标框架:

exclusions:
  - "Frameworks/MBProgressHUD.framework/**"
  - "Frameworks/PKHUD.framework/**" # 如果确实存在这个框架的话

同时检查项目的构建脚本,确保iXGuard处理时没有跳过对第三方框架的签名步骤。

3. 确认框架嵌入设置

  • 进入主App target的Build Phases,找到Embed Frameworks阶段,确认MBProgressHUD(或PKHUD)在列表中,并且**Code Sign On Copy选项已勾选**。这个选项会在嵌入框架时自动完成签名,避免手动签名遗漏。
  • 清理项目缓存:删除Derived Data,执行Cmd+Shift+K清理构建目录,然后重新编译。

4. 排查依赖冗余

如果项目中同时存在MBProgressHUD和PKHUD,可能会导致依赖冲突或签名混乱。检查Podfile、项目的Frameworks目录,移除不必要的重复框架,只保留你实际使用的MBProgressHUD,再重新构建测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:24:28