小编Nik*_*jic的帖子

使用 Swift 包管理器为二进制目标添加包依赖项

我正在开发一个闭源框架,它将使用 SPM 作为 XCFramework 分发。这要归功于binaryTargetswift tools 5.3的新功能。这工作正常,直到框架具有依赖项。

416 - 二进制框架声明... binary frameworks cannot depend on Packages.,但这是在 5.3 之前,二进制目标根本不可能。在 Swift 论坛上,有一个建议的解决方法,主要围绕添加一个虚拟目标来列出依赖项(binaryTarget初始化程序没有dependencies参数)。

该解决方法一直有效,直到依赖项具有自己的依赖项。例如,没有任何依赖项的Lottie工作正常,但有很多依赖项的Auth0失败并出现错误 Missing required modules: 'Auth0ObjectiveC', 'SimpleKeychain'。即使使用 SPM 将 Auth0 直接添加到客户端项目也无法修复这些错误。

这是我的 Package.swift 部分工作。

// swift-tools-version:5.3
import PackageDescription
let package = Package(
    name: "MyFramework",
    platforms: [
        .iOS(.v13)
    ],
    products: [
        .library(name: "MyFramework", targets: ["MyFramework", "MyFramework-Dependencies"])
    ],
    dependencies: [
        .package(name: "Auth0", url: "https://github.com/auth0/Auth0.swift.git", from: "1.30.1")
    ], …
Run Code Online (Sandbox Code Playgroud)

ios swift swift-package-manager xcframework

6
推荐指数
1
解决办法
1217
查看次数

标签 统计

ios ×1

swift ×1

swift-package-manager ×1

xcframework ×1