diff --git a/CHANGELOG.md b/CHANGELOG.md index 790cb57ba7..2728d58d5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,15 @@ This is the log of notable changes to EAS CLI and related packages. ### ๐ŸŽ‰ New features +- Add `auto`, `sdk-50` and `sdk-49` image tags. ([#2298](https://github.com/expo/eas-cli/pull/2298) by [@szdziedzic](https://github.com/szdziedzic)) + ### ๐Ÿ› Bug fixes ### ๐Ÿงน Chores +- Deprecate the `default` image tag. ([#2298](https://github.com/expo/eas-cli/pull/2298) by [@szdziedzic](https://github.com/szdziedzic)) +- Deprecate iOS images with Xcode version lower then 15. ([#2298](https://github.com/expo/eas-cli/pull/2298) by [@szdziedzic](https://github.com/szdziedzic)) + ## [7.7.0](https://github.com/expo/eas-cli/releases/tag/v7.7.0) - 2024-04-05 ### ๐ŸŽ‰ New features diff --git a/packages/eas-cli/src/build/runBuildAndSubmit.ts b/packages/eas-cli/src/build/runBuildAndSubmit.ts index 8080a1b3b0..d16b808463 100644 --- a/packages/eas-cli/src/build/runBuildAndSubmit.ts +++ b/packages/eas-cli/src/build/runBuildAndSubmit.ts @@ -132,6 +132,36 @@ export async function runBuildAndSubmitAsync( }. ${learnMore('https://docs.expo.dev/build-reference/variables/')}` ); + for (const buildProfile of buildProfiles) { + if (buildProfile.profile.image && ['default', 'stable'].includes(buildProfile.profile.image)) { + Log.warn( + `The "image" field in the build profile "${buildProfile.profileName}" is set to "${buildProfile.profile.image}". This tag is deprecated and will be removed in the future. Use other images or tags listed here: https://docs.expo.dev/build-reference/infrastructure/` + ); + } + + if ( + buildProfile.profile.image && + [ + 'macos-monterey-12.4-xcode-13.4', + 'macos-monterey-12.3-xcode-13.3', + 'macos-monterey-12.1-xcode-13.2', + 'macos-ventura-13.4-xcode-14.3.1', + 'macos-ventura-13.3-xcode-14.3', + 'macos-monterey-12.6-xcode-14.2', + 'macos-monterey-12.6-xcode-14.1', + 'macos-monterey-12.6-xcode-14.0', + ].includes(buildProfile.profile.image) + ) { + Log.warn( + `The "image" field in the build profile "${buildProfile.profileName}" is set to "${ + buildProfile.profile.image + }". This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting "macos-sonoma-14.4-xcode-15.3" or "latest" as your image value. This image will be removed from EAS Build on May 29th, 2024. ${learnMore( + 'https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates' + )}` + ); + } + } + await ensureExpoDevClientInstalledForDevClientBuildsAsync({ projectDir, nonInteractive: flags.nonInteractive, diff --git a/packages/eas-json/schema/eas.schema.json b/packages/eas-json/schema/eas.schema.json index 6b3beb29b9..8764db57be 100644 --- a/packages/eas-json/schema/eas.schema.json +++ b/packages/eas-json/schema/eas.schema.json @@ -239,25 +239,32 @@ "anyOf": [ { "enum": [ - "default", + "auto", "latest", - "stable", + "sdk-50", + "sdk-49", "ubuntu-22.04-jdk-17-ndk-r21e", "ubuntu-22.04-jdk-11-ndk-r21e", - "ubuntu-22.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-11-ndk-r21e", + "ubuntu-22.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-11-ndk-r19c", "ubuntu-20.04-jdk-8-ndk-r19c" ], "markdownEnumDescriptions": [ - "- React Native `>=0.68.0` - `ubuntu-22.04-jdk-11-ndk-r21e`\n- React Native `<0.68.0` - `ubuntu-20.04-jdk-8-ndk-r19c`", - "`ubuntu-22.04-jdk-17-ndk-r21e`", - "`ubuntu-22.04-jdk-11-ndk-r21e`" + "When using this option the build image is selected automatically based on the project configuration, detected Expo SDK and React Native versions.", + "The latest Android image currently available. It is resolved to `ubuntu-22.04-jdk-17-ndk-r21e`. The `latest` to image mapping will be updated as new images are released.", + "The recommended image for SDK 50 builds: `ubuntu-22.04-jdk-17-ndk-r21e`", + "The recommended image for SDK 49 builds: `ubuntu-22.04-jdk-11-ndk-r21e`" ] }, { - "type": "string" + "deprecated": true, + "enum": ["default", "stable"], + "markdownEnumDescriptions": [ + "This image tag is deprecated, please use other image tags or images directly instead.", + "This image tag is deprecated, please use other image tags or images directly instead." + ] } ] }, @@ -363,34 +370,47 @@ "anyOf": [ { "enum": [ - "default", + "auto", "latest", + "sdk-50", + "sdk-49", "macos-sonoma-14.4-xcode-15.3", "macos-ventura-13.6-xcode-15.2", "macos-ventura-13.6-xcode-15.1", - "macos-ventura-13.6-xcode-15.0", - "macos-ventura-13.4-xcode-14.3.1", - "macos-ventura-13.3-xcode-14.3", - "macos-monterey-12.6-xcode-14.2", - "macos-monterey-12.6-xcode-14.1", - "macos-monterey-12.6-xcode-14.0" + "macos-ventura-13.6-xcode-15.0" ], "markdownEnumDescriptions": [ - "`macos-ventura-13.4-xcode-14.3.1`", - "`macos-sonoma-14.4-xcode-15.3`" + "When using this option the build image is selected automatically based on the project configuration, detected Expo SDK and React Native versions.", + "The latest iOS image currently available. It is resolved to `macos-sonoma-14.4-xcode-15.3`. The `latest` to image mapping will be updated as new images are released.", + "The recommended image for SDK 50 builds: `macos-ventura-13.6-xcode-15.2`", + "The recommended image for SDK 49 builds: `macos-ventura-13.6-xcode-15.2`" ] }, { "deprecated": true, "enum": [ + "default", + "stable", "macos-monterey-12.4-xcode-13.4", "macos-monterey-12.3-xcode-13.3", - "macos-monterey-12.1-xcode-13.2" + "macos-monterey-12.1-xcode-13.2", + "macos-ventura-13.4-xcode-14.3.1", + "macos-ventura-13.3-xcode-14.3", + "macos-monterey-12.6-xcode-14.2", + "macos-monterey-12.6-xcode-14.1", + "macos-monterey-12.6-xcode-14.0" ], "markdownEnumDescriptions": [ - "This image is deprecated, please use one of the more recent images instead.", - "This image is deprecated, please use one of the more recent images instead.", - "This image is deprecated, please use one of the more recent images instead." + "This image tag is deprecated, please use other image tags or images directly instead.", + "This image tag is deprecated, please use other image tags or images directly instead.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates.", + "This image is using Xcode in version lower then 15. Apple's new requirement states that starting on April 29th, 2024, apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. Start using Xcode 15 image today by setting `macos-sonoma-14.4-xcode-15.3` or `latest` as your image value. This image will be removed from EAS Build on May 29th, 2024. Learn more: https://expo.dev/changelog/2024/03-29-eas-build-upcoming-ios-images-updates." ] } ]