iOS制作framework

作者: LuisX | 来源:发表于2017-09-25 17:47 被阅读322次
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

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

二、在TARGETS下,选中BuildSettings

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

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

项目 设置 说明
Build Active Architecture Only NO 编译所有的版本(反之, 只编译当前的architecture版本)

三、在TARGETS下,选中BuildPhases

1、搜索header项,修改如下

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

四、MagicCubeKit.h导入头文件

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

MagicCubeKit.h文件中
#import <UIKit/UIKit.h>

//! 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 <MagicCubeKit/PublicHeader.h>

/*
 * 导入公开的头文件,供他人使用
 */
#import <MagicCubeKit/MCDefine.h>

五、打包framework

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

5.1、真机编译framework

5.2、模拟器编译framework

5.3、输入命令

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

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

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

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

5.7、得到最终的framework

6、将MagicCubeKit.framework拖入项目工程中使用

参考文章:

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

相关文章

网友评论

    本文标题:iOS制作framework

    本文链接:https://www.haomeiwen.com/subject/vkudextx.html