iPhone iOS 2.0到iOS 4.0 SQLite兼容性

我希望我的应用与iOS 3.0和iOS 4.0兼容。

我打算使用SQLite的原因很多。

现在:我应该如何处理SQLite? 我应该只使用iOS 2.0附带的SQLite提供的function吗?

更新:

在Xcode 3.2.3中,我可以将基本SDK设置为iOS 4.0

SDKROOT = iphoneos4.0

以及iOS 2.0的部署目标

IPHONEOS_DEPLOYMENT_TARGET = 2.0

我明白,iOS 2.x不是直接支持,但这并不意味着你不能向后兼容…正如Rudiger指出的那样,开发一个向后兼容的应用程序将是一个痛苦的工作。 但是你真的认为有没有更多的iOS 2.x的iPod触摸?

无论如何,感谢您关于libsqlite3.dylib的信息,因为2009年10月升级( http://www.sqlite.org/changes.html )中引入了外键支持,所以我一直坚持使用SQLite,所以它不会在iOS 2.x和3.x设备上可用…对吗?

来自sqlite3.h的SQLite 3版本号:

3.4.0 – iPhone OS 2.2.1
3.6.12 – iPhone OS 3.0 / 3.1
3.6.22 – iPhone OS 4.0
3.7.2 – iPhone OS 4.3
3.7.7 – iPhone OS 5.0
3.7.13 – iPhone OS 6.0 / 7.0 / 8.0
3.8.5 – iPhone OS 8.2
3.8.10.2 – iPhone OS 9.0

你不必依赖于sqlite的SDK版本。 在你的项目中编译sqlite3是很容易的,它具有这些优点,例如:

  • 使用最新的sqlite3版本
  • 你可以有外键支持,和/或…
  • r *树支持(用于快速范围/地理空间查询)

看看为iOS开发准备的https://github.com/mirek/CoreSQLite3

iOS 2.0不再直接支持最近的SDK。 针对iOS 3.x可以做,但苹果公司表示,你应该使用最新的SDK每次提交一个应用程序,如果最近不支持构build2.x应用程序,你可能不应该使用它。 他们还把3.x中的一些东西从2.x和4.x中贬值了出来,你不能保证它仍然可用。

增加Jamone所说的是正确的。 libsqlite3.dylib没有改变,因为我已经在iOS3和iOS4中使用和testing了它,没有任何改变。 我不知道从iOS 2到iOS 3.我认为你会发现很难得到一个单一的应用程序在所有3个操作系统的工作,或者至less是一个有限的应用程序,因为你将被限制在iOS 2中可用的function

我个人并没有改变我原来为2.0开发的一个应用程序中的SQL代码,现在在App Store中,这个应用程序正在4.0 SDK(但部署目标设置为3.0)的基础上构build。 所以我会说,你不必担心这些版本之间的SQLite,除非你故意使用一些SQLitefunction,还没有出现在2.0

您可以从AdMob中find一些有趣的使用统计信息: http : //metrics.admob.com/ 。 我现在找不到具体的链接; 我上次检查(2010年3月)时,运行iOS <3.0的设备仅仅低于5%。 那么是否值得继续针对这个家庭取决于你呢? 我自己已经放弃了对<3.0的支持。