New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
expo-build-properties doesn't set iOS deployment target correctly. #28476
Comments
I was wondering this too. I'm not sure that the "deploymentTarget" is the same as the iOS SDK version. I have my deploymentTaget in the expo-build-properties set to 13.4, and Apple emails me telling me that our app is build with SDK version 16.4. So we need to change the SDK version to 17.0 as per Apple, but per the expo-build-properties docs here, there doesn't seem to be an option for SDK in the Apple settings... |
The way I understand it is that deploymentTarget is effectively the minimum SDK version you plan on supporting. On the other hand, the build SDK is determined by which version of Xcode the app is built with. At the end of the day, you need to build with SDK17+ (which is Xcode 15.0+) but that SDK17 supports versions further back than 17. I believe RN/expo set a deploymentTarget of 13.4 as default so building with SDK17 should work all the way back to SDK13. If you are using EAS Build to build your project, check which version of Xcode is being used. I recently upgraded a project from Expo SDK49 to Expo SDK50 and with Expo SDK49 my last build was using Xcode 14.3.1 and after upgrading to Expo SDK50 it is now using Xcode 15.2. I am not sure if there is an option somewhere to set the Xcode version? It seems tied to the Expo SDK version by default but it might be configurable somewhere. If Xcode 15.3 is giving you the error, go to settings - locations and see which version of Xcode command line tools is being used, it should also be set to 15.3 (I guess this is actually what determines the build SDK version when building from the command line). edit {
"build": {
"production": {
"ios": {
"image": "macos-ventura-13.6-xcode-15.1"
}
}
} |
hi there! the deployment target means the minimal supported ios version for people to install your app. that is not the same as ios sdk version for building the source code. for ios sdk version, it is related to xcode version. according to the xcode doc the minimal xcode version to support ios sdk 17 is xcode 15.0. |
Summary
Recently my iOS app got submitted and Apple sent me an email saying "ITMS-90725: SDK version issue - This app was built with the iOS 16.4 SDK. Starting April 29, 2024, all iOS and iPadOS apps must be built with the iOS 17 SDK or later, included in Xcode 15 or later, in order to be uploaded to App Store Connect or submitted for distribution." So I used expo-build-properties and set the rule at app.config.js. But EAS keeps building my app with iOS 16.4. Why?
What platform(s) does this occur on?
iOS
SDK Version
49
Environment
expo-env-info 1.2.0 environment info:
System:
OS: macOS 14.4.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.11.1 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 10.2.4 - /usr/local/bin/npm
Managers:
CocoaPods: 1.13.0 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 23.4, iOS 17.4, macOS 14.4, tvOS 17.4, visionOS 1.1, watchOS 10.4
Android SDK:
API Levels: 30, 33
Build Tools: 30.0.2, 30.0.3, 33.0.0, 33.0.2, 34.0.0
System Images: android-30 | Google APIs Intel x86 Atom, android-UpsideDownCake | Google Play Intel x86_64 Atom
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9619390
Xcode: 15.3/15E204a - /usr/bin/xcodebuild
npmPackages:
expo: ^49.0.21 => 49.0.21
expo-router: ^2.0.0 => 2.0.14
react: 18.2.0 => 18.2.0
react-dom: 18.2.0 => 18.2.0
react-native: 0.72.6 => 0.72.6
react-native-web: ~0.19.6 => 0.19.9
npmGlobalPackages:
eas-cli: 7.6.0
expo-cli: 6.3.10
Expo Workflow: bare
Minimal reproducible example
module.exports = { plugins: [ [ 'expo-build-properties', { ios: { useFrameworks: 'static', deploymentTarget: '17.0', }, }, ] ], };
The text was updated successfully, but these errors were encountered: