一、现象描述

在macOS上搞开发也有一段时间了,也积攒了一定的经验。然而,今天在替换工程中的一个动态库时还是碰到了一个问题。原来工程中用的是一个静态库,调试时发现有问题就把它替换成了动态库。这本来没什么值得一说,可工程编译完后打包测试时发现,不论怎么搞程序都加载不起来。毫无疑问,这是新替换的动态库带来的问题。

二、解决办法

于是尝试打开日志文件看看有什么发现吧:

根据上面的日志文件提示,动态库加载的时候失败了。原因为:code signature invalid。这就奇了个怪了,以前都没碰到类似的问题啊。而且这个动态库还是从其他工程中拷贝过来的,从来没有发现问题啊。既然提示签名失效,那先使用命令看看签名状态再说:

可以看到,libexpat.1.dylib这个文件的签名确实是失效了。可能是被修改了或者其他原因而导致的。而libexiv2.14.dylib这个文件则没有签名。既然动态库的代码签名是无效的,那么我们就有了一个大胆的想法,尝试给动态库重新签名好了:

所有相关的依赖库都签好名,重新打包测试,问题果然消失了。不过,为啥在另外一个工程里面使用时完美运行,在这个工程里面时却报代码签名失效,这点倒是没有想通。

三、参考链接

1. https://forum.unity3d.com/threads/invalid-signature-for-submitted-mac-app.120263/

2. https://github.com/XVimProject/XVim/issues/971

3. https://knowledge.autodesk.com/search-result/caas/sfdcarticles/sfdcarticles/Code-signature-invalid-error-when-launching-product-on-OS-X.html

转载于:https://www.cnblogs.com/csuftzzk/p/macos_code_signature_invalid.html

macOS下加载动态库dylib报code signature invalid错误的解决办法相关推荐

  1. tableview动态修改和删除_Ubuntu加载动态库失败的解决方案

    在ubuntu下代码编译通过的情况下,经常出现运行时加载动态库出错的情况.这些问题很琐碎,不具备任何技术含量,纯属耽误时间,这也是linux系统的通病,花里胡哨,故弄玄虚. 为了减少初学者在这种无意义 ...

  2. Linux系统程序运行时加载动态库路径顺序

    程序运行时加载动态库路径顺序(Linux) 在linux系统中,如果程序需要加载动态库,它会按照一定的顺序(优先级)去查找: 链接时路径(Link-time path)和运行时路径(Run-time ...

  3. php无法加载dll插件,php无法加载动态库怎么办

    php无法加载动态库的解决办法:1.将PHP的集成包里的"libmySQL.dll"复制到system32目录下:2.将PHP的解压目录添加到PATH里:3.在Apache的配置文 ...

  4. 使用Poco实现插件方式加载动态库

    动态库封装虚基类 //AbstractPlugin.h #ifndef __ABSTRACTPLUGIN_H__ #define __ABSTRACTPLUGIN_H__#include <st ...

  5. sunPKCS11加载动态库(转)

    sunPKCS11加载动态库(转) http://www.cnblogs.com/sunfb/archive/2013/03/01/2938491.html 这篇文章不介绍具体的编程方法,而是针对PK ...

  6. linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...

    今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...

  7. 加载动态库失败(loadLibrary返回为空)的几种解决办法

    如果遇到了以下几种问题,也许可以在本文找到解决方法: 一.版本更新后,原本正常的功能突然无法使用了: 二.VS编译的时候,弹出"xxx(win32):已加载"xx.dll" ...

  8. LoadLibrary加载动态库失败

    [1]LoadLibrary加载动态库失败的可能原因以及解决方案: (1)dll动态库文件路径不对.此场景细分为以下几种情况: 1.1 文件路径的确错误.比如:本来欲加载的是A文件夹下的动态库a.dl ...

  9. linux加载动态库问题

    当我们在linux系统引用动态库时,经常会遇到一个问题,加入我们需要的动态库没有在系统的默认目录下,我们编译时使用-L指定了动态库的路径,编译时没有问题,但是执行调用该动态库的可执行文件时,却提示找不 ...

最新文章

  1. 基于 Opencv 实现眼睛控制鼠标
  2. IDC公布2017年亚太地区数据中心10大预测
  3. 软件测试中英文词汇汇总
  4. mysql 表 类型_mysql表类型
  5. 支持串行隔离级别_从0到1理解数据库事务(上):并发问题与隔离级别
  6. Python处理文本文件案例一则
  7. php java node 并发,Node、PHP、Java 和 Go 服务端 I/O 性能PK
  8. 重庆邮电大学c语言实验报告,重庆邮电大学c语言上机实验期末实验报告.doc
  9. 服务器2008系统提权工具,提权教程:winserver2008R2溢出提权
  10. QT_T04-COOD
  11. vmware如何安装spoonwep2
  12. GTP协议循序渐进(三)----通过实例了解TEID
  13. snipaste滚动截图方法_【软件工具】超强干货|不同级别的截图工具,快来按需领取吧...
  14. python开启一个简单的服务器
  15. 实现lightbox效果
  16. php表单提交并发送邮件给某个邮箱(示例源码)
  17. Unity 性能优化之合批
  18. 【字节跳动】2019后端笔试题
  19. Zero Knowledge Proof 解密 QAP
  20. 从未在一起更让人遗憾_从未在一起和在一起后分开,哪个更遗憾?

热门文章

  1. 交换排序 —— 快速排序
  2. Java:网络编程之UDP的使用
  3. Python中纠结处之其一—— 静态方法、类方法
  4. 【Win 10 应用开发】UI Composition 札记(二):基本构件
  5. 一个简单粗暴的爬虫 - 必应今日美图
  6. IdentityServer4 配置负载均衡
  7. 获取本机MSSQL保存凭证
  8. 获取远程文章内容时,显示图片的两种方式
  9. Cannot complete the install because one or more required items could not be found.
  10. HTTP_REFERER的获取情况