spaceship - Launching fastlane into the next generation

“Spaceship is a Ruby library that exposes the Apple Developer Center API. It’s super fast, well tested and supports all of the operations you can do via the browser. Scripting your Developer Center workflow has never been easier! ”Up until now fastlane tools made use of front-end web scraping. This means, the tools used a headless web browser to interact with the Apple Developer Portal and iTunes Connect. While this is an easy solution to get started, I quickly ran into the limits of web scraping.

More and more issues were caused by this technique: The tools were slow and the users got random timeout errors. When using web scraping, the tools would immediately break after front-end design changes of the websites.

Upgrading fastlane

It was time to implement a better solution: By replacing the headless web browser with a plain HTTP client it was possible to speed up  sigh by 90% and make it much more stable at the same time. 

This allowed us to stub all HTTP requests to write tests and detect newly introduced errors faster.

What is spaceship?

Instead of implementing the HTTP client right into the individual tools, I decided to separate the communication layer and put it into its own reusable Ruby gem. This allows every developer to make use of it. 

spaceship is like Core Data for your Dev Center resources

You don’t care about the communication and how it works. You can simply interact with Ruby objects (e.g.  App, Certificate, …) and the changes will automatically be pushed to the Dev Center.

How can I get started?

There is a pre-release version of  sigh available to try, check out the  announcement to upgrade.

If you want to try spaceship directly, check out the  spaceship Project page with a very easy to follow documentation on how to use it. You’ll have to install spaceship first before you can start  irb (Interactive Ruby Shell).

What’s next?

The plan is to migrate all  fastlane tools to make use of spaceship. In the long term, spaceship will also implement the iTunes Connect JSON API (which is already documented  on GitHub).

Special thanks to zeropush.com for sponsoring spaceship.

Visit spaceship.airforce for more details.

Open on GitHub

Edit on GitHub

fastlane Example Setups

You want to see how Wikipedia , Product Hunt , MindNode and Artsy are using fastlane to automate their iOS app submission process? 

The above companies were so nice to open source their fastlane setups. I collected them and put it on GitHub.

Edit on GitHub

fastlane 1.0

I’m excited to announce that fastlane is now version 1.0, following the Semantic Versioning

Multi Platform Support 

The main reason for the success of fastlane was the great support for one specific platform. I was working hard on refactoring fastlane to handle both iOS and Mac projects with more platforms to come. This doesn’t change anything for your existing projects. You can already start using fastlane for Mac OS projects.

Check out the release notes for more information.

Auto Update 

Tired of manually updating fastlane each time a new release is available? Just add update_fastlane to your Fastfile and it will automatically update itself.

Documentation 

You can now view the latest documentation of available actions and their parameters right in your terminal, using the  fastlane action command.

Additionally, you can use the new  fastlane docs command to generate a documentation of all your available fastlane lanes with a short description.

New Configuration System 

All 45 built-in fastlane integrations were completely refactored to use a brand new configuration system. This way fastlane knows about the available parameters, which is used to generate the documentation. Additionally, this update makes testing much easier. More information available in  release 0.12.0.

Few more things

  • New version of sigh which can maintain your local provisioning profiles as well
  • Added teams, mandatory and tags options to the hockey integration
  • Improved documentation renderer
  • Improved handling of unstable networking connections
  • Fixed handling of some characters in the add_git_tag integration
  • Updated dependencies to all other fastlane tools
  • As always, just update usingsudo gem update fastlane.

I hope you like this release, as always you can send me feedback on Twitter @KrauseFx or via GitHub issues.

I spoke at NSConf about fastlane and Continuous Delivery:

Watch the talk here

Edit on GitHub