Skip to content

verify that example app runs fine with new arch enabled#775

Draft
cameronvoell wants to merge 1 commit intomainfrom
cv/03-19-verify_that_example_app_runs_fine_with_new_arch_enabled
Draft

verify that example app runs fine with new arch enabled#775
cameronvoell wants to merge 1 commit intomainfrom
cv/03-19-verify_that_example_app_runs_fine_with_new_arch_enabled

Conversation

@cameronvoell
Copy link
Contributor

@cameronvoell cameronvoell commented Mar 19, 2026

Add getArchitectureDiagnostics to verify new architecture support in the example app

  • Adds a getArchitectureDiagnostics() method to Client, the JS module, and native modules on both iOS and Android that returns runtime info about the active React Native architecture (new arch vs. bridge, module access path, sync support).
  • On Android, reads IS_NEW_ARCHITECTURE_ENABLED from the host app's BuildConfig via reflection, falling back to the module's own BuildConfig; on iOS, uses a compile-time RCT_NEW_ARCH_ENABLED flag set via XMTPReactNative.podspec.
  • The example app calls Client.getArchitectureDiagnostics() on startup and logs a structured report; example/app.json sets newArchEnabled: true to exercise the new-arch path.
  • XMTPArchitectureDiagnostics.ts defines shared types and a toArchitectureDiagnostics() helper that normalizes native diagnostics into a typed JS object.

Macroscope summarized d1599f8.

@changeset-bot
Copy link

changeset-bot bot commented Mar 19, 2026

⚠️ No Changeset found

Latest commit: d1599f8

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@cameronvoell
Copy link
Contributor Author

(NOBRIDGE) LOG  Bridgeless mode is enabled
 (NOBRIDGE) LOG  Shims Injected:
 (NOBRIDGE) LOG    - nextTick
 INFO  
 💡 JavaScript logs will be removed from Metro in React Native 0.77! Please use React Native DevTools as your default tool. Tip: Type j in the terminal to open (requires Google Chrome or Microsoft Edge).
 (NOBRIDGE) LOG  === XMTP ARCHITECTURE DIAGNOSTICS ===
 (NOBRIDGE) LOG    Native new architecture flag (RCT_NEW_ARCH_ENABLED via xmtp-module): ENABLED
 (NOBRIDGE) LOG    XMTP module access path: JSI
 (NOBRIDGE) LOG    Supports synchronous native methods: YES
 (NOBRIDGE) LOG    Native module type: expo-module
 (NOBRIDGE) LOG    Native module class: XMTPModule
 (NOBRIDGE) LOG    Host app id: expo.modules.xmtpreactnativesdk.example
 (NOBRIDGE) LOG    Platform: ios
 (NOBRIDGE) LOG  =====================================
 (NOBRIDGE) LOG  XMTP is running in a new-architecture app and is being resolved through the JSI module registry.

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