美文网首页
Objective-C项目使用Swift静态库(.framewo

Objective-C项目使用Swift静态库(.framewo

作者: 陳芮 | 来源:发表于2021-02-05 11:47 被阅读0次

    制作 .framework 静态库

    新建 Framework 工程

    截屏2021-02-05 上午10.31.35.png

    配置 Project

    Build Active Architecture Only 设置为 NO

    ※设置为 YES,是只编译当前的 architecture 版本,是为了编译速度更快
    ※设置为 NO,系统会编译所有architecture下的版本

    截屏2021-02-05 上午10.33.35.png
    Mach-O Type 设置为 Static Library
    截屏2021-02-05 上午10.34.32.png

    创建对外使用接口文件

    ①将对外接口文件设置为 public
    截屏2021-02-05 上午11.02.10.png
    ※因为使用这个静态库是 OC 工程,所以要添加 @objc
    import Foundation
    
    @objc public class InstanceSDK: NSObject {
        @objc static let shared = InstanceSDK()
        @objc public class func sharedInstance() -> InstanceSDK {
            return shared
        }
        
        @objc public func checkJailBroken() -> Bool {
            let apps = ["/Applications/Cydia.app",
                        "/Applications/limera1n.app",
                        "/Applications/greenpois0n.app",
                        "/Applications/blackra1n.app",
                        "/Applications/blacksn0w.app",
                        "/Applications/redsn0w.app",
                        "/Applications/Absinthe.app"]
            for app in apps {
                if(FileManager.default.fileExists(atPath: app)) {
                    return true
                }
            }
            return false
        }
    }
    

    编译工程生成 .framework 文件

    ※因为编译时选择的 Any iOS Device,所以这个 .framework 静态库只能给真机使用

    截屏2021-02-05 上午11.18.21.png

    OC 工程导入 Swift 静态库( .framework )

    ①添加 .framework 文件至工程
    ②设置配置文件

    ※因为要在 OC 工程中使用 Swift 制作的静态库,所以要将 Always Embed Swift Standard Libraries 设置为 YES

    截屏2021-02-05 上午11.31.06.png 截屏2021-02-05 上午11.31.47.png
    ③ 创建 .swift 文件,自动生成桥接文件
    .h 文件中导入包
    #import "UseFramework-Swift.h"
    #import <demo/demo.h>
    
    ⑤ 已经可以使用 framework 中的接口了
    BOOL isJailBroken =  [[InstanceSDK sharedInstance] checkJailBroken];
    

    相关文章

      网友评论

          本文标题:Objective-C项目使用Swift静态库(.framewo

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