有人在Monotouch的sqlite数据库上成功使用过密码吗?

the*_*tkd 24 sqlite xamarin.ios

我有一个使用sqlite数据库的Monotouch应用程序.我想加密数据库所以我这样做:

_mainConnection = new SqliteConnection("Uri="+finalDB);
_mainConnection.Open();
_mainConnection.ChangePassword("mypassword");
Run Code Online (Sandbox Code Playgroud)

但是,它不工作(在模拟器和iPhone上).它收到此错误:

at(包装器托管到本机)Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_rekey(intptr,byte [],int)<0x0005c> at(包装器托管到本机)Mono.Data.Sqlite.UnsafeNativeMethods.sqlite3_rekey(intptr ,字节[],int)<0x0005c>位于Mono.Data的Mono.Data.Sqlite.SQLite3.ChangePassword(byte [])<0x00053>,位于Mono.Data的Mono.Data.Sqlite.SqliteConnection.ChangePassword(byte [])<0x0004b> .Sqlite.SqliteConnection.ChangePassword(string)<0x0005b>

有人在Monotouch的sqlite数据库上成功使用过密码保护吗?

Myt*_*ral 0

只是大声思考,但这可能是由于 iPhoneSDK 附带的 sqlite 的 dynlib 不是线程安全的吗?

作为替代方案,您可以尝试查看 WWDC Vid 209,然后在应用程序外部时锁定/加密数据库。