# Unsupported SDK or Xcode version: which Xcode App Store Connect accepts > Upload refused for the SDK or Xcode version? Which Xcode builds Apple accepts, how to read DTXcode and DTSDKName with plutil, and what Apple says about betas. - Canonical page: https://obelisk.club/blog/unsupported-sdk-or-xcode-version-upload - Author: Peter Zhang - Published: 2026-11-01 - Tags: xcode, app-store-connect, sdk, debugging, indie If App Store Connect refuses an upload because of an unsupported SDK or Xcode version, archive the app again with a released Xcode that meets Apple's current minimum and upload the new build. On 1 November 2026 that minimum is Xcode 26 with the iOS 26 SDK (since April 28, 2026), and the newest release on Apple's releases page is Xcode 27.2 (build 27B52, October 29, 2026). Before uploading again, read `DTXcodeBuild` and `DTSDKName` from the built app's Info.plist: they tell you which Xcode actually made the archive, which is often not the one you think. Apple does not publish a help page for this message, so this guide sticks to the rules Apple does publish, and says where it is silent. ## The two rules a build can break **Too old.** Apple's Upcoming Requirements page says that since April 28, 2026, "Apps uploaded to App Store Connect must be built with Xcode 26 or later using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26, or watchOS 26." The App Store Connect help page "Upload builds" has the same rule as a table: | Target type | Built using | Uploaded using | |---|---|---| | iOS app, iOS app extension, watchOS app extension | Xcode 26 or later | Xcode 14 or later | | macOS app | Xcode 6 or later | Xcode 14 or later | | tvOS app | Xcode 26 or later | Xcode 14 or later | | visionOS app | Xcode 26 or later | Xcode 15 or later | The next step is already announced. Apple's "Submit your apps and games today" page and its September 9, 2026 news post say that starting April 2027, iOS and iPadOS apps must be built with the iOS & iPadOS 27 SDK or later (the submitting page adds "and target iOS 15 or later"), and tvOS, visionOS and watchOS apps with their 27 SDKs. Neither page gives a day in April. Our [ITMS-90725 guide](/blog/itms-90725-sdk-version-issue) covers this "too old" case and the error code that names it. **Not a release Apple has opened for submissions.** On the pages read for this guide, Apple does not state a rule about uploading builds made with a beta Xcode. What it does publish: - The [Releases](https://developer.apple.com/news/releases/) page labels each Xcode as a release or a beta, with its build number. On 1 November 2026: Xcode 27.2 (27B52, release), Xcode 27.1 (27A9275, release), Xcode 27.1 beta (27A9269), Xcode 27 (27A266a, release). - When a new SDK becomes submittable, Apple says so and names the Xcode to use. On September 9, 2026 ("App Store submissions now open for the latest OS releases"): "Download the Xcode 27 Release Candidate. Build your apps and games using the latest SDKs, test with TestFlight, and submit for review to the App Store." So the safe choice is a build labelled as a release on that page, or a Release Candidate that Apple's own announcement tells you to submit with. Archiving with a beta and hoping it goes through is not something Apple's pages support. ## How to fix it 1. **Find which Xcode made the archive** (next section). Do this first, because the fix depends on it. The [Swift and Xcode versions table](/tools/swift-xcode-versions) shows which Swift version each Xcode release ships with. 2. **Install a released Xcode.** Download it from the Mac App Store or Apple's releases page. Check that your Mac can run it: Apple's Xcode support page lists Xcode 27, 27.1 and 27.2 as needing macOS Tahoe 26.6 or later, and Xcode 26 through 26.3 as running on macOS Sequoia 15.6 to Tahoe 26.x. 3. **Make it the Xcode that builds.** If you keep a beta and a release side by side, check `xcode-select -p` and `xcodebuild -version` in the shell or on the build machine. Both print the developer directory and version they use. 4. **Archive again and upload.** If an earlier upload reached App Store Connect and then failed processing, Apple's "Build upload statuses" page says you can reuse the same build number for the next upload. 5. **Check the deployment target too.** Since September 9, 2026, Apple's Upcoming Requirements page says iOS and iPadOS apps must target iOS 13 or later. That is a separate rule from the SDK one. You can look up which SDK each Xcode includes, and what Apple requires on a given date, with the [Xcode SDK requirements tool](/tools/xcode-sdk-requirements). ## How to check: read the Xcode and SDK from the built app The Info.plist inside the built app records the toolchain. In an archive it is at `Products/Applications/.app/Info.plist`; in an `.ipa`, unzip it and look in `Payload/.app/`. ```bash APP="MyApp.xcarchive/Products/Applications/MyApp.app" plutil -extract DTXcode raw -o - "$APP/Info.plist" plutil -extract DTXcodeBuild raw -o - "$APP/Info.plist" # compare with Apple's releases page plutil -extract DTSDKName raw -o - "$APP/Info.plist" plutil -extract DTPlatformVersion raw -o - "$APP/Info.plist" ``` `plutil -extract raw -o -` prints a single value; it reads binary and XML property lists. Compare `DTXcodeBuild` with the build numbers on Apple's releases page: if it matches a beta, or is lower than the minimum Xcode, you have found the problem. As a check of the commands, on a Mac with macOS 27 the system Calculator app reports `DTXcode` 2700 and `DTXcodeBuild` 27A200c. Apple's Information Property List reference does not have pages for the `DT` keys, so Apple does not document their exact format. Treat them as a record of what built the app, not as something to edit by hand: changing them does not change the SDK the code was compiled against. ## FAQ ### Can I upload a build made with an Xcode beta to TestFlight? Apple's pages read for this guide don't say. The "Upload builds" page says the supported Xcode versions apply to uploads "for customer distribution or to testers using TestFlight", and Apple's September 9, 2026 news names the Release Candidate as the Xcode to test with TestFlight and submit. Use a release or an announced Release Candidate. ### Is a Release Candidate accepted? For Xcode 27, yes: Apple's September 9, 2026 news post tells you to download the Xcode 27 Release Candidate and submit for review with it. Apple says this per release in its news, so check the post for the version you use. ### I installed the new Xcode but the upload is still refused. Why? The archive was probably made by another copy of Xcode, often a beta still selected with `xcode-select`, or an older Xcode on a build server. `DTXcodeBuild` in the built app tells you which one it was. ### Does the April 2027 rule mean I need Xcode 27 now? No. Xcode 26 meets the current rule. From April 2027, Apple's pages say iOS and iPadOS apps need the iOS & iPadOS 27 SDK or later, which ships with Xcode 27. ### Do these rules apply to Mac apps? The "Upload builds" table lists macOS apps as built with Xcode 6 or later and uploaded with Xcode 14 or later. The Upcoming Requirements page has no macOS SDK minimum. ## Sources All read on 1 November 2026. - [Upcoming Requirements](https://developer.apple.com/news/upcoming-requirements/), Apple Developer News - [Submit your apps and games today](https://developer.apple.com/app-store/submitting/), Apple Developer - [App Store submissions now open for the latest OS releases](https://developer.apple.com/news/?id=k1mtkt1k), Apple Developer News, September 9, 2026 - [Releases](https://developer.apple.com/news/releases/), Apple Developer News - [Xcode Release Notes](https://developer.apple.com/documentation/xcode-release-notes) (Xcode 27, 27.1 and 27.2 notes), Apple Developer Documentation - [SDKs and system requirements](https://developer.apple.com/support/xcode/), Apple Developer - [Upload builds](https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds), App Store Connect Help - [Build upload statuses](https://developer.apple.com/help/app-store-connect/reference/app-uploads/build-upload-statuses), App Store Connect Help *Apple's requirements and dates change; check the pages above for current rules.*