Flutter插件中引用本地framework

前言

最近搞了搞Flutter plugin,发现iOS端已经默认使用SPM了,但是SPM目前也比较少,而我拿到的Framework又是纯本地的,不需要发布到远程仓库,但始终无法正确添加。本身不是什么难题,只是因为我不太了解SPM。

如果有误,望指正。

.framework转成.xcframework

由于对方给我的是一堆.framework文件,而SPM不支持.framework,所以要先把.framework变成.xcframework

shell 复制代码
xcodebuild -create-xcframework -output SampleFramework.xcframework -framework path/to/a.framework -framework path/to/b.framework 

完成之后你会得到一个Sample.xcframework.

集成xcframework

假设你的插件名字叫作plugin_name,并且你要集成的xcframework名字叫作SampleFramework.xcframework

首先,把xcframework复制到ios/plugin_name。然后找Package.swift, 然后把SampleFramework.xcframework添加进去。

swift 复制代码
import PackageDescription

let package = Package(
    name: "plugin_name",
    platforms: [
        .iOS("12.0")
    ],
    products: [
        .library(name: "plugin_name", targets: ["plugin_name","SampleFramework"]) // 这里添加你的framework名称
    ],
    dependencies: [
        .package(path: "Sources/plugin_name/SampleFramework.xcframework") // 这里添加你的framework
    ],
    targets: [
        .target(
            name: "plugin_name",
            dependencies: [
                .byName(name: "SampleFramework") // 这里添加你的framework
            ],
            resources: []
            
        ),
        
        .binaryTarget(name: "SampleFramework", path: "SampleFramework.xcframework") //这里添加你的framework

    ]
)
相关推荐
架构个驾驾2 分钟前
Vue3 状态管理新选择:Pinia 完全指南与实战示例
前端·javascript·vue.js
空城机2 分钟前
从零打造前沿Web聊天组件:@成员和表情包设计实现
前端·vue.js
哄哄5753 分钟前
接入deepSeek后,前端如何给“深度思考“内容单独设置样式?
前端
邹荣乐3 分钟前
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合
前端·微信小程序·uni-app
红衣信4 分钟前
探索 DeepSeek:智能前端与大模型的碰撞
前端·人工智能·llm
玲小珑4 分钟前
Auto.js 入门指南(三)第一个 Auto.js 脚本
android·前端
哄哄5755 分钟前
人工智能+GPT微信小程序聊天机器人(deepSeek)
前端
cv攻城狮_6 分钟前
面试官:说一说try catch吧。。。。。。
前端·javascript
天天码行空6 分钟前
stylus - 新生代CSS预处理框架
前端·javascript·scss
前端小巷子7 分钟前
Promise 基础:异步编程的救星
前端·javascript·面试