How to Ensure Correct SDK Versions for App Approval
Wrong SDK versions are one of the quietest causes of rejection. Google Play enforces a minimum targetSdkVersion. Apple requires the latest Xcode. Here is how to verify everything before you submit.
Google Play enforcement: Google Play requires new apps and updates to target an API level within one year of the latest Android release. As of 2026, apps must target API level 35 or higher. Submissions below this threshold are rejected automatically.
Android SDK version fields
compileSdkVersion
The API level your app is compiled against. Should always be the latest stable release.
Requirement: Must match or exceed the targetSdkVersion. Set to the latest stable API level.
targetSdkVersion
The API level your app is designed and tested for. Google Play enforces a minimum.
Requirement: Google Play requires targetSdkVersion to be within 1 year of the latest Android release. As of 2026: API 35 minimum.
minSdkVersion
The oldest Android version your app supports.
Requirement: No hard minimum, but below API 24 (Android 7) reaches very few active devices. Set based on your analytics.
buildToolsVersion
The version of the Android build tools used to compile your app.
Requirement: Should match or be close to your compileSdkVersion. Outdated build tools can produce incorrect DEX output.
How to check your Android SDK versions
Open app/build.gradle
Find the android { defaultConfig { } } block. Confirm compileSdkVersion, targetSdkVersion, and minSdkVersion are all explicitly set — do not rely on inherited values.
Run: ./gradlew dependencies
This outputs the full dependency tree including transitive dependencies. Look for any library pinned to a very old version or flagged with a deprecation warning.
Check the Google Play Console
In Play Console, go to Android vitals. It will flag if your targetSdkVersion is below the current requirement threshold.
Run lint
./gradlew lint generates an HTML report. The ObsoleteSdkInt and GradleDependency checks will flag SDK version issues directly.
iOS SDK version fields
iOS Deployment Target
The minimum iOS version your app supports. Set in Xcode Build Settings.
Requirement: Apple recommends supporting the two most recent major iOS versions. iOS 16+ covers 95%+ of active devices.
Xcode SDK
The iOS SDK version Xcode builds against. Tied to the Xcode version installed.
Requirement: App Store submissions must use the latest stable Xcode. Apple enforces this for new submissions within months of each Xcode release.
Swift version
The Swift language version used to compile your code.
Requirement: Keep within 1 major version of the current stable Swift release. Old Swift versions may not build with new Xcode.
Privacy manifest
PrivacyInfo.xcprivacy required since iOS 17 SDK.
Requirement: Required for all apps using tracking APIs, even transitively through third-party SDKs. Missing manifests cause rejection.
How to check your iOS SDK versions
Check Xcode version
Help > About Xcode. Compare against the current App Store submission requirement (Apple publishes this in the App Store Connect developer news). If you are behind by a major version, update before building.
Check Build Settings
In Xcode, select your target and go to Build Settings. Search for 'deployment target' and 'swift version'. Verify both are set to values consistent with your minimum iOS support.
Run: pod outdated
If you use CocoaPods, this command shows every pod with a newer version available. Third-party pods that depend on deprecated Apple APIs will surface here.
Check PrivacyInfo.xcprivacy
Open your project and verify that PrivacyInfo.xcprivacy exists at the root target level. If your app uses any of Apple's required reason APIs (UserDefaults, file timestamp, disk space, etc.), the manifest must declare them.
Third-party SDK checks
Deprecated SDKs removed
Google has removed support for several advertising and analytics SDKs. Check your dependencies against the current Google Play SDK Index.
Facebook/Meta SDK updated
Meta enforces minimum SDK versions in their developer portal. Submitting with an old Meta SDK can silently break login and analytics.
Firebase updated
Old Firebase versions may use deprecated APIs that trigger policy warnings. Run: firebase --version and compare against the current release notes.
No abandoned libraries
Libraries last updated 3+ years ago may reference deprecated APIs. Replace or fork them before submission.
No conflicting dependency versions
Gradle and CocoaPods both support lock files. Run a dependency audit before building your release APK or IPA.
Add SDK version checks to your release process
Pin your targetSdkVersion in a team-shared variable so it cannot drift between developer machines
Add a Gradle task or Makefile target that prints all SDK version fields before the release build starts
In CI/CD, fail the build if targetSdkVersion is below a minimum threshold — encode the current Google Play requirement as a constant
Subscribe to the Android developer newsletter and App Store Connect developer news to get advance notice of upcoming SDK version requirements
Run the AppTester Health Check before submission — it detects SDK version issues as part of the automated scan
Check SDK versions before you submit
The AppTester Health Check scans your APK, AAB, or IPA for SDK version issues, missing privacy manifests, and 7 other common rejection causes.