tzeejay icon

About

Archive

Github

Apple Testflight - Same version multiple builds

08.04.2020

TLDR: Increment the version number by one and set the build number to a lower number than what you were previously using. Maybe even to 0 to start over with builds for that particular version of your app. Example: Version 1.5 (500) -> Version 1.6 (0)


Recently I had to send a few builds of Guardian to Testflight in preparation of cool new features but I was unable to figure out how send multiple builds with different build numbers but the same version number to the service to incrementally test small changes. It lead to me burning version numbers out of frustration in between App Store releases. Obviously that looks weird, and it bothered me since Apple’s own Developer technologies Marketing page showed right at the top exactly what I was trying to achieve.

Screenshot taken from developer.apple.com


I started searching the internet for a solution since I wasn’t able to figure it out, surely somebody had run into this misunderstanding before and posted a solution. To my surprise though I found various Stackoverflow threads explaining that the example presented by Apple as well as what I had seen from being a tester myself for friends Apps simply wasn’t possible.

Since this clearly wasn’t true, I went back to the Testflight page on Apple’s Developer website and noticed what I had previously missed. The build number was reset in their example, or rather not incremented by one. The build number stayed at 0 while the version number went from 1.6 to 1.7. I quickly exported a new build of Guardian that I had worked on all day and with the version incremented by one from 1.2.4 to 1.2.5, and the build reset from 115 to 0. Xcode archived, signed and uploaded the build just fine. To quickly test my theory I incremented the build number from 0 to 1 which Xcode archived, signed and uploaded just fine once again.

I hope this helps somebody having the same issues with Testflight. Apple’s systems can be hard to use sometimes and error message are usually not very helpful, but we shouldn’t forget that designing a system like this isn’t particularly easy either, and I wouldn’t know if I’d be any better at it.