Automating iOS app releases with Runway

Francesco Pretelli
5 min readMay 23, 2023

One of the main gripes of being an iOS developer, is having to use App Store Connect.

Don’t get me wrong, it provides lot of opportunities, great functionalities and allow us indie developers to distribute our creations to end users.

But… let’s say… it could be improved 😬.

What’s wrong with App Store Connect?

That spinning circle..

Nothing is intrinsically wrong, but if you’ve ever tried submitting apps, you’ll know it can be slow and painful. A few main things come to mind:

You need to login.. always!
That small checkbox that says “Remember me”? Yes that’s a lie!

It’s slow and.. breaks
It’s now almost a joke in the developer community. Apple web services and products are clumsy… That loading circle.. oh.. you will see it sooo much. And sometimes it never stops. Random errors appear, or pages just stop loading.

And did I tell you that it’s.. slooooowwww… 😫

So.. many.. clicks.. pages.. loading..
You know when you open a page, after a good 2–4 seconds of waiting, and you think, “oh, finally I can work”, then you proceed to click an item and… loading again..

Even elements inside the loading page, needs to load again.
Do you want to modify metadata for a language? Loading..
Do you want to change screenshots? Loading..
Do you want to change prices? Loading.. Loading.. Loading..

I will stop here but these are just small examples of how something required to deliver your product can hamper your productivity and make you waste lot of time.

Enter Runway

I didn’t know about Runway until one of my coworkers brought it to my attention.

Runway is a service that allows you to orchestrate your mobile app releases, connecting with multiple services, including…. App Store Connect!

Now, I know what you are thinking: I can automate most of app release processes using Fastlane. Yes! And I did it.. once, it only took few hours.

But then I had to change something few months later and I couldn’t remember how, so I had to go back reading the documenation.

Oh and I had to update the tooling.. but then something else broke.. so I had to fix it.

Eventually, the time saved was mostly spent dealing with Fastlane and instead of App Store Connect.

And yes, I am lazy, I know for the majority of devs out there, Fastlane works great, but I want to spend as less time as possibile dealing with tools and configurations. I just want to work on the product (in a sporadic kind of way because, life, and I’m lazy).

How does Runway work

I’ll try to explain it, FYI there is a great live sandbox section on their website where it’s possible to try it directly without registering: https://www.runway.team/sb/home

Basically it boils down to few steps:

  1. Connect your App
  2. Connect your repository
  3. Set up the workflow

Everything is pretty intuitive, and setting up the workflow it only consists in configuring the steps, which ones to take, which ones to skip, etc.

Here is a screenshot from my latest release:

This means I mostly don’t have to deal with App Store Connect for normal releases.
I can easily fillout the “What’s new in this version”, for multiple languages in less than 60 secs (If I want it, because you can also set up standard release notes so no need to do it).
I can change keywords, screenshots, and metadata with justa couple of clicks.
Releases can be automated, based on conditions or manually triggered.

Let me show you a couple of screenshots to explain better some time saving features:

Release notes

Update release notes and keywords. Clicking on a different language doesn’t make you wait 10 seconds before loading!

Screenshots

Uploading or editing screenshots it’s just simple and quick.

Bigger team? No problem

All of the above looks great, but where Runway really shines, is by providing many advanced features to handle complex releases.

Some highlights:

  • Different users with different permissions. As an example the marketing team could deal with metadata without worry about technical tasks.
  • Integration with third party tools: Runway supports multiple tools like Jira, Asana, TestRail, Slack, Xcode Cloud, Firebase, Bugsnag, Sentry, Datadog, Ampliture, LaunchDarkly and more. This allows to create automations based on third party integrations.
  • Checklists and Approvals: to make sure everything is in order and to proceed to next steps
  • Advanced steps like Regression Testing, Feature Readiness, Approvals, etc.
  • Stats about releases

There is actually a lot to unpack and discover.

Any downsides?

From my experience, there are no downsides, but there are a couple of things to consider:

Flexibility
The Runway process is quite rigid, there are predefined steps that you can enable or disable, but it’s not possible to have a tailored workflow.

Teething issues
Runway is a very promising product but it feels a bit green at this moment:

  • Sometimes you are not aware of what it’s doing, there is no status on the UI. This is a bit confusing.
  • The UX is simple, but sometimes some settings are in the workflow, others are in app settings, let’s say once you start using it becomes more familiar, but at the beginning it’s a bit confusing

Nothing is a show-stopper, and the team is incredibly responsive and helpful, so I am confident it will keep improving and get better over time!

Conclusion

Finally, there is a free version, it’s quite convenient to try it out with basic functionalities.
For indie developers should cover most of the requirements of publishing an app.

Hope it helps! ✌️

--

--

Francesco Pretelli

Engineering Manager - Tokyo. I write about everything, from tech to daily stuff.