我已经按照iOS官方SQLCipher网站上的文档进行操作。我导入了sqlite3.h。我添加了openssl和sqlcipher xode.proj。它们实际上都很好。
它正在加密数据库,我可以查询它们。除了关于sqlite3_key的这个小警告外,构建都很好。
我可以看到自定义脚本的逐步构建过程,一切都很好。
我可以在头文件中看到该函数的SQLITE_HAS_CODEC
条件在本机sqlite3中不存在,因为我们正在使用sqlite的sqlcipher版本。
我已将-DSQLITE_HAS_CODEC
添加到C标志和C ++标志,这适用于项目和目标构建设置。
除了此警告外,整体SQLCipher工作正常:
函数'sqlite3_key'的隐式声明在C99中无效
在Xcode中分析和存档二进制文件时不断弹出。
通过Debug构建它不会抛出此警告。
还有什么我还需要做的吗?
答案 0 :(得分:1)
我(仍然)假设您在调试和发布配置之间有一些不同的构建设置(例如“标题搜索路径”)。如果在Build Settings中找不到问题,我建议检查源文件的预处理输出:
在预处理输出中,在两个版本中搜索sqlite3_key()
声明。您还可以检查是否包含正确版本的“sqlite3.h”。没有标题搜索路径,就会有一行
# 1 "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/usr/include/sqlite3.h" 1 3 4
通过为SQLCipher正确设置Header Search Path,“sqlite3.h”的路径应该不同,因此您可以检查并再次比较“Running / Debug”和“Profiling / Release”输出。