You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于第三方framework1构建framework2,能否集成依赖并以XCFramework分发?

基于闭源UI框架构建并分发新Framework的问题解答

1. 能否将framework1作为依赖集成到framework2,并通过Swift Package以XCFramework形式分发?

可以,但不能将framework1的二进制包直接嵌入到framework2的XCFramework中。正确的方式是让framework2通过Swift Package Manager(SPM)声明对framework1的依赖,分发时仅提供framework2自身的XCFramework,同时要求最终使用者也通过SPM引入framework1的二进制包。

2. 此场景是否属于iOS不支持的伞形框架范畴?

不属于。iOS禁止的伞形框架指的是将其他完整框架嵌套打包进自身框架内部(比如把framework1的二进制文件放在framework2的Resources或Frameworks目录下),这种做法会引发符号冲突、加载失败等运行时问题。

而如果只是通过SPM声明依赖关系,两个框架独立存在、由系统分别加载,就完全符合iOS的框架规范,不属于伞形框架。

3. 是否应通过SPM将framework1作为二进制依赖添加到framework2中?

是的,这是当前场景下最合规且易维护的方案。具体操作如下:

  • 在framework2的Package.swift中,通过binaryTarget引入framework1的XCFramework(支持本地路径或远程仓库地址)
  • 让framework2的target明确依赖这个binaryTarget
  • 打包framework2为XCFramework时,仅包含自身的二进制文件,不混入framework1的内容

这样,当使用者通过SPM引入framework2时,SPM会自动拉取并集成framework1的二进制依赖,保证两者的兼容性与正确加载。

额外注意事项

  • 确认framework1的XCFramework支持你所需的所有架构(如arm64、x86_64)和目标平台(iOS、iPadOS等)
  • 与供应商确认framework1的许可协议,允许其作为第三方依赖被其他框架引用
  • 测试阶段需验证完整依赖链:使用者集成后,framework1和framework2的组件都能正常初始化和调用

内容的提问来源于stack exchange,提问作者Vishwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:08:25