Remotely deploying iOS test builds for Cinder Apps


#1

Hi all,

Not looking for answers, just thought I’d share in the event someone runs into similar problems in the future and they come looking to the forums.

I recently developed my first iOS app using Cinder. It’s not a traditional app in the sense that it’s going to be distributed via the App Store, but rather I only needed to deploy the app on a handful of devices in several locations to help manage installations.

To handle the distribution I used HockeyApp, which provides a web interface for versioning and distributing to devices. It basically allows you to create AdHoc builds of the app, upload to the web interface, then install on the chosen device. This is technically intended for testing builds, but it suits my need of deploying an app to run installations on only a few devices. HockeyApp also allows you to add their SDK to your app that tracks crashes etc, which you’ll need to add natively (I didn’t include it as it wasn’t required for my use case).

In order to distribute the app you need to archive it, which creates the .ipa file that you upload to HockeyApp. You find this in the Xcode under Product > Archive ( You’ll need to have ‘Generic iOS device’ selected as the Active Scheme. The next part, which took me a while to figure out, but may be more obvious to others as I’ve never worked with iOS before, was linking an archivable version of libcinder. In addition, this needs to be built enabling full bitcode.

To build the cinder archive that you need to link against, open the cinder Xcode project, you need to:

A) change the build architecture to arm64 under build settings > Architecture and build settings > Valid Architectures.

B) enable full bitcode by changing build settings > Build options (iOS) to ‘yes’. ( you can find it by searching for ‘bitcode’)

C) Select ‘cinder_iphone’ as your scheme and 'Generic iOS Device; as the target, then archive it by selecting Product > Archive. When building is complete, the Xcode archive manager will open and show your archive. Select the newly build archive and hit ‘export’. Select “Build products” that will allow you to export the libcinder.a file. Export to a location of your choosing, for example the desktop, and the cinder lib from eg. ‘cinder_iphone 2018-02-26 11-49-11/Products/usr/local/lib/libcinder.a’ to somewhere you can easily link it to. For example I put mine in ‘/Cinder/lib/ios/Archive/libcinder.a’

D) In your Cinder App, link to this version of the lib in Building Settings > Other Linker Flags. You may have to enable full bitcode again in your app for the archiving to work.

E) Select ‘Generic iOS Device’ as your target build the archive using Product > Archive. When the archive manager opens, select to export the build contents.

F) Upload the ‘YourProject.ipa’ to HockeyApp. On the iOS device you wish to use, download the HockeyApp iOS app, login to your account, authorize the device, and install the app.

This is all from memory, so there may be one or two things missing, but these are the general steps I took to get this to work.