Xcode 8 创建framework静态库(SDK)

来源:互联网 发布:红蜘蛛软件多少钱 编辑:程序博客网 时间:2024/05/21 11:30

iOS开发中我们常会使用第三方的SDK(即静态库),那么如何开发SDK 呢?

在iOS开发中库分为静态库和动态库两种:

1.静态库有.a 和 .framework两种形式;

2.动态库有.tbd 和 .framework两种形式,.tbd形式原来为.dylib。

静态库和动态库是相对编译时和运行时进行区别的:

1、静态库在程序编译时会被链接到目标代码中,同一个静态库在不同程序中使用时,每一个程序中都需要导入一次,打包时也被打包进去;

2、动态库在程序程序运行时才被载入,动态库在打包时并没有被打包进去,只有在程序运行时,才链接载入(如UIKit、Foundation等),但是苹果不让使用自己的动态库,否则审核就无法通过。

Xcode 8创建framework静态库

1.新建一个Cocoa touch Framework 项目,如图1:

图1 新建Cocoa touch Framework 项目


2.新建要封装的代码,如图2:


图2 新建代码


3.更改Build Setting 和 Build Phases

Build Setting -> Dead Code Stripping 改为NO

Build Setting -> Mach-O Type改为 Static Library

Build Setting -> Build ActiveArchitecture Only 改为 NO

Build Setting -> Architectures 添加armv7s架构

Build Phases -> Headers 将公开的头文件从Project中拖入Public

4.生成framework

选择编译选项 Generic iOS Device 生成真机可用的静态库

选择编译选项 任意模拟器(iPhone 6s)生成模拟器可用的静态库

5.合并framework

在终端输入以下格式的命令:

lipo -create /Users/XXX/Library/Developer/Xcode/DerivedData/CreateSDK-bpdigdmzwfjyblaqbiztvlkqpnpl/Build/Products/Debug-iphoneos/CreateSDK.framework/CreateSDK/Users/XXX/Library/Developer/Xcode/DerivedData/CreateSDK-bpdigdmzwfjyblaqbiztvlkqpnpl/Build/Products/Debug-iphonesimulator/CreateSDK.framework/CreateSDK-output /Users/XXX/Desktop/CreateSDK.framework/CreateSDK


经过以上步骤,既可以生成.framework形式的静态库。