我正在使用SQLite.swift和SQLCipher通过cocoapods。
我在 SQLite.swift 文件中收到错误不明确地使用"SQLITE_DETERMINISTIC":连接.swift在第 590 行失败。 代码段如下所示。
var flags = SQLITE_UTF8
#if !os(Linux)
if deterministic {
flags |= SQLITE_DETERMINISTIC
}
#endif
我可以通过解锁 pod 文件并将"SQLITE_DETERMINISTIC"替换为"SQLCipher.SQLITE_DETERMINISTIC"或"SQLite.SQLITE_DETERMINISTIC"来解决此问题。 但由于很多原因,这很糟糕。
重现步骤:
- 使用 Xcode 11.3
- 创建一个新项目(单一视图应用程序就可以了(
- 创建一个 Podfile(下面的示例(
- 运行"容器安装"
- 打开工作区并编译
- 生成失败并显示错误
示例 podfile:
use_frameworks!
target 'TestSQLite' do
pod 'SQLite.swift/SQLCipher', '~> 0.12.2' # with SQLCipher
end
任何帮助将不胜感激。
SQLite.swift版本0.12.2,并且您没有指定SQLCipher版本。请检查 SQLCipher 版本,该版本可能是 Podfile.lock 文件中的 4.3.0。在这种情况下,请将 SQLCipher 版本设置为 4.2.0。清理并生成项目。它会起作用。您可以更新容器
pod 'SQLCipher', '~>4.2.0'
pod 'SQLite.swift/SQLCipher', '~>0.12.0'
在命令行中运行以下命令
Pod 解体
容器安装
谢谢