Friday 12 October 2012

Using QuantLib on the iPad: Part IV - Submitting the Application to the App Store


My objective is to submit an application to the App Store using the QuantLib framework. The first part to build and test the framework using a simple application I completed a few months ago. Due to work and other commitments, I had still to submit a test application to the App Store.  By submitting a test application, I would know if the QuantLib (and boost) frameworks were suitable as a platform for further development.

The process to do this is well documented. From the documentation "Before you can submit the archive to the App Store, it must pass validation tests." These include checks that the binary is signed, that the binary does not contain unsupported system calls and has the correct binary architecture for the target platform (iPhone 3GS/4/5/iPad/etc) amongst other checks. It's a great shakedown of the framework build and passing the test means that the application is architecturally "sound" for the App Store.

Since last writing about QuantLib on the iPad, Apple have released a new version of Xcode 4.5.1 and dropped support for armv6 binaries.

I found this the hard way when first using Xcode 4.5.1. My build gave the following error:

ld: file is universal (2 slices) but does not contain a(n) armv7s slice: /Volumes/Home/Users/philipbarnes/frameworks/ql.framework/ql for architecture armv7s clang: error: linker command failed with exit code 1 (use -v to see invocation)

So I updated my scripts to add armv7 support and immediately found the same problem with my boost framework build.

To make life easy, I visited github and found a version of boostoniphone that supported the armv7s library. I have started using the huuskpe fork of boostoniphone which builds boost 1.51.0, the latest stable version.

Once setup, I built a new version of the QuantLib framework using the latest 1.2.1 release. Rebuilding the FX Vanilla Swap Example application proved the framework.

The next step was to submit this to the App Store for verification. To do this, I created a New App submission on itunesconnect with generic icons and data.



This is needed because Xcode submits the binary to the Apple servers for validation and needs an application record for some of the tests and to check code signing.

Once setup, the application was built with the iOS device as the target and an Archive as the Product. This is pretty standard for iPad development.


As you can see, this succeeded with no errors. The final thing to do was to submit the binary archive to the Apple servers for validation.


Which was successful. Based on this, I know that the QuantLib and boost frameworks do not have any technical issues with the App Store, so I can develop and publish iPad applications using them.

1 comment:

  1. Great story...makes me miss the Piggly Wiggly of my youth...oh and good ol Southern Fried Chicken. ipad part.

    ReplyDelete