免责声明:不确定这是否是我的项目和sqlcipher之间的链接问题,我对xcode打开时如何运行程序缺乏了解,或者我的代码是否不正确。
我有一个正常工作的mac应用程序,当它在xcode上运行时,它使用sqlcipher加密和解密数据库文件。
唯一的问题是,当我将程序导出到一个未经签名的mac osx应用程序或运行由xcode生成的.app文件时,当应用程序运行时,我会得到一个错误代码14 (无法打开数据库文件) (sqlite3open给出SQLITE_OK)。
attachCmd = [NSString stringWithFormat:
@"ATTACH DATABASE \"%@\" AS outputDB KEY '%@';", outFile, key];
if ((sqlerror = sqlite3_exec(db, ((const char*) [attachCmd UTF8String]), NULL, NULL, NULL)) == SQLITE_OK) {
...
}我不确定我是否有静态库链接问题,或者我的代码/sqlcipher的代码问题。
发布于 2014-07-23 22:01:30
弄明白了:我的模拟器可以访问沙箱,而发布应用程序却没有。
因此,我不得不添加项目设置沙箱的“功能”选项卡来修复这个问题。
https://stackoverflow.com/questions/24920386
复制相似问题