Install compiler dependencies
brew install automake autoconf libtool libxml2 pkg-config
brew link libxml2
Build libspatialite
git clone https://github.com/gstf/libspatialite-ios.git
cd libspatialite-ios
make
The result is a folder, lib, containing several .a
files, as well as an include
folder containing many .h
files.
Create a new XCode project
Copy the libspatialite binaries and "include" folder into a folder named "libspatialite" in the XCode project folder.
In the XCode project's "Build Settings", you'll need to set the library and header search paths:
Library Search Paths:
Drag the .a
files into your project.
From the "Build Phases" window, add the following to the section "Link Binary With Libraries":
- libz.dylib
- libxml2.2.dylib
- libc++.dylib
- libcharset.1.0.0.dylib
- libiconv.dylib
Now you should be able to use spatialite! To test if everything worked, just make your AppDelegate output the spatialite version.
Add the following to AppDelegate.m
#include <sqlite3.h>
#include <spatialite/gaiageo.h>
#include <spatialite.h>
In your application:didFinishLaunchingWithOptions:
method, add:
spatialite_init (0);
printf("Spatialite version: %s\n", spatialite_version());
Compile and run and you should see the version output in the console!
Hi Aaron, I came across this gist when looking for some info on using Spatialite with iOS. Thanks for providing the build instructions! I just wondered how you're using this on iOS?
I followed your instructions and can call
spatialite_init
just fine, get the version number, etc, but when I connect to a database and try to use Spatialite functions likeMakePoint
orTransform
etc, I get "function not found", so it seems like I'm connecting to a vanilla Sqlite DB.Is there any extra step needed to initialise a connection with Spatialite? If you've got an open source project using this feel free to just point me to the repo and I can study at my own page.
Thanks!