Delphi XE8 Firemonkey ships with support for IOS Universal Binaries (IOS32+IOS64) and your third party static libraries also need to support both architectures. Juggling different static libraries for those different CPU architectures in IOS32, IOS64, and IOS Simulator (armv7 armv7s, arm64, i386, x86_64) can be complex. Luckily there is a way to combine all of the static libraries together into a single file using a command line tool on Mac OSX called ‘lipo’. I ran across this method while we were converting libSOX over to IOS32+IOS64. I found the solution to this over on Developer Diogo Tridapalli’s blog post. Basically you compile each of your static libraries for the target CPU architecture into separate static .a library files. Once complete you then use a command line like the following to combine them into a single file:

<strong>lipo -create './build-arm/libStaticLibDemo.a' './build-arm64/libStaticLibDemo.a' './build-i386/libStaticLibDemo.a' './build-x86_64/libStaticLibDemo.a' -output 'libStaticLibDemo.a'</strong> 1 <strong> lipo - create './build-arm/libStaticLibDemo.a' './build-arm64/libStaticLibDemo.a' './build-i386/libStaticLibDemo.a' './build-x86_64/libStaticLibDemo.a' - output 'libStaticLibDemo.a' < / strong >

For libSOX I had an oDesk developer create a SH script for OSX to handle all of the compiling and ‘lipo’ command line for creating the universal static library. You should be able to use these types of universal static libraries in Delphi XE8 Firemonkey, C++Builder, and Appmethod (and probably XE5, XE6, and XE7) on IOS.

Download the sample SH script for creating a IOS Universal static library for Delphi XE8 Firemonkey.