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

    ]
)
相关推荐
liangshanbo12152 分钟前
React 19 vs React 18全面对比
前端·javascript·react.js
望获linux14 分钟前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
Never_Satisfied17 分钟前
在 JavaScript 中,删除数组中内容为xxx的元素
java·前端·javascript
_菜鸟果果18 分钟前
Vue3+echarts 3d饼图
前端·javascript·echarts
Luffe船长1 小时前
前端vue2+js+springboot实现excle导入优化
前端·javascript·spring boot
Demoncode_y2 小时前
前端布局入门:flex、grid 及其他常用布局
前端·css·布局·flex·grid
明天最后2 小时前
使用 Service Worker 限制请求并发数
前端·service worker
java水泥工2 小时前
基于Echarts+HTML5可视化数据大屏展示-电信厅店营业效能分析
前端·echarts·html5·大屏展示
鹿鹿鹿鹿isNotDefined2 小时前
Pixelium Design:Vue3 的像素风 UI 组件库
前端·javascript·vue.js
运维行者2 小时前
知乎崩了?立即把网站监控起来!
前端·javascript·后端