Swift Framework-静态库

2023-04-06  本文已影响0人  yingvhaihuman

<创建Framework>


1.新建Framework.

打开Xcode->File->New->Project.

iOS-Framework

Product Name: MyViewSDK,Language: Swift.

2.设置参数.

一.设置版本号.

iOS Deployment Target 13.0

二.设置Architectures.

Build Settings -> Architectures -> Build Active Architecture Only设置为NO.(Framework支持所有设备设置)

Build Settings -> Architectures -> Excluded Architectures -> Release 设置为Any iOS Simulator SDK arm64.(排除模拟器的arm64文件,避免合并时与真机的arm64文件存在多个)

Architectures

三.设置Linking.

Build Settings -> Linking -> Mach-O Type 设置为 Static Library.(导出静态库设置)

Build Settings -> Linking -> Dead Code Stripping 设置为 NO.(Framework瘦身设置)

Linking

3.编辑代码.

我直接把一个UIView的extension拖进来了。注意:

<1.被用户调用的API一定要用public或以上的访问权限修饰;

<2.需要被OC工程调用的类型/API,需要加上@objc修饰.

@objc public func addTransitionColorLeftToRight {}

extension

4.导出framework步骤.

<1.导出Release版本.

Edit Scheme -> Run -> Build Configuration 设置为 Release.

Edit Scheme Build Configuration

<2.编译项目: command + B.

(1.选择模拟器运行.

(2.选择真机运行.

注释:查看编译成功与否:Product -> Show Build Folder in Finder -> Build -> Products.

Show Build Folder in Finder

模拟器编译成功有Release-iphonesimulator文件,

真机编译成功有Release-iphoneos文件.

Products

5.shell脚本合并framework文件.

<1.新建脚本项目.

TARGETS Other-Aggregate

Product Name: shell(随便起一个名).

Project: 默认是当前项目.

<2.在脚本项目中添加脚本.

新建的shell项目shell -> Build Phases,点击上面的+加号,选中New Run Script Phase.

New Run Script Phase

<3.输入脚本内容:

在新建的 Run Script 输入 path.

Run Script

合并framework静态库的脚本内容: 如下图(代码在下一篇文章).

shell

<4. 编译脚本: command + B.

选中shell项目,并且选择Build 的真机设备.

shell-Any iOS Device

合成后的framework文件就会写入到主工程目录下.

framework

<Swift工程 使用Framework>


1.新建工程(起名Test,不做演示).

<1.把framework(整个)拉进项目.

<2.把framework里的Headers文件再单独拉进项目.

framework + Headers

2.系统类扩展设置(因为添加了系统类UIView扩展:UIView+Color).

Build Setting -> Other Linker Flags设置为 -ObjC.

Other Linker Flags -ObjC

3.直接调用framework里的API代码.

import MyViewSDK

4.选择真机运行.

<Objective-C工程 使用Framework>


1.新建工程(起名OCTest,如以上Swift工程,不做演示).

分别把framework和Headers拖入工程.

2.嵌入Swift库设置

Build Settings -> Build Options -> Always Embed Swift Standard Libraries 设置为 YES.

Always Embed Swift Standard Libraries

3.调用framework里的API代码.

MyViewSDK-Swift.h Using

(...完毕)

上一篇 下一篇

猜你喜欢

热点阅读