我的项目主要用Objective-C编写,我在其中使用了Realm。 我想添加带有域支持的Charts库,但是在尝试使用cocoapods添加它时出错。
Podfile看起来像(和其他一些库一样)
platform :ios, '9.0'
use_frameworks!
target 'MY_PROJECT' do
pod 'Realm'
pod 'Charts/Realm'
end
我得到的错误是:
[!] Unable to satisfy the following requirements:
- `Realm` required by `Podfile`
- `Realm` required by `Podfile`
- `Realm` required by `Podfile`
- `Realm (= 2.0.0)` required by `Podfile.lock`
- `Realm (= 0.97.0)` required by `RealmSwift (0.97.0)`
由于我的项目是混合的,我无法直接使用RealmSwift。 任何想法?
答案 0 :(得分:2)
问题不在于混合Realm和RealmSwift。您似乎首先安装了没有图表的Realm,然后将图表添加到Podfile然后pod install
,对吧?因此Podfile.lock
(将文件固定到特定版本的文件)将Realm固定到2.0.0
,但是图表需要较旧版本的RealmSwift(RealmSwift依赖于Realm隐含)。这是错误的原因。
要解决此问题,您可以执行pod update
或从Podfile中删除pod 'Realm'
。无论哪种方式删除Realm 2.0然后安装Realm和RealmSwift 1.1.0(1.1.0是图表所需)。
您无法使用更高版本的Realm,因为图表需要1.1.0。
答案 1 :(得分:1)
正如您所说,无法使用混合Realm和RealmSwift应用程序。来自docs:
如果您希望纯粹使用来自Swift的Realm,您应该考虑 使用Realm Swift代替。 Realm Objective-C和Realm Swift API 是不可互操作的,并且不支持它们一起使用。
无论如何,我给你的建议是使用Swift的Realm Cocoa(Objective-C),所以使用数据库的应用程序没有任何重大问题。不要在Podfile中混合两个依赖项。仅使用Realm而不使用RealmSwift。