在iOS的开发过程中,我们常常用到第三方的库。比如支付、地图、广告等。
那么,如何制作自己的库文件呢?
如何将自己写的功能类编译成库文件,分发给其他人来使用呢并做成通用库里?
iOS开发一年多来没有制作过,刚换了公司入职两天就叫打包自己的库给别的公司用,搞的我是无下手,特此笔记一下!
一)先讲讲编译静态库

编译静态库的好处也还是有的!
1.让自己的源码不被直接暴漏。
2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。
3.显得也比源码拷贝高端、大气一些。
 
哪就别bb了直接上开发步骤
1.新建静态库工程,选择Framework & Library  -->NEXT-->(命名为)MyFirstStaticLibrary
 
 

2.删除自动生成的MyFirstStaticLibrary.h和MyFirstStaticLibrary.m(因为是打包别人的类,不需要这两个文件,如果是自己制作就没必要删除了),在 自己需要打包下载工程,将XXXX.h和XXX.m拷贝到这个工程之中;

3注意,因为iOS模拟器是基于Mac OS平台X86架构,iOS设备都是给予ARM架构,所以给他们提供的静态库也必须对于他们的架构,幸运的是Xcode可以同时编译这两个架构的库;

编译的时候调到iOS Device ,  Product  --> Build;  如果调到其他则不能编译出来静态库

我这是制作自己的库久不删除了

选择如下模式变色

编译成功后就会出来

选择.a文件Show in Finder出来如下

这就是Debug下的真机调试静态库我们可以通过终端看下他的信息

打开终端进入他的目录:输入cd 空格吧.a文件网里图删掉libMyFirstStaticLibray.a(你自己的库名)如下图

然后输入ls  lipo -info ibMyFirstStaticLibray.a

调整运行设备为模拟器如下图:

运行编译后多出了模拟器的的包(模拟器下运行)

我们看下他的信息 在终端输入cd Users/ilink/Library/Developer/Xcode/DerivedData/MyFirstStaticLibrary-ezlqqdeuksbkiseqmiefxzbefdah/Build/Products/Debug-iphonesimulator
(Debug-iphonesimulator文件往终端拖就能得到)输入lipo -info libMyFirstStaticLibrary.a

我们一般都要想模拟器和真机都能用也就是说要并包

并包通过终端来做cd ..回到上级目录然后ls

再输入lipo -create Debug-iphonesimulator/libMyFirstStaticLibrary.a Debug-iphoneos/libMyFirstStaticLibrary.a -output libMyFirstStaticLibrary.a进行并包

然后可以看到

和debug-iphone同级的目录出来.a文件改文件就是目标文件

我们在终端下看下他的信息lipo -info libMyFirstStaticLibrary.a

可以看出他上两者的结合方法好虽好,但会牺牲空间,文件会变大

下面测试一下可以用不新建工程倒入.a和include文件

使用一下

控制台打印如下

到此完成

 

最新文章

  1. iOS:GCD理解1(同步-异步、串行-并行)
  2. 关于启用 HTTPS 的一些经验分享(二)
  3. ajax登陆提示
  4. Echarts-画叠加柱状图,双折线图
  5. R语言与数据分析
  6. require.async换这个方法的transport问题
  7. 在汇编代码中调用C函数
  8. 发现个div float的小秘密
  9. 史上最全!信息安全入门指南<转>
  10. JavaWeb学习----JSP简介及入门(JSP结构及JSP处理)
  11. JQuery 事件及案例
  12. SGI STL内存配置器存在内存泄漏吗?
  13. DriverStudio 和 WDF驱动 通过GUID获取设备句柄的差别
  14. handsontable 属性汇总
  15. ECC公钥格式详解
  16. JAVA面向对象-----接口的概述
  17. FPGA学习之旅
  18. OAuth2简易实战(二)-模拟客户端调用
  19. 【Mac使用系列】常用软件及快捷键
  20. (转)使用 CJSON 在C语言中进行 JSON 的创建和解析的实例讲解

热门文章

  1. ADO 读取 ACCESS
  2. SQLite数据库
  3. python之路1(初识python)
  4. Repeater多列分别合并单元格
  5. AFNetworking的POST上传
  6. css Animation初体验
  7. IOS开发之GCD---dispatch_semaphore
  8. 在eclipse中用gradle搭建MapReduce项目
  9. 为大型网站提速—redis
  10. nginx 启动、重启、关闭