带有 SQLITE FTS3 Xcode 版本的 iPhone 应用程序无法正常工作

标签 iphone xcode sqlite release fts3

我的 iPhone 应用程序使用 SQLITE 的 FTS3 函数(特别是 MATCH 和 OFFSET)。这些对于我的优化搜索算法至关重要。我通过在项目中的一个名为 SQLite 的组下包含三个 SQLITE 源文件(即 sqlite3.c、sqlite3.h 和 sqlite3ext.h)来实现 FTS3。我从框架组中删除了之前对 libsqlite3.dylib 库的引用。我将“其他 cflags”和“其他 C++ 标志”项目设置设置为 -DSQLITE_ENABLE_FTS3=1。 (我也尝试简单地将这些标志设置为 -DSQLITE_ENABLE_FTS3。)

该应用程序在调试和发布版本的模拟器中都表现完美。该应用程序在 iPhone 上也能完美运行,但仅限于调试版本!

发布版本不会为使用 MATCH 和 OFFSET 关键字的任何 SQL 调用返回结果行。我的具体问题是,“当我在连接 iPhone 的情况下构建发布版本时,我的启用 FTS3 的 SQLITE 版本是否未与我的应用程序一起安装?”我在 Mac 上相应的 Release-iphoneos 子文件夹中看到 sqlite.o 对象文件。它比 Debug-iphoneos 子文件夹中的小一点,但我得出的结论是,这是由于缺少调试符号造成的。

我迫切需要一个解决方案,因此任何想法都将不胜感激。

最佳答案

好的,对于那些可能从我的古怪经历中受益的人,这就是解决方案。经过一番折腾后,我决定放松发布版本中的一些优化。我这样做只是为了获得有关问题的另一条线索,而不是作为解决方案。果然,代码完美运行!然后,我说“好吧,让我把优化放回最小和最快,继续我的调查。”神奇的是,一切仍然有效!总而言之,我所做的唯一一件事就是更改项目设置中的优化,然后将其放回去!当然,所有这一切都是经过大量调试、清理所有目标后重新编译等之后的。直到我更改并将优化重置为原始值之前,一切都没有产生任何影响。疯狂,但这就是我的故事,我会坚持下去。希望这可以帮助遇到此问题的其他人。

关于带有 SQLITE FTS3 Xcode 版本的 iPhone 应用程序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266584/

相关文章:

iphone - 如何在 XCode5+ 中创建 Interface Builder 插件?

iphone - 如果值大于 10,则使用一个函数处理该值每 10 个,然后使用另一个函数处理该值的其余部分

iphone - 使用 NSMutableSet 时出错

ios - 具有相同优先级操作的 GCD 并发队列?

cocoa-touch - 为 Interface Builder 创建自定义按钮

ios - Swift 返回错误 "method ' beginTrackingWithTouch(_ :withEvent: )' with Objective-C selector ' beginTrackingWithTouch:withEvent :' conflicts"

swift - Xcode 9.2 异常调试自定义键盘扩展失败

ruby-on-rails - 使用rake db:create命令时出错(Ruby on Rails)

sqlite - 如何在Flutter sqflite上的sql语句中插入var?

swift - 使用 fromCString 从 DS 读取时解包 Optional 值时意外发现 nil