• 打包和调试静态库(1)


       我们在导入友盟,地图,支付等等的SDK时,经常会看到xxx.a或者xxx.framework,这个就是静态库了。

       首先,什么是静态库。通俗一点讲呢,就是你要用别人写好的代码,但是人家不想让你知道具体是怎么实现的,就可以打成静态包,只暴露一个.h接口供你使用。当然静态库还有别的作用,比如你的工程中要用到大量的MRC,你又不能一个个手动把release等去掉,那怎么办呢?解决起来很简单,把用到的MRC文件打成静态包就搞定了!

       这里插一句,动态库与静态库是相对应的,我们在工程中经常会导入xxx.dylib(ios9之后就是xxx.tbd了,其实是一样的,只是苹果任性,改了个后缀,好在,原先的xxx.dylib运行也正常)和.xxx.framework(framework既可以是静态库,也可以是动态库),导入的就是是动态库。

       好了,现在正式开始打包!

       1.我们正常创建一个项目,然后(看下图)

          

          

        2.生成完后,你就能在你的工程里看到如下图

          

        3.现在你就可以在你的StaticDemo.h和.m中添加方法和实现了,注意对外暴露的方法都定义成类方法,如下图:

          

        4.注意 这个时候要选择如下图,然后分别选择真机和模拟器,分别Commond+B一下

          

        5.这个时候你就会看到  静态库libStaticDemo.a  由红变黑,说明已经生成动态库成功了!

          

        6.右击libStaticDemo.a-->show in finder,你会看到如下两个文件(iphoneos是真机,iphonesimulator是模拟器,真机情况下只能用真机的静态库,模拟器情况下只能用模拟器的静态库,否则会报错,有方法可以避免,后面讲)

          

        7.当然,只用这个静态库,你看不到里面的方法还是白搭,所以,点开include,你会看到.h文件

          这个时候你自己最好重新新建一个文件夹"lib",将.a和.h文件都放在同一个文件夹下,如果你的静态库里用到了类似图片的资源,那么就建立一个bundle文件夹,将用到的资源统一放在这个文件夹下,再将这个文件夹拖到文件夹"lib"下。

          

        8.这样,一个静态库就算搞定了,你用到静态库的时候,就把lib文件夹拖到你的工程里就OK了。

        当然,还有许多其他要注意的点,考虑到篇幅,我就放在下一篇继续讲了。

        

  • 相关阅读:
    a==null和a.equals("null")的区别
    PHP_EOL换行符
    mysql 重启
    异或的用法
    so easy(并查集+unordered_map)
    牛客练习赛51 C 勾股定理
    Period II
    Simpsons’ Hidden Talents
    POJ-1961 Period
    poj-2406 Power Strings
  • 原文地址:https://www.cnblogs.com/xinjydeshow/p/5314315.html
Copyright © 2020-2023  润新知