在模拟器和iOS编译的libsqlite
编译我的应用程序到iOS时遇到一些问题。 我正在使用sqlite3并导入为
#import <sqlite3.h>
那么,我只在我的Mac中find一个名为libsqlite3.0.dylib的文件,并将其复制到我的项目中。 当我编译它为iOS模拟器,它工作得很好。 但是,当我尝试编译iOS设备的应用程序时,它会在我执行sqlite函数(如_sqlite3_open等)的每个调用中引发错误(Apple Match-O链接程序错误)
我怎样才能编译到iOS设备?
谢谢!
而不是简单地复制图书馆,这样做:
-
在Xcode Navigator中,点击您的目标(最上面的条目)
-
去
Build Phases
,然后Link Binary With Libraries
-
在/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/中添加
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/
以防万一有人遇到和我一样的问题。 如果你是unit testing你的代码,将lib文件也添加到你的testing目标。
你有没有尝试像下面这样导入sqlite3库?
#import "sqlite3.h"
代替:
#import <sqlite3.h>
我发现在您的IOS应用程序中使用SQLite的最佳方式是构build您自己的SQLit库副本并将其包含在您的项目中。 libsqlite3.0.dylib是SQLite的一个非常旧的副本。
您可以轻松下载SQLite Amalgamation源代码并为其构build。 这给你最新的SQLite源代码,所有最新的错误修复和改进。
如果你可以打开Xcode并创build一个新的静态库项目,那么你有75%的方式。
一旦你有了静态库项目,包括你从SQLite Amalgamation下载的SQLite源,并设置一些预处理器选项,并closures并运行最新的代码。
有关完整的详细信息和示例源代码,您可以访问我的博客conedogers