08 Aug

Announcing motion-provisioning: Simplified provisioning for RubyMotion iOS, tvOS and macOS apps

Eventually, every iOS and macOS developer has to go through the motions of trying their app on a device or submitting it to the AppStore. This requires navigating the complex Developer Portal website to generate certificates and provisioning profiles. Reading tons of tutorials and Googling the cryptic error messages (if you're lucky to get one printed at all).

To get you acquainted with the terminology and steps involved, we have prepared a code signing guide that you can find in the developers section of our website.

But RubyMotion is a toolchain with a strong focus on developer productivity, so we wanted to go one sted further. That's why we're really excited to introduce motion-provisioning, a small library that manages certificates and profiles automatically, from the command line, with minimal configuration.

By adding a few lines to your Rakefile and providing your Apple developer ID, motion-provisioning will take care of generating the required certificates and provisioning profiles as part of the process of building your application.

You dont have a paid developer account? Dont worry! You can use your free developer account to generate a development certificate and try your app in your device. This is specially useful for users of our free plan, RubyMotion Starter.

This is what a typical configuration for an iOS app would look like:

Motion :: Project :: App . setup do | app | app . name = 'My App' app . identifier = 'com.example.myapp' app . development do app . codesign_certificate = MotionProvisioning . certificate ( type: :development , platform: :ios ) app . provisioning_profile = MotionProvisioning . profile ( bundle_identifier: app . identifier , app_name: app . name , platform: :ios , type: :development ) end app . release do app . codesign_certificate = MotionProvisioning . certificate ( type: :distribution , platform: :ios ) app . provisioning_profile = MotionProvisioning . profile ( bundle_identifier: app . identifier , app_name: app . name , platform: :ios , type: :distribution ) end end

motion-provisioning is open source and available on Github.

We encourage you to try it, and report any issues you may encounter. Contributions are also welcomed!