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

    ]
)
相关推荐
转转技术团队1 天前
MCP 解析:给 AI 装上“万能充电口”,打通连接世界的“最后一公里”
前端
●VON1 天前
鸿蒙Flutter实战:MultiProvider多状态管理架构实践
flutter·华为·架构·harmonyos·鸿蒙
Y敲键盘的地方1 天前
第9章 工具调用循环——Agent的行动闭环
java·服务器·前端
苏瞳儿1 天前
vue3+pinia+mqtt实时响应连接
前端·javascript·vue.js
ayqy贾杰1 天前
我同事,40了,他vibe coding了个App
前端·ios·客户端
暗冰ཏོ1 天前
《2026 Vue2 + Vue3 完整学习指南:基础语法、路由缓存、登录拦截、项目实战与面试题》
前端·vue.js·vue·vue3·vue2
蜡台1 天前
VUE 侧边按钮组,可自定义位置
前端·javascript·css
AI科技星1 天前
维度原本——基于超复数谱系的全域维度统一理论
c语言·前端·javascript·网络·electron
kyriewen1 天前
14MB VS 15KB:前React核心成员用AI写了个排版库,让Safari快了一千倍
前端·javascript·react.js