Launching fastlane into the next generation

Open on GitHub

Spaceship is a Ruby library that exposes the Apple Developer Center and App Store Connect 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!

Blazing fast communication using only a HTTP client
Object oriented access to all resources
Resistant against front-end design changes of the Dev Portal
One central tool for the communication
No more web scraping
> 90% test coverage

Example spaceship code

# Create a new app
app =!(bundle_id: "com.krausefx.app_name", name: "Spaceship App")
# Use an existing certificate
cert = Spaceship.certificate.production.all.first
# Create a new provisioning profile
profile = Spaceship.provisioning_profile.app_store.create!(bundle_id: app.bundle_id,
                                                         certificate: cert)
# Print the name and download the new profile
puts "Created Profile " +

Be the first to try new tools, new features and hear about fastlane related announcements.
Only relevant information will be sent to you and you can unsubscribe any time.

Speed difference in sigh

Introducing spaceship


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 App Store 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).

Get started with spaceship today

Open on GitHub