Swift 制作Framework

Swift 制作Framework

记录一下自己的过程:---有些地方自己还是不懂

第一步:创建Framework工程

运行 XCode -> Cocoa Touch Framework -> 取个名, 语言选择 Swift -> 创建成功

第二步:基本设置

创建完不急着编写代码,先做一些设置:

1.修改最低的系统要求,建议当然低一些好,(示例 ios10)

2.Mach-O Type, Swift必须为Dyanmic Library

3.Build Active Architecture Only 选择NO,表示支持各种设备

4.Dead Code Stripping, 设置为  NO,我也不知道为什么

5.Build 环境,以下全部设置为release

第三步:放入代码文件

1.先删除 自带的跟工程同名的 .h文件

2.放入代码文件、或者开始写代码,如需外部调用,类名和方法属性,则需要Public,否则外界调用不到。

3.设置TAGETS-Build Phases-Headers

Public 为公开的文件,将左侧文件拖入即可。拖入则可看到相应的 Public方法和属性。

第四步:开始生成framework

1.选择真机,command+b

会 发现 Products文件里边的framework由红色变为白色,表示生成framework成功

2.选择模拟器,同上。

3.找到framework文件

右键,选择Show in Finder ,会看到两个文件夹,后缀为-iphoneos的为真机包,后缀为-iphonesimulator的为模拟器包

第四步:合成包

1.查看 真机版本和模拟器版本 架构信息 打开终端命令 lipo -info 。注意,是.framework文件夹下边的这个文件

真机版本

模拟器版本

这里发现模拟器里边居然也包含 arm64的信息,然后去合并真机和模拟器版本时,就出现了问题。合并指令 sudo lipo -create (真机路径(AppConfig)) (模拟器路径(AppConfig))-output (真机路径(Appconfig))

如下错误信息

解决无法合并的问题:Build Settiongs 搜索 Excluded Architectures, 在release下添加 Any iOS Simulator SDK 值为 arm64。如下图

然后 command+shift+k,清理一下缓存,分别选择真机、模拟器重新编译。再次查看模拟器的构建信息,发现这次模拟器包里边没有arm64啦。

现在,可以继续合并 真机和模拟器包了,此时没有报错了,包已合并成功。上述已经将包合成到真机的包里边

第五步:使用

1.将AppConfig.frame包导入到工程

2.运行,然后就闪退了。这里我也不知道为何会如此,经过我的一番折腾,终于解决了,但还是不明白为啥。

3.解决方案,如图

将该framework先删除

在点击+,重新导入。选择 Add Other....->Add Files

找到工程里边的 framework,点击open

在使用的地方 import 一下,就可以使用啦

完毕。!谢谢观看

参考: http://www.yoyo88.cn/study/swift/491.html

参考:https://www.jianshu.com/p/d1a0c627d34a

你可能感兴趣的:(Swift 制作Framework)