Неявное объявление функции 'sqlite3_key'? - PullRequest
7 голосов
/ 15 июня 2011

Я работаю над Шифрование файлов SQLite . Я успешно добавил sqlCipher & crypto frameworks в мой проект.

Теперь, когда я пытаюсь скомпилировать свое приложение в этой строке

int rc = sqlite3_key(database, [key UTF8String], strlen([key UTF8String]));

там написано неявное объявление функции 'sqlite3_key'

Так что вышеупомянутая строка "неявное объявление" звучит для меня как функция, но не объявленная Но где я должен объявить?

При поиске через Интернет в этой статье говорится, что расширение шифрования SQLite (SEE) не доступно публично. Я должен купить его стоимостью около 2000 долларов.

СМ. -> http://www.hwaci.com/sw/sqlite/see.html

Так что это единственная причина, по которой я получаю неявное объявление и ложный ответ в процессе шифрования sqlite?

Ответы [ 2 ]

20 голосов
/ 02 декабря 2012

Если вы используете SQLCipher , вам нужно определить SQLITE_HAS_CODEC в флагах C вашего приложения. Вот и все.

6 голосов
/ 23 июня 2011

Да, именно поэтому вы получаете это предупреждение компилятора. Функция sqlite3_key () не определена в версии libsqlite3, включенной в iOS. Добавление в объявление функции не поможет - это исправит это предупреждение компилятора, но это просто будет означать, что вы получите ошибку компоновщика, поскольку функция нигде не определена.

Если вы приобрели SEE, вы, вероятно, могли бы создать свою собственную копию SQLite, встроить ее в свое приложение и просто не использовать системный libsqlite3. Это означает, что вам нужно будет сказать «да», когда процесс отправки в магазин приложений спросит, включает ли ваше приложение шифрование, что означает дополнительные документы и время, прежде чем вы сможете отправить приложение. Я не уверен, есть ли какие-либо четкие признаки того, что Apple примет это даже тогда - возможно, они это сделают, но, как известно, они удивляют людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...