You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XCode 12.5.1下SQLite.swift 0.13.0调用Connection.key方法报无该成员错误

问题原因

  • 默认安装的SQLite.swift是官方标准版,底层调用系统原生的SQLite库,没有内置加密能力,key加密相关API仅在SQLCipher集成版本中提供
  • Carthage默认拉取主分支的标准版编译产物,不会自动启用SQLCipher编译选项,因此生成的Framework中没有加密相关的方法定义

解决方法

第一步:重新编译带SQLCipher支持的版本

不需要修改Cartfile的依赖地址,仅需要替换原有Carthage执行命令,传入指定的编译配置:

# iOS平台如果需要调试版用Debug-SQLCipher,发布版用Release-SQLCipher
carthage update --platform iOS --configuration Release-SQLCipher

注:如果之前已经安装过标准版SQLite.swift,建议先删除Carthage目录、清空Carthage缓存后再执行上述命令,避免旧版本残留

第二步:替换项目引入的Framework

从Carthage/Build对应平台目录下,删除原有导入的SQLite.framework,替换为新编译生成的SQLiteCipher.framework

第三步:修正代码导入语句

将原有导入的SQLite模块替换为SQLiteCipher,修改后代码示例:

import Foundation
import SQLiteCipher
import SQLCipher

let db = try Connection("\(dbName_UserData)")
let code: String = self.getEncryptCode()
try? db.key(code) // 此时可正常调用key方法

内容的提问来源于stack exchange,提问作者Beginnerrrrrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:48:03