<创建Framework>
1.新建Framework.
打开Xcode->File->New->Project.
Product Name: MyViewSDK,Language: Swift.
2.设置参数.
一.设置版本号.
二.设置Architectures.
Build Settings -> Architectures -> Build Active Architecture Only设置为NO.(Framework支持所有设备设置)
Build Settings -> Architectures -> Excluded Architectures -> Release 设置为Any iOS Simulator SDK arm64.(排除模拟器的arm64文件,避免合并时与真机的arm64文件存在多个)
三.设置Linking.
Build Settings -> Linking -> Mach-O Type 设置为 Static Library.(导出静态库设置)
Build Settings -> Linking -> Dead Code Stripping 设置为 NO.(Framework瘦身设置)
3.编辑代码.
我直接把一个UIView的extension拖进来了。注意:
<1.被用户调用的API一定要用public或以上的访问权限修饰;
<2.需要被OC工程调用的类型/API,需要加上@objc修饰.
@objc public func addTransitionColorLeftToRight {}
4.导出framework步骤.
<1.导出Release版本.
Edit Scheme -> Run -> Build Configuration 设置为 Release.
<2.编译项目: command + B.
(1.选择模拟器运行.
(2.选择真机运行.
注释:查看编译成功与否:Product -> Show Build Folder in Finder -> Build -> Products.
模拟器编译成功有Release-iphonesimulator文件,
真机编译成功有Release-iphoneos文件.
5.shell脚本合并framework文件.
<1.新建脚本项目.
Product Name: shell(随便起一个名).
Project: 默认是当前项目.
<2.在脚本项目中添加脚本.
新建的shell项目shell -> Build Phases,点击上面的+加号,选中New Run Script Phase.
<3.输入脚本内容:
在新建的 Run Script 输入 path.
合并framework静态库的脚本内容: 如下图(代码在下一篇文章).
<4. 编译脚本: command + B.
选中shell项目,并且选择Build 的真机设备.
合成后的framework文件就会写入到主工程目录下.
<Swift工程 使用Framework>
1.新建工程(起名Test,不做演示).
<1.把framework(整个)拉进项目.
<2.把framework里的Headers文件再单独拉进项目.
2.系统类扩展设置(因为添加了系统类UIView扩展:UIView+Color).
Build Setting -> Other Linker Flags设置为 -ObjC.
3.直接调用framework里的API代码.
4.选择真机运行.
<Objective-C工程 使用Framework>
1.新建工程(起名OCTest,如以上Swift工程,不做演示).
分别把framework和Headers拖入工程.
2.嵌入Swift库设置
Build Settings -> Build Options -> Always Embed Swift Standard Libraries 设置为 YES.
3.调用framework里的API代码.
(...完毕)