Why you shouldn’t use xcode-beta?
0. Since it is in beta, expect bugs but you already know that.
1. Sometimes there are features in beta 1 that will be removed in beta 2
For example in Xcode 13 beta 3, there’s a feature where annotation is required for code that are not available for application extensions. Which is good for some but annoying for people who needs to update a huge code base.
In Xcode 13 beta 5, they removed it.
🤦🏻
2. TestFlight blocks apps created with old beta versions
Sometimes when you are uploading the app to TestFlight, you’ll get this error
ERROR ITMS-90534: “Invalid Toolchain. Your app was built with an unsupported SDK or version of Xcode. If you plan to submit this build to the App Store, make sure you are using the versions listed in https://help.apple.com/xcode/mac/current/#/devf16aefe3b or later.”
It means that there’s a newer Xcode beta than the one you are using.
Here’s a cool website with api to get updated https://xcodereleases.com
3. App store connect will reject your app
PLA 2.3
Your app or its metadata contains references to a pre-release version of Apple software, products, or hardware. Apps with compatibility references to a pre-GM version of an Apple operating system SDK or pre-released Apple products or hardware are not in compliance with the Apple Developer Program License Agreement.
Specifically, section 2.3 states:
“Apple may provide You with pre-release versions of the Apple Software or related services that constitute Apple Confidential Information and are subject to the confidentiality obligations of this Agreement.”
This means that your dev machines and build machines should always have one stable xcode version.
We use the xcode-install ansible role to maintain this on our machines.
If the above doesn’t stop you from using beta, kudos and thank you for your efforts in making Xcode great!