使用 carthage 的 RealmSwift 框架集成问题
Posted
技术标签:
【中文标题】使用 carthage 的 RealmSwift 框架集成问题【英文标题】:RealmSwift framework integration issue using carthage 【发布时间】:2017-04-21 02:00:35 【问题描述】:我已经使用 carthage 依赖工具集成了 RealmSwift 框架。
我按照以下步骤操作:
安装 Carthage 0.17.0 或更高版本
将 github "realm/realm-cocoa" "master" 添加到您的购物车文件中。
运行迦太基更新。要修改用于构建的 Swift 工具链,请通过 --toolchain 参数指定它。例如:
迦太基更新--toolchain com.apple.dt.toolchain.Swift_2_3
将 RealmSwift.framework 和 Realm.framework 从 Carthage/Build/ 中的相应平台目录拖到 Xcode 项目“常规”设置的“嵌入式二进制文件”部分。
ios/tvOS/watchOS:在应用程序目标的“构建阶段”设置中 选项卡,单击“+”图标并选择“新建运行脚本阶段”。创建一个 运行脚本,内容如下:
/usr/local/bin/carthage 复制框架 并在“输入文件”下添加要使用的框架的路径,例如:
$(SRCROOT)/Carthage/Build/iOS/Realm.framework $(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework
现在,
当我尝试构建我的项目时,我收到了这个错误:
使用 Swift 3.0 编译的模块无法在 Swift 2.3 中导入:Carthage/Build/iOS/RealmSwift.framework/Modules/RealmSwift.swiftmodule/x86_64.swiftmodule
我不知道是什么问题。
【问题讨论】:
【参考方案1】:来自Installation section in Docs:
--no-use-binaries
参数也是必要的,以避免 Carthage 提取预构建的 Swift 3.0 二进制文件。
所以第 3 步的命令应该是这样的
carthage update --toolchain com.apple.dt.toolchain.Swift_2_3 --no-use-binaries
(猜你在主项目中使用的是 Swift 2.3)
【讨论】:
我已经运行了这个脚本。但问题是在 carthage 文件中的代码是 github "realm/realm-cocoa" 和 github "ReactiveX/RxSwift" "rxswift-2.0" 所以这里的领域使用的是最新版本的 swift 而 rxswift 使用的是早期版本的 swift 所以我我无法构建我的项目。 您在项目中使用的 Swift 版本是什么?以上是关于使用 carthage 的 RealmSwift 框架集成问题的主要内容,如果未能解决你的问题,请参考以下文章
RealmSwift:没有这样的模块“RealmSwift”
RealmSwift 限制和获取最后 30 条记录到 tableview