我的 iPhone 应用程序使用 SQLITE 的 FTS3 函数(特别是 MATCH 和 OFFSET)。这些对我优化的搜索算法至关重要。我通过在一个名为 SQLite 的组下在我的项目中包含三个 SQLITE 源文件,即 sqlite3.c、sqlite3.h 和 sqlite3ext.h 来实现 FTS3。我从 Frameworks 组中删除了我之前对 libsqlite3.dylib 库的引用。我将“其他 C 标志”和“其他 C++ 标志”项目设置设置为 -DSQLITE_ENABLE_FTS3=1。(我也尝试简单地将这些标志设置为 -DSQLITE_ENABLE_FTS3。)
该应用程序在模拟器中完美地执行调试和发布版本。该应用程序在 iPhone 上也能完美运行,但仅适用于调试版本!
发布版本不返回任何使用 MATCH 和 OFFSET 关键字的 SQL 调用的结果行。我的具体问题是,“当我在连接 iPhone 的情况下构建发布版本时,我的启用 FTS3 的 SQLITE 版本是否没有与我的应用程序一起安装?” 我在我的 Mac 上的相应 Release-iphoneos 子文件夹中看到了 sqlite.o 对象文件。它比 Debug-iphoneos 子文件夹中的要小一些,但我认为这是由于缺少调试符号。
我迫切需要一个解决方案,所以任何想法都将不胜感激。