Skip to content

fix(bgp): publish embedded community libraries' dependencies on Expo - #477

Open
KisaneNeko wants to merge 1 commit into
callstack:mainfrom
KisaneNeko:fix/bgp-expo-community-library-deps
Open

KisaneNeko wants to merge 1 commit into
callstack:mainfrom
KisaneNeko:fix/bgp-expo-community-library-deps

Conversation

@KisaneNeko

@KisaneNeko KisaneNeko commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

On Expo projects the plugin only scanned Expo modules for transitive dependencies. Community libraries (react-native-screens, lottie-react-native, our Brownie, ...) are packed into the AAR too, but their own Android dependencies were left off the POM. The host app builds fine and then crashes with NoClassDefFoundError when that code runs. Bare RN projects were not affected.

The embedded-library discoverer now runs on Expo too (same experimentalIncludeTransitiveDependencies flag as bare RN). The existing hard-exclude filter keeps Expo coordinates out of the POM. Also fixed the troubleshooting sentence that said Expo handles this unconditionally.

ExpoApp57 now renders a tiny lottie-react-native animation. Its Android dependency (com.airbnb.android:lottie) isn't otherwise in the AndroidApp host, so the existing Expo E2E tests fail if it goes missing from the POM again.

Tested locally on 31c3939 (main is currently red for Expo 57 / vanilla Android because of #448, fixed by #475), AndroidApp expo57 Detox suite:

  • Without the plugin fix: 2/2 fail, the RN surface is blank with NoClassDefFoundError: Failed resolution of: Lcom/airbnb/lottie/LottieAnimationView;.
  • With the fix: lottie is in the POM, 2/2 pass. Vanilla POM unchanged.

Android CI here needs #475 first.

🤖 Generated with Claude Code

On Expo projects only Expo modules were scanned for transitive dependencies.
Community libraries (react-native-screens, lottie-react-native, Brownie...)
were packed into the AAR but their dependencies were left off the POM, so host
apps built fine and then crashed with NoClassDefFoundError at runtime.

Run the embedded-library discoverer on Expo too; the existing hard-exclude
filter keeps Expo coordinates out of the POM.

ExpoApp57 now renders lottie-react-native, whose Android dependency the
AndroidApp host doesn't otherwise have, so the existing E2E tests fail if it
is missing from the POM again.
@KisaneNeko
KisaneNeko force-pushed the fix/bgp-expo-community-library-deps branch from 21c0b22 to 6bcc0ab Compare September 29, 2026 12:17

This branch has not been deployed

No deployments
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

Successfully merging this pull request may close these issues.

1 participant