iOS基础 - 创建framework静态库

  1. 库 .a与.framework区别
  2. 创建framework静态库
  3. CocoaPods发布Framework

前言:静态库的简单介绍

ios静态库分为 .a和.framework;
同样有静态库就有动态库,
动态库在ios中是 .dylib和.framework;
系统提供的.framework都是动态库,
我们自己写的.framework都是静态库(我们提供动态库是不能通过审核的)。

为什么我在项目中选择framework开发,主要因为.a文件必须手动提供对应的.h文件,而framework包括了.h文件和.a文件。

一、新建工程

一般使用工程名就使用库的名称
这里写图片描述
新工程创建完成:
这里写图片描述

二、编写或导入需要打包的资源文件

这里写图片描述

这里写图片描述

三、配置工程

1. 设置公开的头文件

同时把资源文件需要外界访问的.h文件导入到系统推荐的.h中
这里写图片描述

这里写图片描述

2. 设置最低版本

这里写图片描述

这里写图片描述

3. 设置Framework 为静态库

在Build Settings 中搜索 “Mach”,
在出来的结果中,选择Mach-O Type 的值为Dynamic Libray.
这里写图片描述

4. Build配置

一般开发SDK为release版, 用户可才可以添加在工作中用来上架:

这里写图片描述

这里写图片描述

四、真机,模拟器编译

分别选择真机,模拟器 CMD+B进行编译

可以看到红色文件变为黑色
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

右键Products 下的Framework.framework打开可以看到编译生成的Framework:
这里写图片描述

五、查看编译后的可运行架构

可以查看一下,没合并模拟器架构之前包含几个同.a(可跳过此步)(真机包含两个,模拟器包含一个)

使用的命令:

lipo -info "framework路径"

这里写图片描述

模拟器(电脑CPU):
4s~5 : i386(32位)
5s~7plus : x86_64(64位)

真机(iPhone的CPU):
3gs~4s : armv7
5~5c : armv7s (静态库只要支持了armv7,就可以跑在armv7s的架构上)
5s~7plus : arm64

六、合并架构(真机和模拟器)

这里写图片描述

然后可以看到生成的静态库文件:
这里写图片描述

查看生成静态库文件所支持的架构:
这里写图片描述

然后将这个静态库文件替换任意一个编译生成的Framework.farmework里的Framework静态库文件,然后这个Framework.framework就是我们需要的库文件了。

这里写图片描述

注意:合并之后的动态/静态库要与原来的名称一致。不然用的时候编译报错

七、测试生成的Framework.framework库

1.新建工程

创建testFramework工程。

2.拖入刚生成的Framework.framework库

这里写图片描述

这里写图片描述

3.编写测试代码

这里写图片描述

4.运行

这里写图片描述

5.处理输出日志

因为用的是Xcode8, 在输出的日志中有太多的调试信息,
而这些会干扰我们自己的输出,这里设置一下工程去掉这些调试信息:
工程的Edit Scheme -> Run -> Arguments -> Environment Variables :
Name :OS_ACTIVITY_MODE
Value :disable
这里写图片描述

然后再运行一次,就可以看到干净的日志信息了。
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值