Files
4297fdbe23 fix(mobile): upgrade react-native-quick-crypto for Android 16KB page size (#7480)
* fix(mobile): upgrade react-native-quick-crypto for Android 16KB page size support

Upgrade react-native-quick-crypto from 0.7.x to 1.0.17 to support
Android 16KB page size requirement. Add react-native-nitro-modules and
react-native-quick-base64 as new peer dependencies. Update
react-native-device-crypto patch to remove deprecated jcenter()
repository references for Gradle 9.0 compatibility.

* chore(mobile): remove unused config/ethers.ts

Dead code — crypto-shims.ts in platform/ is the active version
imported by the root layout.

* fix(mobile): deduplicate react-native-quick-base64 via resolution

Add root resolution to force a single copy of react-native-quick-base64
(2.2.2), avoiding version skew between the direct dependency and the
transitive one from @craftzdog/react-native-buffer.

* fix(mobile): upgrade react-native-mmkv to v4 and pin MMKV pod

- Upgrade react-native-mmkv from 3.x to 4.2.0 (Nitro-based rewrite)
- Migrate API: new MMKV() -> createMMKV(), .delete() -> .remove()
- Pin MMKV pod to ~> 2.3.0 in notification extension plugin instead
  of master branch, fixing sharedApplication build error in App
  Extensions
- Update expo plugin config.ts (source of truth for Podfile template)

* docs: add solution doc for Expo native file editing workflow

Document that generated native files (ios/Podfile etc.) must be
modified through Expo config plugins, not directly. Also unignore
docs/solutions/ from .gitignore.

* fix(mobile): add jest mocks for react-native-nitro-modules and mmkv v4

MMKV v4 uses NitroModules under the hood, which requires mocking in
the test environment. Add mocks for both react-native-nitro-modules
and the new react-native-mmkv createMMKV API.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-03-19 13:28:26 +01:00

32 lines
1.7 KiB
TypeScript

/** IOS */
export const DEFAULT_IOS_BUILD_NUMBER = '1'
export const DEFAULT_APP_VERSION = '1.0.0'
export const DEFAULT_IOS_DEPLOYMENT_TARGET = '13.4'
export const TARGET_DEVICES = '"1,2"' // IPHONE / IPAD
export const EXTENSION_SERVICE_NAME = 'NotifeeNotificationServiceExtension'
export const EXTENSION_SERVICE_FILE = 'NotificationService.swift'
export const FILES_TO_ADD = [
`NotifeeNotificationServiceExtension-Info.plist`,
`NotifeeNotificationServiceExtension.entitlements`,
]
export const PODFILE_MODIF_NEEDED = `
$NotifeeExtension = true
target 'NotifeeNotificationServiceExtension' do
pod 'RNNotifeeCore', :path => '../../../node_modules/@notifee/react-native/RNNotifeeCore.podspec'
pod 'MMKV', '~> 2.3.0'
pod 'CryptoSwift', '~> 1.8.3'
pod 'SwiftCryptoTokenFormatter', :git => 'https://github.com/compojoom/SwiftCryptoTokenFormatter', :branch => 'main'
use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
end`
export const PODFILE_TARGET_STRING = "target 'NotifeeNotificationServiceExtension'"
export const APP_VERSION_STRING = '[IF_YOU_SEE_THIS_YOU_FORGOT_TO_ADD_APP_VERSION_IN_EXPO_CONFIG]'
export const BUNDLE_IDENTIFIER_STRING = '[IF_YOU_SEE_THIS_YOU_FORGOT_TO_ADD_BUNDLE_IDENTIFIER_IN_IOS_EXPO_CONFIG]'
export const IOS_BUILD_NUMBER_STRING = '[IF_YOU_SEE_THIS_YOU_FORGOT_TO_ADD_BUILD_NUMBER_IN_IOS_EXPO_CONFIG]'
export const NOTIFICATION_APP_GROUP_IDENTIFIER_STRING = '[NOTIFICATION_APP_GROUP_IDENTIFIER]'
export const APP_GROUPS_PLACEHOLDER = '[APP_GROUPS_PLACEHOLDER]'
export const BACKGROUND_MODES_TO_ENABLE = ['remote-notification']
export const USER_ACTIVITY_TYPES_KEYS = ['INSendMessageIntent']