macOS下加载动态库dylib报code signature invalid错误的解决办法
一、現象描述
? ? ??在macOS上搞開發也有一段時間了,也積攢了一定的經驗。然而,今天在替換工程中的一個動態庫時還是碰到了一個問題。原來工程中用的是一個靜態庫,調試時發現有問題就把它替換成了動態庫。這本來沒什么值得一說,可工程編譯完后打包測試時發現,不論怎么搞程序都加載不起來。毫無疑問,這是新替換的動態庫帶來的問題。
二、解決辦法
? ? ? 于是嘗試打開日志文件看看有什么發現吧:
? ? ??根據上面的日志文件提示,動態庫加載的時候失敗了。原因為:code signature invalid。這就奇了個怪了,以前都沒碰到類似的問題啊。而且這個動態庫還是從其他工程中拷貝過來的,從來沒有發現問題啊。既然提示簽名失效,那先使用命令看看簽名狀態再說:
? ? ? 可以看到,libexpat.1.dylib這個文件的簽名確實是失效了??赡苁潜恍薷牧嘶蛘咂渌蚨鴮е碌摹6?strong>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错误的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恐龙拼图游戏 - 恐龙拼图乐园积木游戏
- 下一篇: 自动化测试有缺点吗?