ios - 从手动安装转移到通过 Xcode 中的 Cocoapods 使用 Realm
问题描述
我目前在我的一个项目中使用 Realm,我在其中手动安装了它。一切正常,直到我将 Xcode 从 10.1 更新到 10.2。现在我不断收到以下错误。
Swift 5.0 编译器无法导入使用 Swift 4.2 编译的模块:/Users/userName/MyApp/RealmSwift.framework/Modules/RealmSwift.swiftmodule/i386.swiftmodule
我相信这与以下事实有关:当我尝试用为 Xcode 10.2 编译Realm frameworks
的最新版本替换我的项目中的Realm
为Xcode 10.2
无论如何,我现在想尝试在每次更新 Xcode 时
使用Realm
through来消除此类问题,所以我的问题是……</p>Cocoapods
为了让我从手动安装转移到通过 Cocoapods 使用 Realm,我需要在 Xcode 中进行哪些更改?
我在框架搜索路径中需要什么?
我需要删除
Run Script Phase
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"吗?我的 Pod 文件中需要什么?由于在文档中找不到任何信息,我更感兴趣的是如何合并
Realm
我的。WatchApp Extension
这是我的 Pod 文件现在的样子。
豆荚文件
#platform :ios, '9.3'
target 'MyApp' do
use_frameworks!
# Pods for MyApp
pod 'Firebase/Core'
pod 'NVActivityIndicatorView'
target 'MyAppTests' do
inherit! :search_paths
end
target 'MyAppUITests' do
inherit! :search_paths
end
end
target 'MyApp Watch App' do
use_frameworks!
end
target 'MyApp Watch App Extension' do
use_frameworks!
end
仅供参考 - 我已经在我的项目中使用 Cocoapods 但还Realm
没有。另外,我在这个项目中Realm
使用iOS
和。WatchApp Extension
解决方案
如果您已经拥有由 cocoapods 创建的工作区,则无需修改项目设置,当您将新 pod 添加到 podfile 时,cocoapods 会自动处理将其正确链接到您的项目。
只需删除手动添加的 Realm 框架文件,删除包含 的自定义 Run Script 构建阶段"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
,然后运行pod update
,您就可以开始了。
至于原来的问题
Swift 5.0 编译器无法导入使用 Swift 4.2 编译的模块:/Users/userName/MyApp/RealmSwift.framework/Modules/RealmSwift.swiftmodule/i386.swiftmodule
,在使用预编译框架时,您需要等到框架的开发者更新了 Swift 5 的预编译版本(或者您想要将项目切换到的最新版本)之后才能使用它们。
由于 cocoapods 在您自己的机器上从源代码编译所有依赖项,因此不会出现 Swift 编译器版本不兼容的问题,您甚至可以专门从您的 podfile 控制每个项目使用哪个 Swift 版本。
推荐阅读
- typescript - 将类型推送到元组的末尾,跳过可选
- pymc3 - 尝试使用 DiscreteUniform 作为 numpy 索引
- java - 搜索对象数组列表不起作用
- typescript - 使用默认值解构多种类型
- java - 如何在我的代码行中正确设置 totalSeconds()(小时分钟秒)并返回它
- vue-component - 从 v-data-table Vuetify 的空行中删除操作
- javascript - 如何阻止事件在 React 中被进一步处理
- linux - Docker 已卸载仍然 v 框无法正常工作
- database - 在 MS-ACCESS 如何创建查询以获取从未出售过 ProductId 为 13 或 Milk 1 Litre 的商店名称列表?来自下表:
- vb.net - 如何将 TIFF 文件转换为 ASCII Hex 以将 ZPL 发送到 Zebra 打印机