美文网首页ios-面试
iOS--macOS引用dylib(补充)

iOS--macOS引用dylib(补充)

作者: 简鱼7819 | 来源:发表于2020-05-19 17:12 被阅读0次

    制作了一个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以后的版本做法

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

    相关文章

      网友评论

        本文标题:iOS--macOS引用dylib(补充)

        本文链接:https://www.haomeiwen.com/subject/vzrbohtx.html