Skip to content

feat(ump): add Expo config plugin, declare expo peer dep - #8

Merged
exzos28 merged 2 commits into
mainfrom
feat/ump-follow-ups
Sep 4, 2026
Merged

feat(ump): add Expo config plugin, declare expo peer dep#8
exzos28 merged 2 commits into
mainfrom
feat/ump-follow-ups

Conversation

@exzos28

@exzos28 exzos28 commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

Follow-up to #6 (which was already merged before these two commits landed).

  • Add app.plugin.js for @react-native-ads/ump: the UMP SDK requires a Google-issued AdMob App ID (com.google.android.gms.ads.APPLICATION_ID / GADApplicationIdentifier), which can't be hand-edited under Expo/CNG since expo prebuild regenerates android/ios from scratch. The plugin takes androidAppId/iosAppId and injects them on every prebuild, same createRunOncePlugin pattern as pangle/levelplay.
  • Declare expo as an optional peer/dev dependency in ump's package.json (it was missing there — and, it turns out, missing on levelplay too, though that's out of scope here).
  • Unify all five packages' "Expo" Features bullet to the same Expo CNG supported line instead of each spelling out plugin-specific behavior.

Test plan

  • yarn turbo run lint typecheck test passes for the whole monorepo
  • Plugin loads and its withUMPAds throws a clear error without androidAppId/iosAppId, and registers both android/ios mods when they're provided (verified via expo/config-plugins' compileModsAsync composition, not a full prebuild)

The UMP SDK requires a Google-issued AdMob App ID
(com.google.android.gms.ads.APPLICATION_ID / GADApplicationIdentifier)
to run at all. Under Expo/CNG that can't just be hand-edited into
android/ios — expo prebuild regenerates those directories from
scratch. Add an app.plugin.js (androidAppId/iosAppId config, same
createRunOncePlugin pattern as pangle/levelplay) that injects it on
every prebuild.

Also reword the "Works with Expo out of the box" Features bullet on
unity/liftoff to "Expo CNG supported" — the previous phrasing read
oddly next to the other packages' plugin-specific bullets.
ump's app.plugin.js imports from expo/config-plugins but package.json
never declared expo as a (peer) dependency, unlike pangle's plugin —
levelplay had the same gap. Add expo as an optional peerDependency +
devDependency, matching pangle's existing pattern.

Also collapse all five packages' Features bullet about Expo down to
the same "Expo CNG supported" line instead of each spelling out what
its plugin does (or doesn't) do.
@exzos28
exzos28 merged commit e4abcfb into main Sep 4, 2026
14 checks passed
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