Skip to content

Upgrade to expo 55#55

Merged
sergeysozinov merged 2 commits into
developfrom
upgrade-to-expo-55
May 20, 2026
Merged

Upgrade to expo 55#55
sergeysozinov merged 2 commits into
developfrom
upgrade-to-expo-55

Conversation

@sergeysozinov
Copy link
Copy Markdown
Collaborator

Support expo notification for expo 55

justSmK added 2 commits May 20, 2026 14:10
Migrate examples/MindboxExpoExample from SDK 54 to SDK 55:

  - Bump expo to ^55.0.0; align managed deps via `expo install --fix`
    (react 19.2.0, react-native 0.83.6, expo-* on ~55.0.x,
    react-native-screens ~4.23.0, react-native-safe-area-context ~5.6.2)
  - Bump @types/react to ~19.2.0
  - Drop obsolete devDeps: @react-native-community/cli (RN 0.83
    ships its own CLI) and @types/react-native (types are bundled
    with react-native since 0.71)
  - Remove `newArchEnabled` from app.json (default since SDK 53)
  - Remove `edgeToEdgeEnabled` from android config (mandatory in SDK 55)
  - Regenerate yarn.lock

  Verified with `npx expo-doctor` (18/18) and `npx expo config`.
  The plugin itself (mindbox-expo-plugin) is left on @expo/config-plugins
  ^54 — this change scope is example-only.
expo-notifications@55.0.0 renamed its iOS pod from `EXNotifications`
  to `ExpoNotifications` (expo/expo#42009), so the previous
  `import EXNotifications` injected by withMindboxIos breaks the build
  on SDK 55. Additionally, the SDK 55 AppDelegate template declares
  `internal import Expo`, which under Swift's SE-0409 access-level
  imports rule requires all imports of the same module to be consistent.

  Wrap the injected import in `#if canImport(ExpoNotifications)`:
  - SDK 55: `internal import ExpoNotifications` (matches Expo's access level)
  - SDK 54 and earlier: `import EXNotifications` (unchanged)

  Verified: example project (SDK 55, RN 0.83, Xcode 26.5, iOS 26.5
  simulator) compiles, links, signs, and installs successfully.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the plugin/example configuration to support Expo Notifications when using Expo SDK 55, primarily by adjusting the Swift import used for Expo notifications.

Changes:

  • Updated iOS AppDelegate import snippet to conditionally import ExpoNotifications vs EXNotifications.
  • Bumped the example app dependencies to Expo SDK 55 / newer RN + React versions.
  • Adjusted the example app config by removing newArchEnabled and edgeToEdgeEnabled.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.

File Description
src/helpers/iosConstants.ts Changes the injected Swift import block for Expo notifications to support the new module name.
examples/MindboxExpoExample/package.json Updates example dependencies to Expo 55-era versions.
examples/MindboxExpoExample/app.json Tweaks example Expo app configuration flags for the upgrade.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

export const IOS_IMPORT_MINDBOX: string = "import Mindbox";
export const IOS_IMPORT_EX_NOTIFICATIONS: string = "import EXNotifications";
export const IOS_IMPORT_EX_NOTIFICATIONS: string = `#if canImport(ExpoNotifications)
internal import ExpoNotifications
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Посерчили тут - не должно возникнуть проблем с Expo 54 и Expo 55

Comment thread examples/MindboxExpoExample/package.json
@sergeysozinov sergeysozinov merged commit 28934ed into develop May 20, 2026
7 checks passed
@sergeysozinov sergeysozinov deleted the upgrade-to-expo-55 branch May 20, 2026 13:56
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.

3 participants