Ios 未找到架构i386的“\u sqlite3\u密钥”符号
嗨,我用这个SQLCipher来加密我的sqlite,但是当我编译时遇到了这个错误Ios 未找到架构i386的“\u sqlite3\u密钥”符号,ios,sqlcipher,Ios,Sqlcipher,嗨,我用这个SQLCipher来加密我的sqlite,但是当我编译时遇到了这个错误 "_sqlite3_key", referenced from: -[LCAppDelegate application:didFinishLaunchingWithOptions:] in LCAppDelegate.o Symbol(s) not found for architecture i386 它发生在我在AppDelegate中使用此代码时 #import <sqlite3.h&g
"_sqlite3_key", referenced from:
-[LCAppDelegate application:didFinishLaunchingWithOptions:] in LCAppDelegate.o
Symbol(s) not found for architecture i386
它发生在我在AppDelegate中使用此代码时
#import <sqlite3.h>
...
NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
stringByAppendingPathComponent: @"sqlcipher.db"];
sqlite3 *db;
if (sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK) {
const char* key = [@"BIGSecret" UTF8String];
sqlite3_key(db, key, strlen(key));
if (sqlite3_exec(db, (const char*) "SELECT count(*) FROM sqlite_master;", NULL, NULL, NULL) == SQLITE_OK) {
// password is correct, or, database has been initialized
} else {
// incorrect password!
}
sqlite3_close(db);
}
有人知道怎么解决这个问题吗?请帮帮我 您没有为i386编译它-查看教程 将i386添加到有效的拱门&要构建的拱门
=>只有模拟器是i386默认情况下,最新的Xcode更新不再为armv7s体系结构构建 当前的Xcode 6等将${ARCHS_STANDARD}定义为armv7、arm64 此外,每当您更新Xcode时,它总是缠着您删除您自己对要构建的体系结构的定义,以便它能够为您做出决定。如果你屈服于这种坚持,那么你会发现你将不再为ARMV7构建你的东西 armv7s指令集可以在苹果的A6 iPhone 5和A6X iPad 4 CPU中找到。在iphone5s、iPad Air、iPad Mini Retina中发现的以下苹果A7已经转移到64位架构arm64 当苹果在Xcode中添加了对构建ARMV7的支持时,他们让很多使用二进制构建的第三方库(如SQLCipher)的开发人员感到困惑 解决方法很简单 1.在左侧导航区域中,单击project 2.点击构建设置 3.在体系结构中,您可以在其他SDK下面看到另一个体系结构,单击它您将获得两个选项-标准体系结构armv7、arm64-其他 4.选择Other,您将获得另一个popover,因为已经有一个名为$ARCHS_STANDARD的条目,您需要通过单击popover底部的+按钮添加另一个名为armv7s的条目。如下图所示 然后,开发者的链接器将挑选出应用程序所需的架构切片。 5.如果在有效架构中,如果架构armv7s不存在,则添加它 完成所有这些之后,您的主要架构应该如下所示
您将需要在项目中添加libsqlite3.dylib,并仅为Yeshow构建活动体系结构。要将i386添加到archs中,您可以指导我吗??抱歉,因为我是新手。在教程中,请参见截图5