ios-MacOS製作使用dylib

今天接到一個新需求,需要製作一個MacOS端的動態庫dylib。

一番查找資料,終於摸索出一條成功的路徑。

1,製作動態庫dylib

project下面,如此選擇。

Type要選擇Dynamic,也就是動態庫

然後就是我常遇到的,創建自己工具類,然後寫一些方法函數。

這個工程創建完,工程目錄下默認有個Products,寫完你的方法就Command + B,如果你寫的方法沒有什麼語法問題,就可以成功生成一個dylib。


2,使用dylib

每一個dylib生成出來都是有自己的路徑的,一般默認/user/local/xxx.dylib。如果你直接將生成的dylib導入你需要的應用工程下,然後再導入頭文件.h,在運行時是會報錯的。

dyld: Library not loaded: 

這個時候就需要你去修改dylib中的路徑,也叫id

install_name_tool -id some_path/libxdDevsdk.dylib some_path/libxdDevsdk.dylib 

其中這個some_path可以是絕對路徑,也可以是相對路徑。如果是在工程內部使用的,寫成絕對路徑也可以,不過如果是多人協作的工程,這一塊建議寫成相對路徑的。

在做完改ID,再次編譯工程,還會繼續報錯。

dyld: Library not loaded: /usr/local/xxxx.dylib

......

Reason: no suitable image found. Did find:

這個是屬於你打包生成的dylib需要簽名。

那麼你就需要對你的dylib進行簽名,簽名命令

codesign -f -s "Mac Developer: 你的開發者郵箱" xxx.dylib

另外有一個特點的是,如果你的Mac應用工程,沒有用到Hardened Runtime中的服務,你可以刪除該服務。如果刪除了該服務,你的dylib就不再需要簽名(親測有效!


參考資料

https://blog.csdn.net/ReadyShowShow/article/details/102547633

https://www.jianshu.com/p/d7a0ccc6a7e6


遇到~解決~分享!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章