【问题标题】:How to add dependencies in two custom iOS framework?如何在两个自定义 iOS 框架中添加依赖项?
【发布时间】:2018-05-18 12:40:36
【问题描述】:

我创建了自定义框架以在我当前的 iOS 应用中使用。

  • profileManager.Framework
  • messagemanager.Framework
  • requestManager.Framework

现在 profileManager.Framework 和 messagemanager.Framework 实际上都在使用 requestManager.Framework 方法所以我想要的是在我的应用程序的 Xcode 项目中我只想保留 requestManager.Framework 代码的一个物理副本。我想要那个我的请求管理器代码每个应用程序应该只有一个副本,并且引用应该与其他框架链接。

我们已经在本地机器上创建了这个框架,现在我的问题是我们无法在 profileManager.Framework 或 messagemanager.Framework 中添加依赖项。我想知道我的两个框架如何使用应用程序中的网络管理器及其应用程序中的单个副本。

【问题讨论】:

    标签: frameworks dependencies cocoapods git-submodules ios-frameworks


    【解决方案1】:

    在您的单视图应用程序级别拥有该框架,并确保在 App 和框架的构建设置中提供正确的框架路径。

    这样,您只需维护一个框架副本,该副本也在项目级别,并且可以在项目或项目框架级别随意使用。

    【讨论】:

    • 能否详细说明一下。
    • 将网络框架放在您的应用程序级别。例如,将它放在您的项目根目录中,并在依赖框架(用户和收件箱)和应用程序的构建设置中给出该路径。
    【解决方案2】:

    尝试使用 CocoaPods 管理这些框架的依赖关系如何? 在UserManager.FrameworkInboxManager.Framework的podspec中,像s.dependency 'NetworkManager', '~> 1.0'一样配置依赖。这样一来,您的应用中只能拥有一份 NetworkManager.framework 代码的物理副本。

    例如,AlamofireImageAlamofire-SwiftyJSON 都依赖于Alamofire,但在运行pod install 的应用中只安装了Alamofire.framework 的一个物理副本。

    参考:AlamofireImage.podspecAlamofire-SwiftyJSON.podspec

    【讨论】:

    • 我知道该解决方案,但我们不想将框架放在 GitHub 上。我们试图给 s.dependency 与本地路径。但它不工作
    • 你试过Private Spec Repo吗?
    猜你喜欢
    • 2018-12-05
    • 2018-04-24
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2021-10-23
    • 2018-09-10
    相关资源
    最近更新 更多