iOS 生成静态库.a文件教程

做iOS开发的同学们都知道,我们在开发的过程中经常用到一些第三方的库,我们可以调用,但是看不见他们的源码。
有时我们不想别人看见我们的源码,也需要生成静态库,那怎么生成呢?有些朋友想把plist也放到静态库中,发现不行:plist文件是资源文件,无法打进.a中。还是那句话,无论是 .a 静态库还是 .framework 静态库,最终需要的都是:二进制文件 + .h + 其它资源文件。

所以解决办法是:将plist文件进行加密,解密来读取,这样你的plist文件内容别人就看不到了。详解请看文章:http://blog.csdn.net/jiadabin/article/details/51841354

那么,如何制作自己的库文件呢?

如果,将自己写的功能类编译成库文件,分发给其他人来使用呢?

静态库的优点

编译静态库的好处也还是有的!

1.让自己的源码不被直接暴漏。

2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。

3.显得也比源码拷贝高端、大气一些。

首先,我们要创建一个CoCoa Touch Static Library工程

这样我们就会得到一个.h和.m文件,我在.h文件声明两个方法(加密,解密),还要在.m文件写它们的实现方法。

你可以不用这自动生成的文件,可以把你写好的类文件直接拖过来,但要记得勾选相应的条件,如图:


类文件(.h和.m)写好有这样我们就可以进行编译了 (记得用模拟器和真机分别编译一次)

选择真机设备,然后 Command+B 编译, libMJRefresh.a 文件从红色变为黑色


选择模拟器,依然 Command+B ,模拟器和真机环境下用的 .a 文件是分开的


右击 “Show In Finder” ,查看制作好的 .a 文件


在它的上一级目录中我们可以看见Debug-iphoneosDebug-iphonesimulator两个文件,如图:
如果你的工程是release模式,文件名为:Release-iphoneosRelease-iphonesimulator

Debug-iphoneos:应用于真机的静态库文件。
Debug-iphonesimulator:应用于模拟器调试的静态库文件。

  • Debug-iphoneos 文件夹里面的东西是用在真机上的

  • Debug-iphonesimulator 文件夹里面的东西是用在模拟器上的

  • 如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头

也许你发现你文件夹下边没有发现RELEASE开头的文件夹,是因为你编译环境设置的是debug的,设置release步骤还是上图吧:


在同上边编译一下即可。

.a 文件的体积(一般情况下)

  • 真机用的 .a > 模拟器用的 .a

  • 所合成 .a == 真机用的 .a + 模拟器用的 .a

通过 lipo –info libMJRefresh.a 可以查看 .a 的类型(模拟器还是真机)

现在我们就可以用了 ,但是现在模拟器和真机编译的.a文件是分开的,我们在不同的环境上使用.a文件,需要导入不同的.a文件,比较麻烦,我们可以把它们进行合并成一个文件来使用。(只是体积会变大)
在终端输入合并命令: lipo -create/路径/Debug-iphoneos/libStaticLibrary.a /路径/Debug-iphonesimulator/libStaticLibrary.a -output
/Users/。。。。/Desktop/libStaticLibraryFile.a

合成完成了,就可以使用了。
把.h文件和合成的.a文件放入你的工程中测试一下吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值