在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文件

使用一下

控制台打印如下

到此完成

 

iOS生成静态库方法的更多相关文章

  1. IOS 生成静态库文件(.framework)

    http://blog.csdn.net/zwl492454828/article/details/55095422

  2. IOS 生成静态库文件(.a文件)

    http://www.cnblogs.com/lyy-5518/p/5459643.html

  3. 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩

    抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...

  4. Xcode 生成静态库相关设置:

    Xcode 生成静态库相关设置: #Build Setting1. Architectures ------- Architectures -----> $(ARCHS_STANDARD) -- ...

  5. 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库

      最近在编写的一个Apache  kafka 的C/C++客户端,,在看他写的 example中,他的编译是用librdkafka++.a和librdkafka.a    静态库编译的,,,而我们这 ...

  6. [转]Linux下用gcc/g++生成静态库和动态库(Z)

    Linux下用gcc/g++生成静态库和动态库(Z) 2012-07-24 16:45:10|  分类: linux |  标签:链接库  linux  g++  gcc  |举报|字号 订阅     ...

  7. xcode6制作IOS .a静态库小记

    xcode6制作IOS .a静态库小记 创建iOS静态库 简单写个打印的代码 编码完成之后,直接Run就能成功生成.a文件了,选择 xCode->Window->Organizer-> ...

  8. iOS基础 - 静态库

    一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系 ...

  9. Ubuntu下通过makefile生成静态库和动态库简单实例

    本文转自http://blog.csdn.net/fengbingchun/article/details/17994489 Ubuntu环境:14.04 首先创建一个test_makefile_gc ...

随机推荐

  1. async和await

    总结下博客园中看到的async和await public static class TaskAsyncHelper { /// <summary> /// 将一个方法function异步运 ...

  2. javascript各种宽高

    参考: http://www.w3cschool.cc/jsref/dom-obj-all.html http://www.cnblogs.com/wen12128/archive/2012/05/2 ...

  3. 补发SQL。(实用语句!!)

    设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...

  4. 基于东北F4的设计模式情景剧——第一幕 装饰模式(Decorator Pattern)

    第一场 难题未解 布景:铁岭,晴天,午后,风.在一幢还算气派的写字楼的三层外墙上,挂着一条红色横幅,上面用歪歪扭扭的毛笔字写着"东北F4软件外包工作室".大风中,那早已褪色的条幅剧 ...

  5. org.eclipse.swt.custom.StyledText.getScrollbarsMode()I

    错误: org.eclipse.swt.custom.StyledText.getScrollbarsMode()I 解决方法: 1 卸载,并手工清除myeclipse全部文件 2 重新安装myecl ...

  6. Xcode 7免证书真机调试

    在Xcode 7中,苹果改变了自己在许可权限上的策略,此前Xcode只开放给注册开发者下载,但Xcode 7改变了这种惯有的做法,无需注册开发者账号,仅使用普通的Apple ID就能下载和上手体验.此 ...

  7. php : 基础(1)

    php基本语法形式 1.php的标记符 有以下形式: 形式1(推荐): <?php 这里要写符合php语法的语句 ?> 形式2: <script language="php ...

  8. validate插件深入学习-03validate()方法配置项

    validate()方法配置项 rules 定义校验规则 messages 定义提示信息 上面这两个已经介绍过了 rules里隐藏的属性depends,只有符合条件(返回true)的时候才会执行 su ...

  9. Markdown学习和插件介绍

    markdown能干啥 亲们github上的项目首页的 内容+样式,都是项目中README.md文件控制的.将md风格的代码,转化成html. 而且markdown语法非常简单,5-10分钟即可学会! ...

  10. My Sql 中要Alter Table的同学请注意!!!

    首先我建议你在对MySQL表做DDL操作时: 1 执行 show processlist 查看,要操作的表(数据库对象)是否处于锁状态 if("未锁定") { 执行DDL语句 }e ...