iOS--macOS引用dylib(补充)

制作了一个dylib,给他人使用!

一、步骤和正常的ios引用第三方静态库.a基本一致

1,导入dylib和对应的.h头文件

2,确定build phases和General引入了该动态库

3,在对应的需要的dylib的文件中引用头文件,调用方法


二、需要注意点

1,dylib打出来的包,有个默认执行路径,通常是放在/usr/local/lib文件夹中

2,也就是说如果你修改该执行路径,引用该dylib的APP回去/usr/local/lib中寻找该dylib,如果没有会报错,编译失败。

dylib:/usr/local/lib.xxx.dylib not found

这种情况下用两种处置方法,一种最笨的就是手动将引用的dylib导入/usr/local/lib文件夹中

另外一种则是:修改dylib的执行路径,执行命令行

otool -L xx/xxx/xx.dylib 

查看当前dylib的执行路径

install_name_tool -id your_changed_filepath xx/xxx/xx.dylib

命令修改dylib执行路径

其中your_changed_filepath你要修改的路径,确定该dylib会放置在该路径下

xx/xxx/xx.dylib表示你当前要修改执行路径的动态库

注:执行完后,可以用otool -L 查看一下是否真正修改

your_changed_filepath最好选用相对路径,因为绝对路径可能仅在你的电脑上能够使用。

3,在导入dylib后,设置完路径。如果是相对路径@executable_path/../Frameworks/xxx.dylib那么就要在General的Frameworks,Libraries,and Embedded Content中Embed修改一下设置

默认的Embed是Do Not Embed,要修改成Embed With Signing或者Embed Without Signing

这是Xcode的11.0以后的版本做法

遇到、解决、记录、分享~~~

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