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!
@ali711 Hi) Have you figured this out?! I faced with the same issue( This is my code:
Row.fetchOne, Row.fetchAll, Row.fetchCursor - all of this didn't give me any results. There are no errors, that can be caught in "do{} catch{}" block. So it looks like these functions for Geos and Proj are present but do nothing.
@Tybion You write code-snippets above, maybe you can know what's wrong?
I'm stuck here and need some help please, from anybody. Any ideas?