Skip to content

Expo app build fails with TypeError: SuperwallExpoModule.default.addListener is not a function #153

@OlegBezr

Description

@OlegBezr

We are using expo-superwall in a project with "expo": "^54.0.27". We have the following imports in our codebase: import Superwall from "expo-superwall/compat";

Our builds work correctly locally but when trying to build the app on eas servers, we get a very weird issue during Bundle JavaScript phase (npx expo export:embed --eager --platform ios --dev false exited with non-zero code: 1).

We have tried several recent expo-superwall versions: 1.0.0, 0.8.1, 0.8.0, 0.7.2 - but we get the same error for all of them. Could you please advise what could be wrong with our build setup or whether this is a known issue with building on eas?

Here's the full output:

⚙️ Building app for environment: preview
⚙️ Building app for environment: preview
⚙️ Building app for environment: preview
React Compiler enabled
Starting Metro Bundler
⚙️ Building app for environment: preview
iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓░░░░░░░░░░ 39.5% (479/762)
iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓░░░░░░░░ 53.2% (1088/1968)
iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓░░░░░░░░ 53.2% (1930/2888)
iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓▓▓░░░░░░ 68.3% (2933/3550)
iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 88.4% (4199/4467)
iOS Bundled 18532ms node_modules/expo-router/entry.js (4900 modules)
Exporting server
⚙️ Building app for environment: preview
λ node_modules/expo-router/build/static/getServerManifest.js ░░░░░░░░░░░░░░░░  0.0% (0/1)
| ⚙️ Building app for environment: preview
λ node_modules/expo-router/build/static/getServerManifest.js ▓▓▓▓▓▓░░░░░░░░░░ 38.4% (1609/2598)
λ node_modules/expo-router/build/static/getServerManifest.js ▓▓▓▓▓▓▓▓▓▓▓▓▓░░░ 82.9% (3402/3736)
⚙️ Building app for environment: preview
λ Bundled 9632ms node_modules/expo-router/build/static/getServerManifest.js (4526 modules)
[expo-notifications] Listening to push token changes is not yet fully supported on web. Adding a listener will have no effect.

SuperwallExpoModule.default.addListener is not a function
TypeError: SuperwallExpoModule.default.addListener is not a function
TypeError: SuperwallExpoModule.default.addListener is not a function
    at new Superwall (/Users/expo/workingdir/build/last-mile-mobile/node_modules/expo-superwall/build/src/compat/index.js:72:35)
    at Function.<static_initializer> (/Users/expo/workingdir/build/last-mile-mobile/node_modules/expo-superwall/build/src/compat/index.js:49:25)
    at /Users/expo/workingdir/build/last-mile-mobile/node_modules/expo-superwall/build/src/compat/index.js:45:32
    at loadModuleImplementation (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:249:23)
    at guardedLoadModule (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:164:5)
    at _interopDefault (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:75:1)
    at /Users/expo/workingdir/build/last-mile-mobile/src/shared/subscription/subscriptions-manager.ts:1:1
    at loadModuleImplementation (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:249:23)
    at guardedLoadModule (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:164:5)
    at metroRequire (/Users/expo/workingdir/build/last-mile-mobile/node_modules/@expo/cli/build/metro-require/require.js:75:1)
npx expo export:embed --eager --platform ios --dev false exited with non-zero code: 1

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions