ios - Cocoapods 共享依赖
问题描述
我正在重构一个单体代码库并想将其拆分为框架,我目前的情况如下:
- App 项目,依赖于 A、B 和 C
- 框架 A
- 框架 B,依赖于 A
- 框架 C,取决于 A 和 B
以上所有内容都在同一个工作区中,并且每个都有自己的 pod:
- 应用使用 Firebase、Cryptoswift 和 RxSwift
- 框架 A 使用 Firebase 和 RxSwift
- 框架 B 和 C 使用 RxSwift
一切正常,但在应用程序启动时,我在日志中看到每个框架有多个(两个)定义,例如:
RxSwift is implemented in both 'app' and 'frameworka', which implementation will be used is undefined
(尝试了“不嵌入”和“嵌入并签名”)
有任何想法吗?如果它有助于解决问题,我也可以切换到其他一些包管理器......
提前致谢!
我的 Podfile 看起来像这样:
platform :ios, '11.0'
use_frameworks!
workspace 'App'
project 'App/App'
project 'FrameworkA/FrameworkA'
project 'FrameworkB/FrameworkB'
project 'FrameworkC/FrameworkC'
target 'Appp' do
project 'App/App'
pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/Crashlytics'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
pod 'CryptoSwift'
pod 'RxSwift'
pod 'RxCocoa'
end
target 'FrameworkA' do
project 'FrameworkA/FrameworkA'
pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/Analytics'
pod 'Firebase/RemoteConfig'
pod 'RxSwift'
pod 'RxCocoa'
end
target 'FrameworkB' do
project 'FrameworkB/FrameworkB'
pod 'RxSwift'
pod 'RxCocoa'
end
target 'FrameworkC' do
project 'FrameworkC/FrameworkC'
pod 'RxSwift'
pod 'RxCocoa'
end
解决方案
经过反复试验,我没有找到解决方案。我刚刚转向 Swift 包管理器,当发现重复的依赖项时,它确实会引发编译器错误(而不仅仅是控制台日志中的一行)。然后我意识到我可以删除依赖项,就是这样。
推荐阅读
- python - 如何分隔列表中的变量:返回字母数字或数值
- python - 找不到模块“...Python38\lib\site-packages\lightgbm\lib_lightgbm.dll”
- r - 为什么 adabag 中的预测误差是离散的?
- javascript - GoogleAppsScript 的字符串解析器
- ruby - rbenv 在 tmux 中没有得到正确的版本
- c++ - 将 String 转换为 Epoch 一遍又一遍地返回常量值
- python - 为什么主窗体中的创建按钮不起作用?
- python - Django 模型 - 一对多或多对多
- node.js - 如何同时使用后端和前端的文件?
- activemq - 使用 amqp 协议模拟 Apache ActiveMq