Skip to content
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

[ios] Bump deployment target to 13.4 #25063

Merged
merged 5 commits into from
Oct 27, 2023

Conversation

gabrieldonadel
Copy link
Member

@gabrieldonadel gabrieldonadel commented Oct 26, 2023

Why

We need to bump the iOS and tvOS deployment targets to 13.4 in SDK50 in order to support react-native 0.73.

How

Bumped the minimum iOS version:

  • in all podspecs (packages folder + ExpoKit)
  • Podfiles
  • Xcode workspaces (projects and targets) in apps folder
  • bare-minimum template

Test Plan

CI jobs are passing, Expo Go and bare-expo compiles as expected

@gabrieldonadel gabrieldonadel force-pushed the @gabrieldonadel/bump-deployment-target-13.4 branch from 8f66995 to 399a30b Compare October 27, 2023 12:38
Copy link
Contributor

@Kudo Kudo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the pr. just leaving some nit comments

- React-RCTVibration (= 0.72.1)
- React-callinvoker (0.72.1)
- React-Codegen (0.72.1):
- RCTRequired (0.72.5)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the podfile.lock looks not correct for react-native bump. but don't really matter.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh right! that's fabric-tester's podfile.lock. thanks for fixing that.

"$(inherited)",
"-Wl",
"-ld_classic",
" ",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

commit this will break xcode 14

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted

LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_LDFLAGS = (
"$(inherited)",
"-Wl -ld_classic ",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

commit this will break xcode 14

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted

@@ -13,7 +13,7 @@ const EXPO_SDK_MINIMAL_SUPPORTED_VERSIONS = {
kotlinVersion: '1.6.10',
},
ios: {
deploymentTarget: '13.0',
deploymentTarget: '13.4',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe need to rebuild the js

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated

@gabrieldonadel gabrieldonadel force-pushed the @gabrieldonadel/bump-deployment-target-13.4 branch from 81b8731 to cb557a3 Compare October 27, 2023 13:09
@gabrieldonadel gabrieldonadel merged commit cf9f89b into main Oct 27, 2023
13 of 17 checks passed
@gabrieldonadel gabrieldonadel deleted the @gabrieldonadel/bump-deployment-target-13.4 branch October 27, 2023 15:16
gabrieldonadel added a commit that referenced this pull request Oct 27, 2023
# Why

Follow up of #25063

# How

Update error message check

# Test Plan

Check-packages CI should be green

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
marklawlor pushed a commit that referenced this pull request Oct 30, 2023
# Why

We need to bump the iOS and tvOS deployment targets to 13.4 in SDK50 in
order to support react-native 0.73.

# How

Bumped the minimum iOS version:
- in all podspecs (packages folder + ExpoKit)
- Podfiles
- Xcode workspaces (projects and targets) in apps folder
- bare-minimum template

# Test Plan

CI jobs are passing, Expo Go and bare-expo compiles as expected
marklawlor pushed a commit that referenced this pull request Oct 30, 2023
# Why

Follow up of #25063

# How

Update error message check

# Test Plan

Check-packages CI should be green

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
@brentvatne brentvatne added the published Changes from the PR have been published to npm label Nov 6, 2023
@DarylBeattie
Copy link

Could the Expo docs please be updated to include something about this as a requirement?
I installed expo-notifications and expo-task-manager and had no idea this was a requirement until I found this PR.

@brentvatne
Copy link
Member

brentvatne commented Feb 3, 2024

@DarylBeattie - we list it here: https://docs.expo.dev/versions/latest/#support-for-android-and-ios-versions

we also have it here in the native project upgrade guide: https://docs.expo.dev/bare/upgrade/?fromSdk=49&toSdk=50#iospodfile

and on the changelog: https://expo.dev/changelog/2024/01-18-sdk-50#notable-breaking-changes

this is also the same required version by react-native 0.73

let me know where else you think it should be listed. it's kind of tricky because we can't just list this on every page in the docs.

edit: ah i see, the manual instructions are out of date here: https://docs.expo.dev/bare/installing-expo-modules/
edit 2: updated that here c2af8bd

@DarylBeattie
Copy link

it's kind of tricky because we can't just list this on every page in the docs.

Thanks, and i get that.

I'm actually still using react-native 0.72.

I suppose what happened was that I had just installed those packages on an existing project, which installed their latest versions, and I couldn't find the minimum deployment target info anywhere in the docs I was reading for those packages. It's a tricky situation I suppose.

Thank you for making that doc update that you made @brentvatne

@brentvatne
Copy link
Member

@DarylBeattie - each expo sdk version is intended to be used with a specific react-native version. if you run npx expo-doctor@latest in a project with incompatible modules installed, it will warn you.

https://docs.expo.dev/versions/latest/#each-expo-sdk-version-depends-on-a-react-native-version

@DarylBeattie
Copy link

Hi @brentvatne , Yes, I know that certain versions of the modules work with a specific version of the SDK. The thing is, the module instructions say to just run npx expo install [modulename] but that will install the latest version, which for me was compatible with Expo50, and I'm using Expo49. That broke my build.

Is there a way that npx expo install could install the correct module version for your specific version of Expo?

I understand that this is getting way off-topic for this original bug report.

@brentvatne
Copy link
Member

brentvatne commented Feb 8, 2024

@DarylBeattie - i'd need to know how to reproduce this. npx expo install does exactly what you describe - it installs the version of the package intended for the sdk version, if we have knowledge of that package.

on sdk 49:

i believe you likely accidentally ran npm install rather than npx expo install. you can always run npx expo-doctor@latest to validate packages, and npx expo install --fix to align the version.

yarn create expo-app daryl --template blank@sdk-49
# a bunch of logs
cd daryl
npx expo install expo-notifications expo-task-manager
› Installing 2 SDK 49.0.0 compatible native modules using yarn
> yarn add expo-notifications@~0.20.1 expo-task-manager@~11.3.0
# more logs
cat node_modules/expo-notifications/ios/EXNotifications.podspec | grep 'platform'
  s.platform       = :ios, '13.0'
cat node_modules/expo-task-manager/ios/EXTaskManager.podspec | grep 'platform'
  s.platform       = :ios, '13.0'

@DarylBeattie
Copy link

@brentvatne - Well now.... that's interesting. 🤔 I was definitely on SDK 49 when it installed that library requiring the deployment target of 13.4.

Unfortunately I could not tell you what the state of my entire project was at that point, because a) I've already upgraded to SDK 50, and b) it's very large and has a lot of proprietary code.

I can tell you I'm using npm, not yarn.
But in the future I'll be sure to always use the install --fix to make sure the versions are always perfectly aligned, thanks. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: fingerprint changed bot: passed checks ExpoBot has nothing to complain about published Changes from the PR have been published to npm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants