Apple regularly provides platform updates to add new features, fix bugs, and continue to improve the experience for everyone who uses our products. As part of that process, we offer beta software for developers — as well as a Public Beta Software Program — so that people can test their apps against upcoming software updates, address pesky bugs, and share feedback with Apple about upcoming changes and improvements.
While we encourage people to only install beta software on secondary devices, you may still find that some of your customers want to run your app while using a beta version of an operating system. We’ve put together a few recommendations to help you test and troubleshoot your apps when they’re running in a beta environment, collect actionable feedback from people, and provide feedback of your own.
Test early, test often
Once a new beta is released, we recommend downloading and running it on development devices as soon as possible so that you can test it against your existing apps. Not only does this let you confirm that your app functions properly, it also puts you in a great position to explore the latest platform APIs and features.
The earlier you test, the earlier you can identify possible bugs, issues, or regressions and flag them to Apple engineers. It’s also your best opportunity to register feedback about new features and influence future operating system updates.
Triage the trouble
Sometimes, changes to frameworks in an early beta may seriously affect your app. This is never a great feeling, but don’t panic! Chances are, many of your fellow developers are in the same position.
To start addressing the problem, first do a bit of triage to identify what’s going on. Is it a system issue? Is it a latent bug in your own code? Isolate your issue by creating a minimally reproducible case in a new Xcode project. When you focus on the code that causes the bug, you can make the problem easier to troubleshoot — and it also saves you from attaching your entire app project to a feedback submission.
If a beta does reveal an existing bug in your code, you may be able to fix it immediately and provide an update that makes your app more stable for both the current release and future releases.
Sometimes you may be able to isolate the code in such a way that you can also reproduce the issue on currently-released software. If that’s the case and if you need help fixing it, submit a Technical Support Incident for code-level support.
If an issue with the beta itself is preventing you from providing a fix, it’s time to file feedback. Even if you believe others have filed this bug before, you should always send in a report: Your reproduction steps and data could be the key that unlocks the problem — or pushes the issue to a higher level of prioritization.
Amidst all the work you’re already doing on your app, you may be tempted to post a blanket statement to your website or within your app that you aren’t providing support for people who use beta software. We strongly discourage this approach: Your customers may be fellow developers or people who need to run beta software for other reasons, and deterring them from running your app may make them feel shut out — or lose trust in your software.
Instead, if you’re running into a serious problem on a beta that may make for a sub-par experience and you won’t be able to address it in an update, consider sharing your issue — as well as the steps you’re taking to address it — on your website to help inform people who might need to use your app.
While people running beta software won’t be able to leave reviews for your app in the App Store, they can still provide valuable feedback. Consider creating an easy method for your customers to provide bug reports — they may find something you’ve missed!
Additionally, if you’re struggling to fix an issue brought on by a beta update, consider reaching out to the broader developer community through platforms like the Apple Developer Forums. Your question may be able to help others who may be struggling with similar challenges.
Future-proof your app
Outside of the beta release cycle, it’s worth regularly evaluating your project (and any server-side code you maintain) to consider if there are ways you can improve and future-proof aspects of your app. A few questions to ask yourself:
- Are there warnings in your Xcode project that you can fix or remove?
- Do you have any code that relies on a specific platform or deprecated API that you can update or make platform-agnostic?
- Are you using any third-party frameworks that rely on deprecated code?
- Can you improve your app’s error handling to continue gracefully when encountering unexpected issues?
Powered by WPeMatico