繁体   English   中英

Swift Package 未版本化包的管理器问题(例如:firebase-ios-sdk)

[英]Swift Package Manager issues with unversioned Packages (example: firebase-ios-sdk)

我正在努力将我的一个应用程序的一些功能提取到 package 中,以便我可以集中一些重复使用的代码,在这样做的过程中,我将对 firebase 的依赖性提取到我的 package 中。一旦我这样做了,我由于以下错误,无法再更新我的 package:

解析包失败

因为没有版本的 mobile.ios.MYPACKAGE 符合要求 1.0.7..<2.0.0 和 package mobile.ios.MYPACKAGE 需要使用基于版本的要求,它取决于版本 package firebase-ios-sdk,移动。 ios.MYPACKAGE >=1.0.6 被禁止。 又因为root依赖mobile.ios.MYPACKAGE 1.0.6..<2.0.0,导致版本解析失败。

这个错误是有道理的,因为我的Package.swift引用了 firebase firebase-ios-sdk ,目前处于测试阶段。 这没关系,因为在今年晚些时候 firebase 退出测试版之前,我不打算发布我的包。

我对 dependencies 数组内部的 package 的引用:

dependencies: [
    .package(name: "Firebase",
               url: "https://github.com/firebase/firebase-ios-sdk.git",
               .branch("6.32-spm-beta")),
...

我在我的目标数组中引用了 firebase package

    targets: [
    .target(
        name: "MYPACKAGE",
        dependencies: ["Alamofire", "SwiftyJSON",
            .product(name: "FirebaseAuth", package: "Firebase"),
            .product(name: "FirebaseCrashlytics", package: "Firebase"),
            .product(name: "FirebaseAnalytics", package: "Firebase"),

你可以看到我引用了6.32.spm-beta作为 firebase 指示你在他们的文档中做。 我怎样才能解决这个问题,以便在 firebase 仍处于测试阶段时,我可以将我的 package 与我的应用程序集成?

有一个基于版本的依赖项,如果您按版本添加 package,那么您必须按版本而不是分支添加依赖项:

注意:不要忘记标记您的提交(在您的包中)。

例如:

dependencies: [
    .package(name: "Firebase",
     url: "https://github.com/firebase/firebase-ios-sdk.git",from: "1.0.0")
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM