Ошибка: нет такой функции: sqlcipher_export на iOS - PullRequest
0 голосов
/ 12 марта 2019

Я установил SQLCipher через модуль pod. но я получаю эту ошибку, говоря Нет такой функции: sqlcipher_export . Я использовал FMDB и для SQLCipher я использую его подспец, то есть FMDB / sqlcipher. Я добавил

#import <SQLCipher/sqlite3.h>

ниже мой код:

NSString *docsDir;
NSArray *dirPaths; 
dirPaths = NSSearchPathForDirectoriesInDomains
(NSApplicationSupportDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];

databasePath = [[NSString alloc] initWithString:[docsDir stringByAppendingPathComponent: @"MyDB.db"]];

NSString *encryptDB = [docsDir stringByAppendingPathComponent:@"MyDB_enc.db"];

const char* sqlQ = [[NSString stringWithFormat:@"ATTACH DATABASE '%@' AS MyDB_enc KEY 'test123';",encryptDB] UTF8String];

//sqlite3 *unencrypted_DB;

if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {

    // Attach empty encrypted database to unencrypted database
    sqlite3_exec(database, sqlQ, NULL, NULL, NULL);

    // export database
    sqlite3_exec(database, "SELECT sqlcipher_export('MyDB_enc');", NULL, NULL, NULL); //gives error

    // Detach encrypted database
    sqlite3_exec(database, "DETACH DATABASE MyDB_enc;", NULL, NULL, NULL);

    sqlite3_close(database);
}
else {
    sqlite3_close(database);
    NSAssert1(NO, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
}

databasePath = [docsDir stringByAppendingPathComponent:@"MyDB_enc.db"];

Может кто-нибудь подсказать мне, как решить эту проблему

1 Ответ

0 голосов
/ 14 марта 2019

Я столкнулся с этой проблемой при установке POD, но когда я использовал файл sqlite3.h после компиляции двоичного файла, он работал нормально.

...