如何在Swift Package Manager中为SQLite.swift开启FTS5支持
解决SPM构建项目中SQLite.swift启用FTS5支持的问题
SQLite.swift官方支持通过SPM启用FTS5扩展,具体实现步骤如下:
1. 修改Package.swift的依赖配置
在项目的Package.swift中,将原来引用的默认SQLite产品替换为带FTS5支持的SQLiteFTS5产品:
修改前的target依赖示例:
.target( name: "YourTargetName", dependencies: [.product(name: "SQLite", package: "SQLite.swift")] ),
修改后的target依赖:
.target( name: "YourTargetName", dependencies: [.product(name: "SQLiteFTS5", package: "SQLite.swift")] ),
根package的dependencies部分无需修改,保持原有配置即可:
let package = Package( // ...其他配置 dependencies: [ .package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.14.1") ], // ...其他配置 )
2. 代码中使用FTS5功能
配置完成后,即可正常使用SQLite.swift的FTS5相关API,比如创建FTS5虚拟表:
import SQLite let db = try Connection("/path/to/db.sqlite3") let documents = Table("documents") let id = Expression<Int64>("id") let content = Expression<String>("content") try db.run(documents.create(temporary: false, ifNotExists: true) { t in t.column(id, primaryKey: true) t.column(content) // 启用FTS5 t.virtualTable(.fts5) })
补充说明
SQLite.swift的SPM包预定义了多个功能变体产品,除SQLiteFTS5外,还有SQLiteCipher(带加密支持)等,可根据需求选择对应产品引用。这些变体的定义可在SQLite.swift仓库的Package.swift文件中查看。
内容的提问来源于stack exchange,提问作者Jason Sperske
相关产品推荐
相关产品推荐

