After weeks of working on our AR game project at Apple Developer Academy, we finally reached a milestone that felt just as exciting as finishing the code itself: publishing to TestFlight.
Up until then, our game only lived inside Xcode and on our own iPhones. Putting it on TestFlight meant we could finally share it with others, get feedback, and see it running on different devices. It felt like a huge step — our project suddenly became real.
🛠️ Why TestFlight Matters
TestFlight is Apple’s platform that lets developers distribute apps to testers before going live on the App Store. For many iOS developers, the first time publishing to TestFlight is a rite of passage.
For us, it was about more than testing. It was about:
- Seeing our AR game outside of Xcode.
- Letting mentors and peers try it hands-on.
- Learning how the review and publishing process actually works.
⚔️ The Process
Publishing to TestFlight wasn’t as simple as hitting “build & run.” The process involved:
- Archiving the build in Xcode.
- Making sure our bundle IDs, signing, and profiles were correct.
- Uploading the build to App Store Connect.
- Waiting for Apple’s automated review (yes, even TestFlight builds need approval).
- Finally, sending invites so testers could install the app.
📚 What I Learned Along the Way
This was my first time going through the whole TestFlight workflow, and I discovered a few things that weren’t obvious at first:
-
Internal vs External Testing → I found out there are actually two types of TestFlight distribution.
- Internal → quick, only for your team, no review needed.
- External → for a wider audience, but requires Apple’s review process.
-
Bundle Identifier Rules → I learned that once you use a bundle identifier, you can’t reuse it, even if you delete the app. This forced me to think carefully about naming conventions.
-
App Icon Requirements → At one point, I couldn’t publish because my logo didn’t meet Apple’s criteria (it had alpha transparency). I had to go back, adjust the logo, and try again.
-
Documentation is Key → I spent a lot of time on Apple Developer Documentation. It turned out to be my best resource whenever I hit a confusing step.
💭 Reflections
This milestone taught me that:
- Shipping is part of learning → building features is only half the journey, publishing them completes the loop.
- Apple’s ecosystem has hidden rules → bundle identifiers, app icons, and test types all matter.
- Documentation is your friend → whenever I was stuck, Apple Developer Documentation had the answers.
- Milestones are worth celebrating → it might just be TestFlight, but for us, it meant our project was ready to be shared.
Looking back, publishing to TestFlight was more than just a technical step. It was a moment where our hard work as a team turned into something real that others could experience.