'SQLite.swift/SQLCipher' error: ambiguous use of 'SQLITE_DETERMINISTIC'

'SQLite.swift/SQLCipher' error: ambiguous use of 'SQLITE_DETERMINISTIC'

我正在通过 cocoapods 使用 SQLite.swift 和 SQLCipher。

我在 SQLite.swift 文件中收到 'SQLITE_DETERMINISTIC' 的错误用法不明确:Connection.swift 在第 590 行失败。代码段如下所示。

        var flags = SQLITE_UTF8
        #if !os(Linux)
        if deterministic {
            flags |= SQLITE_DETERMINISTIC
        }
        #endif

我可以通过解锁 pod 文件并将 'SQLITE_DETERMINISTIC' 替换为 'SQLCipher.SQLITE_DETERMINISTIC' 或 'SQLite.SQLITE_DETERMINISTIC' 来解决此问题。但出于很多原因,这很糟糕。

重现步骤:

  1. 使用Xcode11.3
  2. 创建一个新项目(Single View App 即可)
  3. 创建 Podfile(下面的示例)
  4. 运行 'pod install'
  5. 打开工作区并编译
  6. 构建失败并出现错误

示例 Podfile:

use_frameworks!


target 'TestSQLite' do
    pod 'SQLite.swift/SQLCipher', '~> 0.12.2' # with SQLCipher
end

如有任何帮助,我们将不胜感激。

SQLite.swift 版本 0.12.2 而您没有指定 SQLCipher 版本。请检查 Podfile.lock 文件中的 SQLCipher 版本,可能是 4.3.0。在这种情况下,将 SQLCipher 版本设置为 4.2.0。清理并构建项目。它会起作用。您可以更新 pods

pod 'SQLCipher', '~>4.2.0'

pod 'SQLite.swift/SQLCipher', '~>0.12.0'

运行 在命令行中执行命令

pod 分解

吊舱安装

谢谢