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

deps: Run yarn upgrade, toward addressing Apple "privacy manifest" issue #5850

Merged
merged 1 commit into from
Apr 4, 2024

Conversation

chrisbobbe
Copy link
Contributor

Related: #5847

Stacked atop #5848 which allows testing on iOS with recent Xcode.

Manually smoke-tested on the office Android device and my iPhone.

@chrisbobbe chrisbobbe added the dependencies Pull requests that update a dependency file label Apr 4, 2024
@chrisbobbe chrisbobbe requested a review from gnprice April 4, 2024 21:54
This is step one toward zulip#5847.

We hold back react-native-screens at 3.29.0. That's because 3.30
breaks compatibility with RN v0.68 in a certain way, and although
the 3.31 release candidate addresses one source of that
incompatibility --
  software-mansion/react-native-screens#2088
-- there seems to be another. In particular, after the app starts up
on Android, I get errors:

  Error: Requiring module
    "node_modules/react-native-screens/src/index.tsx", which threw an
    exception: Error: Exception in HostObject::get(propName:RNSModule):
    java.lang.UnsatisfiedLinkError:
    dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/lib/arm64, /data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/base.apk!/lib/arm64-v8a, /system/lib64]]]
    couldn't find "librnscreens.so"

    […]

and

  TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[16], "react-native-screens").screensEnabled')

  This error is located at:
      in CardStack (at StackView.tsx:462)
      in KeyboardManager (at StackView.tsx:458)
      in SafeAreaProviderCompat (at StackView.tsx:455)
      in RNGestureHandlerRootView (at GestureHandlerRootView.android.tsx:22)
      in GestureHandlerRootView (at StackView.tsx:454)
      in StackView (at createStackNavigator.tsx:87)
      in StackNavigator (at AppNavigator.js:140)
      in AppNavigator (at ZulipNavigationContainer.js:65)
      in EnsureSingleNavigator (at BaseNavigationContainer.tsx:411)
      in BaseNavigationContainer (at NavigationContainer.tsx:91)
      in ThemeProvider (at NavigationContainer.tsx:90)
      in NavigationContainer (at ZulipNavigationContainer.js:58)
      in ZulipAppContainer (at ZulipMobile.js:83)

      […]

which I don't really understand but I suspect might require us to
adopt React Native's "Fabric" system which we don't want to bother
with for this legacy app.
@gnprice
Copy link
Member

gnprice commented Apr 4, 2024

Cool, thanks for taking care of this.

Glad this gets us the latest Sentry in particular — that seems like one SDK that is probably using some of these APIs and so will need a privacy manifest (and has hopefully added one by now 🤞 — we'll find out as you pursue #5847 further).

[…] In particular, after the app starts up
on Android, I get errors:

  Error: Requiring module
    "node_modules/react-native-screens/src/index.tsx", which threw an
    exception: Error: Exception in HostObject::get(propName:RNSModule):
    java.lang.UnsatisfiedLinkError:
    dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/lib/arm64, /data/app/com.zulipmobile.debug-cCKhUjMGcecB6tGNtf5jiQ==/base.apk!/lib/arm64-v8a, /system/lib64]]]
    couldn't find "librnscreens.so"

Hmm puzzling. Searching that library's tracker, I don't see any reports that look like a possible match.

It seems like librnscreens.so isn't winding up in the APK. Could very well be an incompatibility with older RN, as you suggest — the library could be relying on RN to get libraries from one place to another at build time, and RN could have changed how that works in such a way that something the library is now doing works with current RN but not older RN.

Anyway, makes sense not to try to debug it further.

This all looks good — merging.

@gnprice gnprice force-pushed the pr-yarn-upgrade-2024-04-04 branch from a4d86b5 to c383d25 Compare April 4, 2024 22:20
@gnprice gnprice merged commit c383d25 into zulip:main Apr 4, 2024
1 check passed
@chrisbobbe chrisbobbe deleted the pr-yarn-upgrade-2024-04-04 branch April 4, 2024 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file P1 high-priority
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants