macOS下加载动态库dylib报code signature invalid错误的解决办法
一、現(xiàn)象描述
? ? ??在macOS上搞開發(fā)也有一段時間了,也積攢了一定的經(jīng)驗。然而,今天在替換工程中的一個動態(tài)庫時還是碰到了一個問題。原來工程中用的是一個靜態(tài)庫,調(diào)試時發(fā)現(xiàn)有問題就把它替換成了動態(tài)庫。這本來沒什么值得一說,可工程編譯完后打包測試時發(fā)現(xiàn),不論怎么搞程序都加載不起來。毫無疑問,這是新替換的動態(tài)庫帶來的問題。
二、解決辦法
? ? ? 于是嘗試打開日志文件看看有什么發(fā)現(xiàn)吧:
? ? ??根據(jù)上面的日志文件提示,動態(tài)庫加載的時候失敗了。原因為:code signature invalid。這就奇了個怪了,以前都沒碰到類似的問題啊。而且這個動態(tài)庫還是從其他工程中拷貝過來的,從來沒有發(fā)現(xiàn)問題啊。既然提示簽名失效,那先使用命令看看簽名狀態(tài)再說:
? ? ? 可以看到,libexpat.1.dylib這個文件的簽名確實是失效了。可能是被修改了或者其他原因而導致的。而libexiv2.14.dylib這個文件則沒有簽名。既然動態(tài)庫的代碼簽名是無效的,那么我們就有了一個大膽的想法,嘗試給動態(tài)庫重新簽名好了:
? ? ??所有相關(guān)的依賴庫都簽好名,重新打包測試,問題果然消失了。不過,為啥在另外一個工程里面使用時完美運行,在這個工程里面時卻報代碼簽名失效,這點倒是沒有想通。
三、參考鏈接
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
轉(zhuǎn)載于:https://www.cnblogs.com/csuftzzk/p/macos_code_signature_invalid.html
總結(jié)
以上是生活随笔為你收集整理的macOS下加载动态库dylib报code signature invalid错误的解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恐龙拼图游戏 - 恐龙拼图乐园积木游戏
- 下一篇: 自动化测试有缺点吗?