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

Expo SDK 52 compatibility #172

Open
jp1987 opened this issue Nov 15, 2024 · 1 comment
Open

Expo SDK 52 compatibility #172

jp1987 opened this issue Nov 15, 2024 · 1 comment

Comments

@jp1987
Copy link

jp1987 commented Nov 15, 2024

We're running on SDK 51 and I would like to upgrade to 52, is this module compatible?

@mmaatttt
Copy link
Contributor

Hi @jp1987,

I tried out 52 with our SDK this morning and it is compatible. Here's a few notes for your consideration:

  1. The current Appcues SDK (4.3.0) isn't currently compatible with the New Architecture (optional with Expo 52, but enabled by default for new apps). There's an issue where embed frames aren't sized properly. We'll look into getting this fixed up.
  2. Expo 52 aligns with @react-navigation/native. If you use anchored tooltips and navigation Tabs, make sure to update tabBarTestID to tabBarButtonTestID so that the correct identifiers are there for anchored tooltip selectors.
  3. If you use Linking.addEventListener('url', ...) or Linking.useURL() to handle Appcues SDK deep links (ie calling Appcues.didHandleURL(url)), it seems that this doesn't work with changes in expo-linking v7 on iOS. There's a new useLinkingURL() hook that does seem to work.
  4. The expo-linking v7 change seems to have broken react router deep link handling on iOS in our Showcase app (and in a newly created test Expo 52 project), so be sure to test and confirm that your deep links still work. I'm not clear if it's a bug in Expo, but it seems like it, given that a newly created (npx create-expo-app) app doesn't have functional file-based deep linking on iOS (eg myapp://example for the basic create-expo-app project). Here's a deep dive into what's happening:
    1. There's a new LinkingAppDelegateSubscriber that always returns true when opening a URL
    2. That means the ExpoAppDelegate always returns true when opening a URL
    3. Which means the main AppDelegate in your generated iOS project will always return true from the super call and so RCTLinkingManager doesn't get a chance to process the URL, and that's what drives Linking.addEventListener('url', ...) and Linking.useURL()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants