【发布时间】:2016-10-03 14:41:24
【问题描述】:
我有一个项目,我使用 2 个 Pod,一个使用 SQLCipher 的私有 Pod,以及使用系统 sqlite3 (-l"sqlite3") 的 Google/Analytics。
当我使用 Xcode 7 构建我的项目时,一切正常,但是当我使用 Xcode 8 构建时,应用程序在尝试打开 sqlite db 时崩溃,原因如下:
dlopen(/usr/lib/libsqlite3.dylib, 0x00000001)
dlopen(/usr/lib/libsqlite3.dylib) ==> 0x1feec4f0
dyld: lazy symbol binding failed: Symbol not found: _sqlite3_key
Referenced from: /var/containers/Bundle/Application/524A1D1F-CC6A-4F7C-B86F-CC65EAF17BD5/MyApp.app/MyApp
Expected in: /usr/lib/libsqlite3.dylib
测试:
| | iOS 8 | iOS 9 | iOS 10 |
| Xcode 7 | OK | OK | OK |
| Xcode 8 | CRASH | CRASH | * |
* app didn't crash but could not open db
Xcode 8 改变了什么? (https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html)
有关如何解决此问题的任何建议?
【问题讨论】:
-
This question 似乎表明
sqlite3_key()不包含在 iOS 版本的 sqlite3 中。你也可以关闭这个库的延迟加载吗? -
@Droppy 你会如何建议我关闭延迟加载?
-
@Daniel 我也遇到了类似的问题,能否请您提出您的解决方案!
-
@Droppy sqlite3_key() 以前使用 X-code 7 和 iOS-9。升级到 X-code 8 和 iOS-10 后,这开始产生问题。你有什么建议!!
-
@Daniel 您对此问题有什么解决方案吗?我也面临同样的问题。
标签: xcode google-analytics sqlite cocoapods sqlcipher