iOS制作一个动态库
2017-05-05 本文已影响198人
践行者_Leng
前言
上篇文章已经介绍了静态库和动态库了,并且也带着制作真机上面的静态库。所以下面就直接上截图和一下描述带着制作真机动态库。上边文章的地址:真机静态库制作
进入主题
打开Xcode,新建一个库,我这里就命名为:DynamicFrameWork 新建之后,截图如下


从上面的截图中可以看到 DynamicFrameWork.h是系统生成的,用来包含对应的需要公开的头文件,而Products文件下的DynamicFrameWork.Framework如果选择的是模拟器的话就是红色的,选择的是手机的话就会变成黑色,这个后面就是我们需要动态库。
接下来就是 设置动态态库运行的系统要求

设置完之后,现在我将自己需要的两个实现类 DealWithString 和 NSString+AddNewString 放入到里面,然后在DynamicFrameWork.h头文件中导入刚刚放入的两个类的头文件。

两个实现类中的方法分别如下,方便后面阅读和调用。


接下来我就要设置刚刚添加的两个类的头文件公开,直接将Project下的两个头文件添加到Public下面,DynamicFrameWork.h文件是默认在其下面,所以最终的结果如下。

最后,我选中真机,直接Run,运行完之后,直接选中Products文件下的DynamicFrameWork.framework ,然后Show in Finder,这就是我们需要的动态库。


测试使用动态库
将刚刚的动态库拖入到需要的项目中,然后再General(通用)中添加对应的动态库,如下图。

最后导入对应的头文件,调用对应的方法

遇到的问题:

这是由于没有将刚刚的动态库添加到 Embedded Binaries中,在上文中测试使用动态库第一步添加即可。
最后:上面所诉的就是制作Debug(调试)下的真机动态库,如果需要制作Release(发布)下的,只需要通过下面截图将Debug改为Release,运行后生成对应的Release文件,其他步骤和上面一致即可。
