ios 打包framework 合并真机和模拟器framework

前言
如果想将自己开发的控件、代码与别人分享,首先我们可以直接提供源代码文件。但是,有时候我们并不想别人看到我们代码的实现,而这些实现我们可能并不想开源出来。别人也不想将我们写的代码都拖到项目中,他们只是需要一种简单的方法来编译你的代码,使得你的代码易使用,并且在多个工程中易复用。所以我们需要的是一种方法来打包你的静态库,将所有的头文件放到一个单元中,这样你就可以立刻将其加入到你的项目中并使用。
OS X完美地支持这一点,因为Xcode就提供了一个项目模板,包含着默认构建目标(target)和可以容纳类似于图片、声音、字体等资源的文件。你可以为iOS创建Framework,不过这是一个比较复杂的手工活,如果你跟着教程走,你将学到怎么样跨过路障,顺利地完成Framework的创建。

下面我们就来进行打包Framework
一 目标
本文将基于Xcode9创建一个简单的工程,来教大家如何制作一个自己的framework,目的就是简单易学的制作framework。这种方法可以使得你的代码易分享,在多个工程中复用,并且可以隐藏实现细节,控制公开的头文件。
二 步骤
1、打开Xcode,新建工程。
不要选择“Application”,选择“Framework & Library”。选择第一个,然后Next。
选择如图
创建项目如图

2、创建功能类。

首先创建一个继承自NSObject的HelloWorld类
在这里插入图片描述
3、实现功能。
在新创建的类里面声明方法并实现。这里我写一个helloWorld的方法

HelloWorld.h

#import <Foundation/Foundation.h>
@interface HelloWorld : NSObject

  • (void)helloWorld;
    @end

HelloWorld.m

#import “HelloWorld.h”

@implementation HelloWorld
-(void)helloWorld {
NSLog(@“helloWorld”);
}
@end

4、更改参数

在TARGETS下选中工程,在Build Settings下更改几个参数。
在这里插入图片描述
因为如果集成的项目支持 bitCode 就设置成yes 不支持就设置成NO
有的项目不支持
5、设置Headers

将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。
在这里插入图片描述

三 打包Framework
方法有很多 我们这里只说一种
--------真机打包
1.选中Generic iOS Device,编译程序 (只支持手机格式)
在这里插入图片描述

2.编译成功后,选中图中所标示的framework,然后右键show in finder。
在这里插入图片描述
在这里插入图片描述

3.将framework拷贝出来保存,这就是我们最终制作的framework。
------------模拟器打包
1.选中模拟器,编译程序 (只支持模拟器格式)
在这里插入图片描述
2.编译成功后,选中图中所标示的framework,然后右键show in finder。

在这里插入图片描述
在这里插入图片描述
四 合并framework
为了framework 支持真机 也支持模拟器 将两个framework 合并
我们通过终端命令将两个framework合为一个模拟器和真机都可使用的framework。
1 输入 lipo -info加真机上的这个文件路径 如图 在这里插入图片描述

然后回车 在这里插入图片描述
看最后 arm64 说明是真机,如此方法测试模拟器文件,需得到i386 x86_64才对。
2 接下来重点:合并 利用 lipo -create 真机路径 模拟器路径 -output 真机路径
在这里插入图片描述
合并成功 因为咱们是合并到真机上面了 故将真机里面的framework拖入到项目中 就能同时使用真机和模拟器了

五 使用
1 导入另一个Xcode项目中,我们打开这个framework看看,发现只有Headers,里面只有.h。
在这里插入图片描述
2 引入头文件:
在这里插入图片描述
3 我们实例化一个实例对象,然后就可以让这个实例对象调取相应的方法了
在这里插入图片描述
到此,完成Framework的制作和使用。

猜你喜欢

转载自blog.csdn.net/u013983033/article/details/83026218
今日推荐