Uploading new build to TestFlight for React Native with Expo

17 November 2020

Release your React Native application to the App store
Photo by billjelen

This morning, I encountered a build issue during the release of my React Native application on iOS.

It’s not the first time and I think it’s coming from the last Xcode upgrade.
Here is how I solved the problem.

Update your cli to the last version

To identify if the problem is not coming from your machine you need to upgrade the expo cli tool:

npm install -g expo-cli

My error with expo upload:ios

When I want to release my build to production, I use these commands:

expo build:ios --release-channel production
expo upload:ios --latest

But today, the God of Cryptic Error Messages was on my side.

The call to the iTMSTransporter completed with a non-zero exit status: 1. This indicates a failure.

iTunes Transporter app error with React Native

If you pay attention to the message, you need to use the Transporter.app

We recommend using Transporter.app instead of the expo upload:ios command if you have any trouble with it.

Fixing the issue and upload with Transporter

Transporter is a simple and easy way to deliver content on the Apple Store Connect. Here is a half automated workflow to speed-up the process. First, we want to log the download URL for the standalone iOS binary:

expo url:ipa

You can download it with a curl

curl -o archive.ipa “$(expo url:ipa)”

open the finder with:

open .

Drag and drop your archive.ipa to the Transporter App:

Uploading your React Native application to App Store Connect with Transporter

Problem solved.
You can start to roll-out to Production.

Meet the author

David is a freelance developer and trainer specializing in cross-platform application development. He helped dozens of companies to ship their MVP and automate their process.

Gravatar for dleuliette@gmail.com

David Leuliette

Freelance React Developer


Be the first to receive insightful articles and actionable resources that help you to elevate your skills across every touch point.