iOS制作framework

iOS制作framework_第1张图片
framework

在编写 iOS 的 App 时,有很多的功能只需要通过 API (Application Programming Interface) 调用别人已经写好的代码就可以了。
iOS SDK 内置了很多不同功能的 API,如果将这些 API 中相似或类似同一类型问题的 API 包装起来,就成为一个 “framework”。

Xcode 中建立的项目,预先会加载 Foundation,CoreGraphics,UIKit 这3个基本的 framework。

  • Foundation(提供最常用的类和数据类型)
  • UIKit(提供触控为基础的类)
  • CoreGraphics(提供绘图的类)

一、打开Xcode创建工程,选中CocoaTouchFramework

首先新建一个项目,选择Cocoa Touch Framework

iOS制作framework_第2张图片

给它取一个响亮又文雅的名字

iOS制作framework_第3张图片
iOS制作framework_第4张图片

二、在TARGETS下,选中BuildSettings

1、搜索linking项,修改如下
项目 设置 说明
Dead Code Stripping NO 关闭对代码中“dead”,“unreachable”代码过滤
Link With Standard Libraries NO 避免重复链接
Mach-O Type Static Library 用户制作的只能是静态库(系统的framework可以是动态库)
iOS制作framework_第5张图片
2、搜索architectures项,修改如下

针对一些特殊机型的支持,添加armv7s架构。(增加对使用该架构的支持)

iOS制作framework_第6张图片
项目 设置 说明
Build Active Architecture Only NO 编译所有的版本(反之, 只编译当前的architecture版本)
iOS制作framework_第7张图片
iOS制作framework_第8张图片

三、在TARGETS下,选中BuildPhases

1、搜索header项,修改如下

新建MCDefine文件,将公开的头文件拖入Public中,私有的放入Private或Project中,隐藏的头文件就无法再被引用。

iOS制作framework_第9张图片
iOS制作framework_第10张图片

四、MagicCubeKit.h导入头文件

在MagicCubeKit.h中将你所有要公开的头文件引入。(MagicCubeKit.h必须为公开的,否则无法引用)

MagicCubeKit.h文件中
#import 

//! Project version number for MagicCubeKit.
FOUNDATION_EXPORT double MagicCubeKitVersionNumber;

//! Project version string for MagicCubeKit.
FOUNDATION_EXPORT const unsigned char MagicCubeKitVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import 

/*
 * 导入公开的头文件,供他人使用
 */
#import 
iOS制作framework_第11张图片

五、打包framework

1、选中Generic iOS Device,然后Command+B编译framework
2、选中任意模拟器,然后Command+B编译frameWork
3、选中Products文件夹中MagicCubeKit.framework,然后Show in Finder
iOS制作framework_第12张图片
4、可以在Finder中看到Products下的两个文件夹
名称 说明
Debug-iphoneos 真机编译生成
Debug-iphoneosimulator 模拟器编译生成
iOS制作framework_第13张图片
5、将两个framework中的MagicCubeKit文件合成

5.1、真机编译framework

5.2、模拟器编译framework

5.3、输入命令

lipo -create(上面两个文件【真机、模拟器】路径)-output(合成后文件的输出路径)

5.4、如图(注意:-output路径拼接MagicCubeKit

iOS制作framework_第14张图片

5.5、桌面framework文件夹下得到了合成的MagicCubeKit文件

iOS制作framework_第15张图片

5.6、用上面的文件替换(真机编译framework)Debug-iphoneos文件夹下的MagicCubeKit

iOS制作framework_第16张图片

5.7、得到最终的framework

iOS制作framework_第17张图片
6、将MagicCubeKit.framework拖入项目工程中使用
iOS制作framework_第18张图片

参考文章:

Xcode8制作framework
iOS制作framework
iOS封装功能生成 .framework

你可能感兴趣的:(iOS制作framework)