IOS打包动态库以及使用的过程和注意事项

创建IOS动态库其实也并非什么难事,因为目前最新版本的Xcode已经支持创建动态库了。
所谓的动态库就是将一些可以在多个项目中用到的公用代码可以放到同一个工程里边,然后打成一个包,这个包的后缀是framework,这个文件可以引用到多个项目中使用,因为它是一个独立的代码库,也可称为第三方库,相信大家之前也用过其他第三方一些SDK什么的,这个和那些一样的用法,下面介绍一下如何创建动态库的工程:

1. 首先打开Xcode,通过新建如图,创建动态库工程,创建工程的过程和其他工程没有太大区别,这里不进行赘述。

2. 创建好工程之后,就可以就行编码了。

当然了如果用到了一些资源文件比如图片或者其他,这种情况就需要把这些资源放入一个自定义bundle文件里,然后通过代码的方式对资源进行读取,不过一定要注意在其他项目引用这个framework的时候一定要在相应项目中引入framework所需要的bundle文件。

3. 接下来就是打包framework的过程了。

其实非常简单,首先要做的就是要对工程进行编译(Build),build完成之后会在Products下会看到xxx.framework,当然动态包也包含debug的包也包含release的包,这个只需要设置scheme下的设置,需要注意的是在编译的时候需要将编译对应的设备设置成真机这样framework包才会生成。在编译完成以后可以在products目录下下找到xxx.framework,然后这个framework就是我们所需要的动态库了,如果需要真机和模拟器一起可以使用farmework包那么就应该要去将真机包和模拟器包使用命令行合到一起,命令格式为lipo -create dic/xxx.framework/xxx dic2/xxx.framework/xxx -output xxx,其中dic和dic2代表生成framework的两个目录,一个是iphones一个是iphonesimulator,而xxx.framework其实就是我们在build过后生成的framework包了,最后output后边的xxx 其实就是最后合成生成的文件,最后将文件覆盖到iphones里边,就会替换原有的xxx文件,具体目录结构如图

上图红色箭头所指部分为生成合成文件将要覆盖的文件,覆盖完成后可以直接将Release-iphones里边将framework文件拿来直接用了,可以用于真机和模拟器的framework动态包就出世了。

4. 用法和其他framework用法完全一致,注意事项就是在引用生成的framework的同时需要在工程中引入生成的framework的相关其他引用即系统以及第三方的framework的引入以及静态库的引入,还有一个设置是在other linker flags下设置-ObjC,整个过程就是这样。

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x