mac下直接替换应用包内的dylib时, 报错的问题

1,052 阅读1分钟

签名验证失败

记录一下, 将自己编译的dylib替换到应用包目录下的Framwork时, 因签名验证关系而导致的应用无法启动的问题. 报错如下图:

f6bc0fc9-17f8-4be5-94d8-3e7c24788581.png 解决方法:

  • 在macOS恢复模式下, 关闭系统的签名验证SIP功能.
    • 进入恢复模式的方法如下:
      1. M1苹果芯片的电脑: 关机, 按住电源键不松手, 会进入恢复模式
      2. Intel芯片的电脑: 关机, 按住command+R, 会进入恢复模式
    • 进入恢复模式后, 在左上角的实用工具中打开终端输入 csrutil disable 然后根据指示输入用户密码即可.(若要开启则输入 csrutil enable 即可, 输入scrutil status 查看当前状态)
    • 重启电脑

dylib版本过低

还有可能遇到自己编译的库版本太低, 不符合应用的要求问题.

解决方法: 在xcode中的Build Settings中, 调整Compatibility VersionCurrnt Library Version选项高于所需版本即可.