7

現時点では、次の手順でローカル データベースの暗号化キーを設定できます。

 if(![MyDemo_MyDemoDB databaseExists]){
        SUPConnectionProfile* cp = [MyDemo_MyDemoDB
                                    getConnectionProfile];
        [cp setEncryptionKey:@"Yourkey"];
        [MyDemo_MyDemoDB closeConnection];
    }

そのため、ユーザーが ( SUPDataVaultに正しいパスワードを入力して) ログインに成功すると、次のエラーが表示されます。

ERROR sup_sqlite_db_ConnectionWrapperImpl.m:62 dynamicStatement: There is an exception file is encrypted or is not a database
2011-12-21 13:32:05.112 MyDemo10389:11603 MBODebugLogger: SUPPersistenceException SUPPersistenceException from find: -- sup_sqlite_db_StatementWrapperImpl: There is an exception null value for sqlite3_stmt
2011-12-21 13:32:05.225 MyDemo10389:11603 *** Terminating app due to uncaught exception 'SUPPersistenceException', reason: 'SUPPersistenceException from find: -- sup_sqlite_db_StatementWrapperImpl: There is an exception null value for sqlite3_stmt'

私が考えているのは、データベースは正常に作成されましたが、まだ暗号化されているということです。どうすれば復号化できますか?

4

1 に答える 1

4

実際には非常に簡単です。セッションを開始するたびにこれを行う必要がありました。

SUPConnectionProfile* cp = [MyDemo_MyDemoDB
                                    getConnectionProfile];
[cp setEncryptionKey:@"Yourkey"];
于 2011-12-26T10:35:28.423 に答える