【问题标题】:Swift Package Manager issues with unversioned Packages (example: firebase-ios-sdk)Swift 包管理器与未版本化包有关的问题(例如:firebase-ios-sdk)
【发布时间】:2021-01-09 00:22:25
【问题描述】:

我正在努力将我的一个应用程序上的一些功能提取到一个包中,以便我可以集中一些重用的代码,并在此过程中将依赖项对 firebase 拉到我的包中。执行此操作后,由于以下错误,我无法再获取包的更新:

无法解析包

因为没有任何版本的 mobile.ios.MYPACKAGE 符合要求 1.0.7..=1.0.6 是被禁止的。 并且因为root依赖mobile.ios.MYPACKAGE 1.0.6..

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

我对依赖数组中的包的引用:

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

我对我的目标数组中的 firebase 包的引用

    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 仍处于测试阶段时将我的包与我的应用程序集成?

【问题讨论】:

  • 我也遇到了这个问题。可能值得在 Firebase iOS SDK Github 存储库中提出问题。
  • 他们实际上说要在 StackOverflow 上用 firebase 标志标记它们以提问。但由于一周内没有人从 firebase 看过这个,我可能会这样做。 (如果你打败了我就链接它)
  • 有什么消息吗?

标签: ios swift firebase swift-package-manager


【解决方案1】:

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

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

例如:

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

【讨论】:

  • 我已经尝试过了(也根据 firebase 的文档:firebase.google.com/docs/ios/installation-methods - 但我得到的只是无法解决 Xcode 中的依赖项。顺便说一句,我正在使用 Package.swift 打开项目我想现在所有的孩子都会这样做。
猜你喜欢
  • 1970-01-01
  • 2016-06-20
  • 2022-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
相关资源
最近更新 更多