美文网首页ios-面试
ios-MacOS制作使用dylib

ios-MacOS制作使用dylib

作者: 简鱼7819 | 来源:发表于2020-02-24 16:14 被阅读0次

    今天接到一个新需求,需要制作一个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

    遇到~解决~分享!!!

    相关文章

      网友评论

        本文标题:ios-MacOS制作使用dylib

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