首页 > 解决方案 > 需要 Swift 二进制框架的外部依赖项

问题描述

我正在构建一组用于我的组织的 SDK 框架。
有一个用于用户身份验证的核心框架Auth和另一个B依赖它来获取用户信息的框架。框架B是可选的。

我应该如何设置工作区和项目目标B,以便

  1. Auth未嵌入B,但在开发期间可用
  2. B用作Auth需要存在于它嵌入的任何项目中的外部依赖项

最后,我想使用 xcframeworks 并通过 SwiftPM 包分发。

目前我有一个B带有框架和Demo应用程序目标的项目。
框架目标包括Auth框架和库下作为不嵌入和演示的框架、库和嵌入式内容部分导入Auth以及B作为嵌入和签名

这适用于模拟器,但在设备上运行 Demo 会引发以下错误:

  1. No such module 'Auth'import Auth代码行中B
  2. Missing required module 'Auth'在演示应用程序的代码中的导入B

有什么方法可以B在作为外部依赖项导入的项目中找到框架?使用 SwiftPM 会更容易做到吗(只需等待 Swift 5.3 并支持二进制工件)吗?

我遇到了这份文件https://developer.apple.com/library/archive/technotes/tn2435/_index.html#//apple_ref/doc/uid/DTS40017543-CH1-PROJ_CONFIG-APPS_WITH_DEPENDENCIES_BETWEEN_FRAMEWORKS哪一种状态表明我是以正确的方式:

app 目标负责嵌入所有框架,包括其他框架所依赖的任何框架

标签: iosswiftxcode

解决方案


推荐阅读