Spatialite和iOS

我正在尝试构build在iOS平台上使用的最新版Spatialite,并没有取得太大的进展。 我已经下载了以下库的最新版本,并试图把它们放到一个项目中(每个项目都作为自己的目标)并将它们构build为一个静态库。

  • Spatialite(3.0.1合并)
  • GEOS(每晚在20121114上build立)
  • PROJ.4(4.8.0)

每个下载包含数十个与脚本,标题和源代码混合的文件。 从这里的步骤不清楚,哪些应该加载,哪些不应该加载。 我已经尝试将每个目录中的所有文件导入到自己的组中,但无济于事,因为我的Xcode版本与示例中使用的版本不同,所以我在第2步中被卡住了。 当添加PROJ.4位Xcode问我是否要创build一个“外部构build系统项目”。

我也尝试从这个post中采取Lionel的项目,并更新所有软件的版本。 不幸的是,Xcode在新的源代码中抛出了数十个警告,并引发了一些错误。 如有必要,我可以分享这些。 更进一步,我甚至把他的输出(一个静态库和头文件),并把他们带到另一个项目,但由于某种原因,编译器抛出错误,说他们找不到“sqlite3”。 我已经将SQLite3添加到了项目中,但是并没有完全清除。

我也尝试过在这个主题上跟进,但我不能提问,所以我不能问原来的用户他/她是如何完成的。

最后一个问题是:

有谁知道如何用Xcode 4.5和iOS 6构build最新版本的Spatialite及其配套库(GEOS,PROJ.4)?

如果是这样,你可以分享你是如何做到的吗? 我想从概念上理解发生的事情。

我知道两种替代方法,都为我工作得很好。

  1. 从libspatialite-ios获取Makefile和补丁, input make
  2. 使用Cocoapods和pod称为“空间”或更一般的SpatialDBKit

两者都会给你目前的4.1.1版本,但对大多数用途来说没问题。

通过CocoaPods:

安装pod安装的依赖关系

 brew install automake autoconf libtool 

然后在您的XCode项目中添加您的Podfile模板:

 pod init 

添加空间站点依赖项:

 vi Podfile 

并在主目标中添加这一行

 pod 'spatialite', '4.1.1' 

如果Podfile中存在项目,则添加工作空间

 workspace 'YourWorkspaceName' 

 pod install 

高枕无忧。 完成后用XCode打开工作区