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

标签 ios swift firebase swift-package-manager

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

because no versions of mobile.ios.MYPACKAGE match the requirement 1.0.7..<2.0.0 and package mobile.ios.MYPACKAGE is required using a version-based requirement and it depends on unversion package firebase-ios-sdk, mobile.ios.MYPACKAGE >=1.0.6 is forbidden. And because root depends on mobile.ios.MYPACKAGE 1.0.6..<2.0.0, version solving failed.


这个错误是有道理的,因为我的 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 仍处于测试阶段时将我的包与我的应用程序集成?

最佳答案

有一个基于版本的依赖关系,如果你按版本添加你的包,那么你必须按版本而不是从分支添加依赖项:
注意:不要忘记标记您的提交(在您的包中)。
例如:

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

关于ios - Swift 包管理器与未版本化包有关的问题(例如 : firebase-ios-sdk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64017125/

相关文章:

ios - 饼图标签与小型设备中的饼图重叠

ios - UIPickerView 没有出现

swift - 如何正确处理 Swift 中 double 值之间的比较?

ios - 如何在 DidReceiveLocalNotification 的警报处理程序/闭包中添加来自 VC 的方法?

swift - 根据deep child的值查询数据

javascript - Firebase云函数不返回值,返回数据始终为null

angular - 将 FirebaseUI 与 AngularFire2 结合使用

css - 如何计算移动设备的宽度和高度

ios - XCODE 6.4 - 架构 armv7 错误的 undefined symbol

swift - 一切都从 `protocol can only be used as a generic constraint because it has Self or associated type requirements`开始