XCode 动态库未签名的问题(解决)

报错:

code signature in (*.dylib) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.

安装错误提示,需要对dylib进行签名。

签名步骤:

  1. 复制证书名称(Mac Development)
    先打开keychain Access.app (中文名是:钥匙串访问),选择 我的证书,复制证书名称。
  2. 签名命令如下
codesign -f -s "上一步复制的签名" xxx.dylib
  1. 为了避免逐个签名,可以直接将系统的全部dylib都进行签名:
codesign -f -s "上一步复制的签名" /usr/local/opt/*/lib/*.dylib

该命令将目录/usr/local/opt下的全面dylib都进行了签名,也就是说,XCode编译代码时依赖的系统库,全部都被签名了。如果你还依赖了别的动态库,需要再单独进行签名。

  1. 关于签名的其他命令操作:
  • 清除动态库的签名:
codesign --remove-signature xxx.dylib
  • 查看签名:
codesign -v xxx.dylib
  • 重新签名:
    codesign的-f参数就是强制签名的意思,本文使用的codesign -f -s就能直接重新签名。如果不想覆盖原来的签名,可以把-f参数去掉。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容