Git/.a静态库的介绍:创建和使用


一、 创建.a静态库
1. 选择Cocoa Touch Static Library 一栏:
2. 编译
编译时时先用真机编译一次,.a文件的颜色就会从红色变为黑色;
默认编译后(真机/模拟器分别运行)只会输出自带的.h, 不会输出新建类的.h;
需要手动做修改“选择项目--> Build Phases --> Copy file --> 添加.h”。

二、 测试.a静态库
1.模拟器的架构问题:
    1> 常见报错:
     Undefined symbols for architecture arm64 / i386 /armv7s/ armv7
    //architecture: 架构
    解决方式:
     检查静态库的架构问题,看看是否模拟器和真机导入错误。
  2> 模拟器和真机的架构
    模拟器:2种架构
    i386      : 4S ~ 5    -->  32
    x86_64    : 5S ~ 6s   -->  64
    真机: 3种架构
    armv7     : 4 ~ 4s
    armv7s    : 5 ~ 5c
    arm64     : 5S ~ 6s
模拟器编译时默认只输出一种架构;
真机(不要插入iPhone),默认输出多种架构, 除了armv7s;
//201410月的某个版本更新中, 取消了armv7s为默认输出选项
//架构是支持低版本兼容,即向低版本兼容。
2. 查看静态库支持的架构
    cd到静态库目录下
    查看架构: lipo -info lib.a
3. 架构的合成
方式一: 命令行, 两两合并
(真机不插iPhone, 默认已经多个架构 --> 模拟器合成一次, 再跟真机合成一次就行了)
lipo -create 静态库1.a 静态库2.a -output 新静态库.a
方式二: 更改编译参数
点击库文件 --> Target --> Build Setting --> 只编译当前架构选项改为NO
修改参数之后,
如果是模拟器编译, 则直接编译成2个版本之和;
但是如果是真机编译,依然只是编译成2个版本之和;
并且,最后两者还需要合并一次。

4. 合成静态库的优缺点
如果合成:比如友盟
优点: 调试方便   
缺点: 体积大
如果不合成:比如百度2.8.1版本
优点:减少文件体积 
缺点:真机和模拟器切换调试非常不方便
如何打包出armv7s架构 ?
可以进入Build Setting --> 手动添加三个架构, 然后编译即可。
5. ReleaseDebug模式的区别
Debug:  
调试状态NSLog 拥有丰富的调试代码, 但用户不需要加载这些代码
Release:
发布状态系统会在打包时取出一些调试代码, 文件体积变小, 运行速度变快(用户不会感受到明显的感觉)
最好发布Release版本。
三、 添加资源文件
1. 将文件夹后缀改为.bundle即可生成bundle资源文件夹。
2. 资源文件(如图片)一定要放到bundle文件夹下, 保证路径加载是唯一的资源. 否则可能会跟项目里的同名文件发生冲突, 导致文件加载出错
3.生成静态库的.m文件中使用到资源文件时,要加资源文件的路径,如@“Lib.bundle/pig.png”,如下两种方法都可。
四、边开发边调试.a静态库
1. 创建普通的项目;
2. 添加项目Target, 创建库文件, 并实现相关方法;
3. 在项目中手动导入.a文件  (重要);
4. 此时.a是通用文件, 什么架构都可以使用.
5. 如果想导出静态库文件, 那么切换Target, 按照之前所学输出即可,需要注意下图所示的地方.
此外,开发阶段都是默认生成debug库文件,如果要生成release发布版本的库文件,按下图所示操作:

结果展示:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值