Xcode
Xcode is a complete developer toolset for creating apps for Mac, iPhone, iPad, Apple Watch, and Apple TV. Xcode brings user interface design, coding, testing, debugging, and submitting to the App Store into a unified workflow.
Downloading and updating Xcode
The current release of Xcode is available as a free download from the Mac App Store. The Mac App Store will notify you when an update is available or you can have macOS update automatically as it becomes available.
The latest beta version and previous versions of Xcode can be downloaded from the Downloads page. To download Xcode, simply sign in with your Apple ID. Apple Developer Program membership is not required.
Using Xcode
Get step-by-step guidance on how to use Xcode to build, test, and submit apps to the App Store.
Submitting apps to the App Store using Xcode
Xcode provides an integrated workflow for Apple Developer Program members to prepare and submit apps to the App Store. Use the latest version of Xcode available on the Mac App Store to submit your apps or, when available, the latest Release Candidate from the Downloads page.
Don't submit apps built using beta software, as beta versions of Xcode, Operating Systems, and SDKs are for development and testing only.
Learning about changes to Xcode
To learn about the latest features and capabilities in Xcode, see What’s New in Xcode. For update details in the latest released versions, including each beta release, see the Xcode Release Notes.
Minimum requirements and supported SDKs
Xcode Version | Minimum OS Required | SDK | Architecture | OS | Simulator | Swift |
---|---|---|---|---|---|---|
Xcode 12.5 | macOS Big Sur 11 | iOS 14.5 macOS 11.3 tvOS 14.5 watchOS 7.4 DriverKit 20.4 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.5 iPadOS 13-14.5 macOS 10.9-11.3 tvOS 9-14.5 watchOS 2-7.4 | iOS 10.3.1-14.5 tvOS 10.2-14.5 watchOS 3.2-7.4 | Swift 4 Swift 4.2 Swift 5.4 |
Xcode 12.4 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.4 macOS 11.1 tvOS 14.3 watchOS 7.2 DriverKit 20.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.4 iPadOS 13-14.4 macOS 10.9-11.1 tvOS 9-14.3 watchOS 2-7.2 | iOS 10.3.1-14.4 tvOS 10.2-14.3 watchOS 3.2-7.2 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.3 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.3 macOS 11.1 tvOS 14.3 watchOS 7.2 DriverKit 20.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.3 iPadOS 13-14.3 macOS 10.9-11.1 tvOS 9-14.3 watchOS 2-7.2 | iOS 10.3.1-14.3 tvOS 10.2-14.3 watchOS 3.2-7.2 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.2 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.2 macOS 11 tvOS 14.2 watchOS 7.1 DriverKit 20 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.2 iPadOS 13-14.2 macOS 10.9-11 tvOS 9-14.2 watchOS 2-7.1 | iOS 10.3.1-14.2 tvOS 10.2-14.2 watchOS 3.2-7.1 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12.1 | macOS Catalina 10.15.4 (Intel-based Mac) macOS Big Sur 11 (Apple silicon Mac) | iOS 14.1 macOS 10.15.6 tvOS 14 watchOS 7 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14.1 iPadOS 13-14.1 macOS 10.9-11 tvOS 9-14 watchOS 2-7 | iOS 10.3.1-14.1 tvOS 10.2-14 watchOS 2-7 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 12 | macOS Catalina 10.15.4 (Intel-based Mac) | iOS 14 macOS 10.15.6 tvOS 14 watchOS 7 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 9-14 iPadOS 13-14 macOS 10.6-10.15.6 tvOS 9-14 watchOS 2-7 | iOS 10.3.1-14 tvOS 10.2-14 watchOS 3.2-7 | Swift 4 Swift 4.2 Swift 5.3 |
Xcode 11.7 | macOS Catalina 10.15.2 | iOS 13.7 macOS 10.15.6 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.7 iPadOS 13-13.7 macOS 10.6-10.15.6 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.7 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.6 | macOS Catalina 10.15.2 | iOS 13.6 macOS 10.15.6 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.6 iPadOS 13-13.6 macOS 10.6-10.5.6 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.6 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.5 | macOS Catalina 10.15.2 | iOS 13.5 macOS 10.15.4 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.5 iPadOS 13-13.5 macOS 10.6-10.15.4 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.5 tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.4.x | macOS Catalina 10.15.2 | iOS 13.4 macOS 10.15.4 tvOS 13.4 watchOS 6.2 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.4.x iPadOS 13-13.4.x macOS 10.6-10.15.4 tvOS 9-13.4 watchOS 2-6.2 | iOS 10.3.1-13.4.x tvOS 10.2-13.4 watchOS 3.2-6.2 | Swift 4 Swift 4.2 Swift 5.2 |
Xcode 11.3.x | macOS Mojave 10.14.4 | iOS 13.3 macOS 10.15.2 tvOS 13.3 watchOS 6.1.1 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.3 iPadOS 13-13.3 macOS 10.6-10.15.2 tvOS 9-13.3 watchOS 2-6.1.1 | iOS 10.3.1-13.3 tvOS 10.2-13.3 watchOS 3.2-6.1.1 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11.2.x | macOS Mojave 10.14.4 | iOS 13.2 macOS 10.15.1 tvOS 13.2 watchOS 6.1 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.2.x iPadOS 13-13.2.x macOS 10.6-10.15.1 tvOS 9-13.2 watchOS 2-6.1 | iOS 10.3.1-13.2.x tvOS 10.2-13.2 watchOS 3.2-6.1 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11.1 | macOS Mojave 10.14.4 | iOS 13.1 macOS 10.15 tvOS 13 watchOS 6 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13.1 iPadOS 13-13.1 macOS 10.6-10.15 tvOS 9-13 watchOS 2-6 | iOS 10.3.1-13.1 tvOS 10.2-13 watchOS 3.2-6 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 11 | macOS Mojave 10.14.4 | iOS 13 macOS 10.15 tvOS 13 watchOS 6 DriverKit 19 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-13 iPadOS 13-13 macOS 10.6-10.15 tvOS 9-13 watchOS 2-6 | iOS 10.3.1-13 tvOS 10.2-13 watchOS 3.2-6 | Swift 4 Swift 4.2 Swift 5.1 |
Xcode 10.3 | macOS Mojave 10.14.3 | iOS 12.4 macOS 10.14.6 tvOS 12.4 watchOS 5.3 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-12.4 macOS 10.6-10.14.6 tvOS 9-12.4 watchOS 2-5.3 | iOS 10.3.1-12.4 tvOS 10.2-12.4 watchOS 3.2-5.3 | Swift 4 Swift 4.2 Swift 5 |
Xcode 10.2x | macOS Mojave 10.14.3 | iOS 12.2 macOS 10.14.4 tvOS 12.2 watchOS 5.2 | x86_64 armv7 armv7s arm64 arm64e | iOS 8-12.2 macOS 10.6-10.14.4 tvOS 9-12.2 watchOS 2-5.2 | iOS 8.1-12.2 tvOS 9-12.2 watchOS 2-5.2 | Swift 4 Swift 4.2 Swift 5 |
Providing feedback and reporting bugs
Your feedback goes a long way toward making Xcode even better. With Feedback Assistant, you can report issues or request enhancements to APIs and tools. Provide detailed information about issues, including your system and developer tool versions, and any relevant crash logs or console messages. To ask questions and find answers from Apple engineers and other developers, visit the Apple Developer Forums.
Invalid private key and certificate pairing
If you receive an error message saying, "Xcode could not find a valid private-key/certificate pair for this profile in your keychain,” the Keychain Access application on your Mac is missing either the public or private key for the certificate you’re using to sign your app.
This often happens when you're trying to sign and build your app from a different Mac than the one you originally used to request your code signing certificate. It can also happen if your certificate has expired or has been revoked. Ensure that your app’s provisioning profile contains a valid code signing certificate, and that the Keychain Access application on your Mac contains that certificate, the private key originally used to generate that certificate, and the WWDR Intermediate Certificate.
For instructions on how to resolve this and other code signing errors, review the Code Signing Support page.
Apple security updates
For information on the security content of Xcode updates, visit the Apple security updates page.