[crypto] Add support for AES encryption#41249
Conversation
packages/expo-crypto/android/src/main/java/expo/modules/crypto/aes/enums/KeySize.kt
Outdated
Show resolved
Hide resolved
packages/expo-crypto/android/src/main/java/expo/modules/crypto/aes/AesConfig.kt
Outdated
Show resolved
Hide resolved
91627b6 to
a8a6382
Compare
|
The Pull Request introduced fingerprint changes against the base commit: 57e0b9e Fingerprint diff[
{
"op": "changed",
"beforeSource": {
"type": "dir",
"filePath": "../../packages/expo-crypto/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "466c6126d7953a364fcc15644cdac38012c30f37"
},
"afterSource": {
"type": "dir",
"filePath": "../../packages/expo-crypto/android",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "df6ff691a39ba349372b56ebea96cf0f32dc7e7a"
}
},
{
"op": "changed",
"beforeSource": {
"type": "dir",
"filePath": "../../packages/expo-crypto/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "1be7631b64e026f36a806c778f18bc2262f804fc"
},
"afterSource": {
"type": "dir",
"filePath": "../../packages/expo-crypto/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "e02ff9f22e10715aa0a041dc490e2df70e6b4a8e"
}
},
{
"op": "changed",
"beforeSource": {
"type": "contents",
"id": "expoAutolinkingConfig:android",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[\"swiftui\",\"compose\"],\"modules\":[{\"packageName\":\"@expo/app-integrity\",\"projects\":[{\"name\":\"expo-app-integrity\",\"sourceDir\":\"../../packages/expo-app-integrity/android\",\"modules\":[{\"classifier\":\"expo.modules.integrity.IntegrityModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.1.7\"},{\"packageName\":\"@expo/dom-webview\",\"projects\":[{\"name\":\"expo-dom-webview\",\"sourceDir\":\"../../packages/@expo/dom-webview/android\",\"modules\":[{\"classifier\":\"expo.modules.webview.DomWebViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.2.7\"},{\"packageName\":\"@expo/log-box\",\"projects\":[{\"name\":\"expo-log-box\",\"sourceDir\":\"../../packages/@expo/log-box/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.logbox.ExpoLogBoxPackage\"]}],\"packageVersion\":\"0.0.13-canary-20251023-4c86f95\"},{\"packageName\":\"@expo/ui\",\"projects\":[{\"name\":\"expo-ui\",\"sourceDir\":\"../../packages/expo-ui/android\",\"modules\":[{\"classifier\":\"expo.modules.ui.ExpoUIModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.2.0-beta.10\"},{\"packageName\":\"benchmarking-module\",\"projects\":[{\"name\":\"benchmarking-module\",\"sourceDir\":\"modules/benchmarking/android\",\"modules\":[{\"classifier\":\"expo.modules.benchmark.BenchmarkingExpoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.0.1\"},{\"packageName\":\"expo\",\"projects\":[{\"name\":\"expo\",\"sourceDir\":\"../../packages/expo/android\",\"modules\":[{\"classifier\":\"expo.modules.fetch.ExpoFetchModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.ExpoModulesPackage\"]}],\"packageVersion\":\"54.0.8\"},{\"packageName\":\"expo-age-range\",\"projects\":[{\"name\":\"expo-age-range\",\"sourceDir\":\"../../packages/expo-age-range/android\",\"modules\":[{\"classifier\":\"expo.modules.agerange.AgeRangeModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.2.0\"},{\"packageName\":\"expo-application\",\"projects\":[{\"name\":\"expo-application\",\"sourceDir\":\"../../packages/expo-application/android\",\"modules\":[{\"classifier\":\"expo.modules.application.ApplicationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"7.0.7\"},{\"packageName\":\"expo-asset\",\"projects\":[{\"name\":\"expo-asset\",\"sourceDir\":\"../../packages/expo-asset/android\",\"modules\":[{\"classifier\":\"expo.modules.asset.AssetModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"12.0.8\"},{\"packageName\":\"expo-audio\",\"projects\":[{\"name\":\"expo-audio\",\"sourceDir\":\"../../packages/expo-audio/android\",\"modules\":[{\"classifier\":\"expo.modules.audio.AudioModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.12\"},{\"packageName\":\"expo-background-fetch\",\"projects\":[{\"name\":\"expo-background-fetch\",\"sourceDir\":\"../../packages/expo-background-fetch/android\",\"modules\":[{\"classifier\":\"expo.modules.backgroundfetch.BackgroundFetchModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-background-task\",\"projects\":[{\"name\":\"expo-background-task\",\"sourceDir\":\"../../packages/expo-background-task/android\",\"modules\":[{\"classifier\":\"expo.modules.backgroundtask.BackgroundTaskModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-battery\",\"projects\":[{\"name\":\"expo-battery\",\"sourceDir\":\"../../packages/expo-battery/android\",\"modules\":[{\"classifier\":\"expo.modules.battery.BatteryModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-blob\",\"projects\":[{\"name\":\"expo-blob\",\"sourceDir\":\"../../packages/expo-blob/android\",\"modules\":[{\"classifier\":\"expo.modules.blob.BlobModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.1.6\"},{\"packageName\":\"expo-blur\",\"projects\":[{\"name\":\"expo-blur\",\"sourceDir\":\"../../packages/expo-blur/android\",\"modules\":[{\"classifier\":\"expo.modules.blur.BlurModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-brightness\",\"projects\":[{\"name\":\"expo-brightness\",\"sourceDir\":\"../../packages/expo-brightness/android\",\"modules\":[{\"classifier\":\"expo.modules.brightness.BrightnessModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-calendar\",\"projects\":[{\"name\":\"expo-calendar\",\"sourceDir\":\"../../packages/expo-calendar/android\",\"modules\":[{\"classifier\":\"expo.modules.calendar.CalendarModule\",\"name\":null},{\"classifier\":\"expo.modules.calendar.next.CalendarNextModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-camera\",\"projects\":[{\"name\":\"expo-camera\",\"sourceDir\":\"../../packages/expo-camera/android\",\"modules\":[{\"classifier\":\"expo.modules.camera.CameraViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-cellular\",\"projects\":[{\"name\":\"expo-cellular\",\"sourceDir\":\"../../packages/expo-cellular/android\",\"modules\":[{\"classifier\":\"expo.modules.cellular.CellularModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-clipboard\",\"projects\":[{\"name\":\"expo-clipboard\",\"sourceDir\":\"../../packages/expo-clipboard/android\",\"modules\":[{\"classifier\":\"expo.modules.clipboard.ClipboardModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-constants\",\"projects\":[{\"name\":\"expo-constants\",\"sourceDir\":\"../../packages/expo-constants/android\",\"modules\":[{\"classifier\":\"expo.modules.constants.ConstantsModule\",\"name\":null}],\"services\":[\"expo.modules.constants.ConstantsService\"],\"packages\":[]}],\"packageVersion\":\"18.0.9\"},{\"packageName\":\"expo-contacts\",\"projects\":[{\"name\":\"expo-contacts\",\"sourceDir\":\"../../packages/expo-contacts/android\",\"modules\":[{\"classifier\":\"expo.modules.contacts.ContactsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.8\"},{\"packageName\":\"expo-crypto\",\"projects\":[{\"name\":\"expo-crypto\",\"sourceDir\":\"../../packages/expo-crypto/android\",\"modules\":[{\"classifier\":\"expo.modules.crypto.CryptoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-dev-client\",\"projects\":[{\"name\":\"expo-dev-client\",\"sourceDir\":\"../../packages/expo-dev-client/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.12\"},{\"packageName\":\"expo-dev-launcher\",\"projects\":[{\"name\":\"expo-dev-launcher\",\"sourceDir\":\"../../packages/expo-dev-launcher/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.devlauncher.DevLauncherPackage\"]}],\"plugins\":[{\"id\":\"expo-dev-launcher-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-dev-launcher/expo-dev-launcher-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"6.0.11\"},{\"packageName\":\"expo-dev-menu\",\"projects\":[{\"name\":\"expo-dev-menu\",\"sourceDir\":\"../../packages/expo-dev-menu/android\",\"modules\":[{\"classifier\":\"expo.modules.devmenu.modules.DevMenuModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.devmenu.DevMenuPackage\"]}],\"packageVersion\":\"7.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"projects\":[{\"name\":\"expo-dev-menu-interface\",\"sourceDir\":\"../../packages/expo-dev-menu-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-device\",\"projects\":[{\"name\":\"expo-device\",\"sourceDir\":\"../../packages/expo-device/android\",\"modules\":[{\"classifier\":\"expo.modules.device.DeviceModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-document-picker\",\"projects\":[{\"name\":\"expo-document-picker\",\"sourceDir\":\"../../packages/expo-document-picker/android\",\"modules\":[{\"classifier\":\"expo.modules.documentpicker.DocumentPickerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-eas-client\",\"projects\":[{\"name\":\"expo-eas-client\",\"sourceDir\":\"../../packages/expo-eas-client/android\",\"modules\":[{\"classifier\":\"expo.modules.easclient.EASClientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-file-system\",\"projects\":[{\"name\":\"expo-file-system\",\"sourceDir\":\"../../packages/expo-file-system/android\",\"modules\":[{\"classifier\":\"expo.modules.filesystem.FileSystemModule\",\"name\":null},{\"classifier\":\"expo.modules.filesystem.legacy.FileSystemLegacyModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"19.0.14\"},{\"packageName\":\"expo-font\",\"projects\":[{\"name\":\"expo-font\",\"sourceDir\":\"../../packages/expo-font/android\",\"modules\":[{\"classifier\":\"expo.modules.font.FontLoaderModule\",\"name\":null},{\"classifier\":\"expo.modules.font.FontUtilsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.8\"},{\"packageName\":\"expo-gl\",\"projects\":[{\"name\":\"expo-gl\",\"sourceDir\":\"../../packages/expo-gl/android\",\"modules\":[{\"classifier\":\"expo.modules.gl.GLModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"16.0.7\"},{\"packageName\":\"expo-haptics\",\"projects\":[{\"name\":\"expo-haptics\",\"sourceDir\":\"../../packages/expo-haptics/android\",\"modules\":[{\"classifier\":\"expo.modules.haptics.HapticsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-image\",\"projects\":[{\"name\":\"expo-image\",\"sourceDir\":\"../../packages/expo-image/android\",\"modules\":[{\"classifier\":\"expo.modules.image.ExpoImageModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"3.0.8\"},{\"packageName\":\"expo-image-loader\",\"projects\":[{\"name\":\"expo-image-loader\",\"sourceDir\":\"../../packages/expo-image-loader/android\",\"modules\":[],\"services\":[\"expo.modules.imageloader.ImageLoaderService\"],\"packages\":[]}],\"packageVersion\":\"6.0.0\"},{\"packageName\":\"expo-image-manipulator\",\"projects\":[{\"name\":\"expo-image-manipulator\",\"sourceDir\":\"../../packages/expo-image-manipulator/android\",\"modules\":[{\"classifier\":\"expo.modules.imagemanipulator.ImageManipulatorModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-image-picker\",\"projects\":[{\"name\":\"expo-image-picker\",\"sourceDir\":\"../../packages/expo-image-picker/android\",\"modules\":[{\"classifier\":\"expo.modules.imagepicker.ImagePickerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-insights\",\"projects\":[{\"name\":\"expo-insights\",\"sourceDir\":\"../../packages/expo-insights/android\",\"modules\":[{\"classifier\":\"expo.modules.insights.ExpoInsightsModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.insights.ExpoInsightsPackage\"]}],\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-intent-launcher\",\"projects\":[{\"name\":\"expo-intent-launcher\",\"sourceDir\":\"../../packages/expo-intent-launcher/android\",\"modules\":[{\"classifier\":\"expo.modules.intentlauncher.IntentLauncherModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"13.0.7\"},{\"packageName\":\"expo-json-utils\",\"projects\":[{\"name\":\"expo-json-utils\",\"sourceDir\":\"../../packages/expo-json-utils/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.15.0\"},{\"packageName\":\"expo-keep-awake\",\"projects\":[{\"name\":\"expo-keep-awake\",\"sourceDir\":\"../../packages/expo-keep-awake/android\",\"modules\":[{\"classifier\":\"expo.modules.keepawake.KeepAwakeModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linear-gradient\",\"projects\":[{\"name\":\"expo-linear-gradient\",\"sourceDir\":\"../../packages/expo-linear-gradient/android\",\"modules\":[{\"classifier\":\"expo.modules.lineargradient.LinearGradientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linking\",\"projects\":[{\"name\":\"expo-linking\",\"sourceDir\":\"../../packages/expo-linking/android\",\"modules\":[{\"classifier\":\"expo.modules.linking.ExpoLinkingModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.linking.ExpoLinkingPackage\"]}],\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-local-authentication\",\"projects\":[{\"name\":\"expo-local-authentication\",\"sourceDir\":\"../../packages/expo-local-authentication/android\",\"modules\":[{\"classifier\":\"expo.modules.localauthentication.LocalAuthenticationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-localization\",\"projects\":[{\"name\":\"expo-localization\",\"sourceDir\":\"../../packages/expo-localization/android\",\"modules\":[{\"classifier\":\"expo.modules.localization.LocalizationModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.localization.LocalizationPackage\"]}],\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-location\",\"projects\":[{\"name\":\"expo-location\",\"sourceDir\":\"../../packages/expo-location/android\",\"modules\":[{\"classifier\":\"expo.modules.location.LocationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"19.0.7\"},{\"packageName\":\"expo-mail-composer\",\"projects\":[{\"name\":\"expo-mail-composer\",\"sourceDir\":\"../../packages/expo-mail-composer/android\",\"modules\":[{\"classifier\":\"expo.modules.mailcomposer.MailComposerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-manifests\",\"projects\":[{\"name\":\"expo-manifests\",\"sourceDir\":\"../../packages/expo-manifests/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.8\"},{\"packageName\":\"expo-maps\",\"projects\":[{\"name\":\"expo-maps\",\"sourceDir\":\"../../packages/expo-maps/android\",\"modules\":[{\"classifier\":\"expo.modules.maps.MapsModule\",\"name\":null},{\"classifier\":\"expo.modules.maps.GoogleMapsModule\",\"name\":null},{\"classifier\":\"expo.modules.maps.StreetViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.12.7\"},{\"packageName\":\"expo-media-library\",\"projects\":[{\"name\":\"expo-media-library\",\"sourceDir\":\"../../packages/expo-media-library/android\",\"modules\":[{\"classifier\":\"expo.modules.medialibrary.MediaLibraryModule\",\"name\":null},{\"classifier\":\"expo.modules.medialibrary.next.MediaLibraryNextModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"18.2.0\"},{\"packageName\":\"expo-mesh-gradient\",\"projects\":[{\"name\":\"expo-mesh-gradient\",\"sourceDir\":\"../../packages/expo-mesh-gradient/android\",\"modules\":[{\"classifier\":\"expo.modules.meshgradient.MeshGradientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.4.7\"},{\"packageName\":\"expo-modules-core\",\"projects\":[{\"name\":\"expo-modules-core\",\"sourceDir\":\"../../packages/expo-modules-core/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.adapters.react.ReactAdapterPackage\",\"expo.modules.core.BasePackage\",\"expo.modules.kotlin.edgeToEdge.EdgeToEdgePackage\"]}],\"plugins\":[{\"id\":\"expo-module-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-modules-core/expo-module-gradle-plugin\",\"applyToRootProject\":false}],\"packageVersion\":\"3.0.16\"},{\"packageName\":\"expo-navigation-bar\",\"projects\":[{\"name\":\"expo-navigation-bar\",\"sourceDir\":\"../../packages/expo-navigation-bar/android\",\"modules\":[{\"classifier\":\"expo.modules.navigationbar.NavigationBarModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.navigationbar.NavigationBarPackage\"]}],\"packageVersion\":\"5.0.8\"},{\"packageName\":\"expo-network\",\"projects\":[{\"name\":\"expo-network\",\"sourceDir\":\"../../packages/expo-network/android\",\"modules\":[{\"classifier\":\"expo.modules.network.NetworkModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-network-addons\",\"projects\":[{\"name\":\"expo-network-addons\",\"sourceDir\":\"../../packages/expo-network-addons/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"plugins\":[{\"id\":\"expo-network-addons-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-network-addons/expo-network-addons-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-notifications\",\"projects\":[{\"name\":\"expo-notifications\",\"sourceDir\":\"../../packages/expo-notifications/android\",\"modules\":[{\"classifier\":\"expo.modules.notifications.badge.BadgeModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.background.ExpoBackgroundNotificationTasksModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.categories.ExpoNotificationCategoriesModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.NotificationChannelGroupManagerModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.NotificationChannelManagerModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.emitting.NotificationsEmitter\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.handling.NotificationsHandler\",\"name\":null},{\"classifier\":\"expo.modules.notifications.permissions.NotificationPermissionsModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.presentation.ExpoNotificationPresentationModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.scheduling.NotificationScheduler\",\"name\":null},{\"classifier\":\"expo.modules.notifications.serverregistration.ServerRegistrationModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.tokens.PushTokenModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.topics.TopicSubscriptionModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.AndroidXNotificationsChannelsProvider\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.notifications.NotificationsPackage\"]}],\"packageVersion\":\"0.32.11\"},{\"packageName\":\"expo-print\",\"projects\":[{\"name\":\"expo-print\",\"sourceDir\":\"../../packages/expo-print/android\",\"modules\":[{\"classifier\":\"expo.modules.print.PrintModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-router\",\"projects\":[{\"name\":\"expo-router\",\"sourceDir\":\"../../packages/expo-router/android\",\"modules\":[{\"classifier\":\"expo.modules.router.ExpoRouterModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.6\"},{\"packageName\":\"expo-screen-capture\",\"projects\":[{\"name\":\"expo-screen-capture\",\"sourceDir\":\"../../packages/expo-screen-capture/android\",\"modules\":[{\"classifier\":\"expo.modules.screencapture.ScreenCaptureModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-screen-orientation\",\"projects\":[{\"name\":\"expo-screen-orientation\",\"sourceDir\":\"../../packages/expo-screen-orientation/android\",\"modules\":[{\"classifier\":\"expo.modules.screenorientation.ScreenOrientationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-secure-store\",\"projects\":[{\"name\":\"expo-secure-store\",\"sourceDir\":\"../../packages/expo-secure-store/android\",\"modules\":[{\"classifier\":\"expo.modules.securestore.SecureStoreModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sensors\",\"projects\":[{\"name\":\"expo-sensors\",\"sourceDir\":\"../../packages/expo-sensors/android\",\"modules\":[{\"classifier\":\"expo.modules.sensors.modules.AccelerometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.BarometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.GyroscopeModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.LightSensorModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.DeviceMotionModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.MagnetometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.MagnetometerUncalibratedModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.PedometerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sharing\",\"projects\":[{\"name\":\"expo-sharing\",\"sourceDir\":\"../../packages/expo-sharing/android\",\"modules\":[{\"classifier\":\"expo.modules.sharing.SharingModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-sms\",\"projects\":[{\"name\":\"expo-sms\",\"sourceDir\":\"../../packages/expo-sms/android\",\"modules\":[{\"classifier\":\"expo.modules.sms.SMSModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-speech\",\"projects\":[{\"name\":\"expo-speech\",\"sourceDir\":\"../../packages/expo-speech/android\",\"modules\":[{\"classifier\":\"expo.modules.speech.SpeechModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-splash-screen\",\"projects\":[{\"name\":\"expo-splash-screen\",\"sourceDir\":\"../../packages/expo-splash-screen/android\",\"modules\":[{\"classifier\":\"expo.modules.splashscreen.SplashScreenModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"31.0.10\"},{\"packageName\":\"expo-sqlite\",\"projects\":[{\"name\":\"expo-sqlite\",\"sourceDir\":\"../../packages/expo-sqlite/android\",\"modules\":[{\"classifier\":\"expo.modules.sqlite.SQLiteModule\",\"name\":null}],\"services\":[],\"packages\":[],\"shouldUsePublicationScriptPath\":\"../../packages/expo-sqlite/android/shouldUsePublication.groovy\"}],\"packageVersion\":\"16.0.8\"},{\"packageName\":\"expo-store-review\",\"projects\":[{\"name\":\"expo-store-review\",\"sourceDir\":\"../../packages/expo-store-review/android\",\"modules\":[{\"classifier\":\"expo.modules.storereview.StoreReviewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-structured-headers\",\"projects\":[{\"name\":\"expo-structured-headers\",\"sourceDir\":\"../../packages/expo-structured-headers/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"5.0.0\"},{\"packageName\":\"expo-system-ui\",\"projects\":[{\"name\":\"expo-system-ui\",\"sourceDir\":\"../../packages/expo-system-ui/android\",\"modules\":[{\"classifier\":\"expo.modules.systemui.SystemUIModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.systemui.SystemUIPackage\"]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-task-manager\",\"projects\":[{\"name\":\"expo-task-manager\",\"sourceDir\":\"../../packages/expo-task-manager/android\",\"modules\":[{\"classifier\":\"expo.modules.taskManager.TaskManagerModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.taskManager.TaskManagerPackage\"]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-tracking-transparency\",\"projects\":[{\"name\":\"expo-tracking-transparency\",\"sourceDir\":\"../../packages/expo-tracking-transparency/android\",\"modules\":[{\"classifier\":\"expo.modules.trackingtransparency.TrackingTransparencyModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-updates\",\"projects\":[{\"name\":\"expo-updates\",\"sourceDir\":\"../../packages/expo-updates/android\",\"modules\":[{\"classifier\":\"expo.modules.updates.UpdatesModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.updates.UpdatesPackage\"]}],\"plugins\":[{\"id\":\"expo-updates-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-updates/expo-updates-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"29.0.10\"},{\"packageName\":\"expo-updates-interface\",\"projects\":[{\"name\":\"expo-updates-interface\",\"sourceDir\":\"../../packages/expo-updates-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-video\",\"projects\":[{\"name\":\"expo-video\",\"sourceDir\":\"../../packages/expo-video/android\",\"modules\":[{\"classifier\":\"expo.modules.video.VideoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"3.0.11\"},{\"packageName\":\"expo-video-thumbnails\",\"projects\":[{\"name\":\"expo-video-thumbnails\",\"sourceDir\":\"../../packages/expo-video-thumbnails/android\",\"modules\":[{\"classifier\":\"expo.modules.videothumbnails.VideoThumbnailsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-web-browser\",\"projects\":[{\"name\":\"expo-web-browser\",\"sourceDir\":\"../../packages/expo-web-browser/android\",\"modules\":[{\"classifier\":\"expo.modules.webbrowser.WebBrowserModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.webbrowser.WebBrowserPackage\"]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"unimodules-app-loader\",\"projects\":[{\"name\":\"unimodules-app-loader\",\"sourceDir\":\"../../packages/unimodules-app-loader/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"worklets-tester\",\"projects\":[{\"name\":\"worklets-tester\",\"sourceDir\":\"modules/worklets-tester/android\",\"modules\":[{\"classifier\":\"expo.modules.worklets.tester.WorkletsTesterModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"\"}],\"configuration\":{\"buildFromSource\":[\".*\"]}}",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "e064f92ae436d7c86f4b8bdb587443e56adabd4b"
},
"afterSource": {
"type": "contents",
"id": "expoAutolinkingConfig:android",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[\"swiftui\",\"compose\"],\"modules\":[{\"packageName\":\"@expo/app-integrity\",\"projects\":[{\"name\":\"expo-app-integrity\",\"sourceDir\":\"../../packages/expo-app-integrity/android\",\"modules\":[{\"classifier\":\"expo.modules.integrity.IntegrityModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.1.7\"},{\"packageName\":\"@expo/dom-webview\",\"projects\":[{\"name\":\"expo-dom-webview\",\"sourceDir\":\"../../packages/@expo/dom-webview/android\",\"modules\":[{\"classifier\":\"expo.modules.webview.DomWebViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.2.7\"},{\"packageName\":\"@expo/log-box\",\"projects\":[{\"name\":\"expo-log-box\",\"sourceDir\":\"../../packages/@expo/log-box/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.logbox.ExpoLogBoxPackage\"]}],\"packageVersion\":\"0.0.13-canary-20251023-4c86f95\"},{\"packageName\":\"@expo/ui\",\"projects\":[{\"name\":\"expo-ui\",\"sourceDir\":\"../../packages/expo-ui/android\",\"modules\":[{\"classifier\":\"expo.modules.ui.ExpoUIModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.2.0-beta.10\"},{\"packageName\":\"benchmarking-module\",\"projects\":[{\"name\":\"benchmarking-module\",\"sourceDir\":\"modules/benchmarking/android\",\"modules\":[{\"classifier\":\"expo.modules.benchmark.BenchmarkingExpoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.0.1\"},{\"packageName\":\"expo\",\"projects\":[{\"name\":\"expo\",\"sourceDir\":\"../../packages/expo/android\",\"modules\":[{\"classifier\":\"expo.modules.fetch.ExpoFetchModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.ExpoModulesPackage\"]}],\"packageVersion\":\"54.0.8\"},{\"packageName\":\"expo-age-range\",\"projects\":[{\"name\":\"expo-age-range\",\"sourceDir\":\"../../packages/expo-age-range/android\",\"modules\":[{\"classifier\":\"expo.modules.agerange.AgeRangeModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.2.0\"},{\"packageName\":\"expo-application\",\"projects\":[{\"name\":\"expo-application\",\"sourceDir\":\"../../packages/expo-application/android\",\"modules\":[{\"classifier\":\"expo.modules.application.ApplicationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"7.0.7\"},{\"packageName\":\"expo-asset\",\"projects\":[{\"name\":\"expo-asset\",\"sourceDir\":\"../../packages/expo-asset/android\",\"modules\":[{\"classifier\":\"expo.modules.asset.AssetModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"12.0.8\"},{\"packageName\":\"expo-audio\",\"projects\":[{\"name\":\"expo-audio\",\"sourceDir\":\"../../packages/expo-audio/android\",\"modules\":[{\"classifier\":\"expo.modules.audio.AudioModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.12\"},{\"packageName\":\"expo-background-fetch\",\"projects\":[{\"name\":\"expo-background-fetch\",\"sourceDir\":\"../../packages/expo-background-fetch/android\",\"modules\":[{\"classifier\":\"expo.modules.backgroundfetch.BackgroundFetchModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-background-task\",\"projects\":[{\"name\":\"expo-background-task\",\"sourceDir\":\"../../packages/expo-background-task/android\",\"modules\":[{\"classifier\":\"expo.modules.backgroundtask.BackgroundTaskModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-battery\",\"projects\":[{\"name\":\"expo-battery\",\"sourceDir\":\"../../packages/expo-battery/android\",\"modules\":[{\"classifier\":\"expo.modules.battery.BatteryModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-blob\",\"projects\":[{\"name\":\"expo-blob\",\"sourceDir\":\"../../packages/expo-blob/android\",\"modules\":[{\"classifier\":\"expo.modules.blob.BlobModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.1.6\"},{\"packageName\":\"expo-blur\",\"projects\":[{\"name\":\"expo-blur\",\"sourceDir\":\"../../packages/expo-blur/android\",\"modules\":[{\"classifier\":\"expo.modules.blur.BlurModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-brightness\",\"projects\":[{\"name\":\"expo-brightness\",\"sourceDir\":\"../../packages/expo-brightness/android\",\"modules\":[{\"classifier\":\"expo.modules.brightness.BrightnessModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-calendar\",\"projects\":[{\"name\":\"expo-calendar\",\"sourceDir\":\"../../packages/expo-calendar/android\",\"modules\":[{\"classifier\":\"expo.modules.calendar.CalendarModule\",\"name\":null},{\"classifier\":\"expo.modules.calendar.next.CalendarNextModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-camera\",\"projects\":[{\"name\":\"expo-camera\",\"sourceDir\":\"../../packages/expo-camera/android\",\"modules\":[{\"classifier\":\"expo.modules.camera.CameraViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-cellular\",\"projects\":[{\"name\":\"expo-cellular\",\"sourceDir\":\"../../packages/expo-cellular/android\",\"modules\":[{\"classifier\":\"expo.modules.cellular.CellularModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-clipboard\",\"projects\":[{\"name\":\"expo-clipboard\",\"sourceDir\":\"../../packages/expo-clipboard/android\",\"modules\":[{\"classifier\":\"expo.modules.clipboard.ClipboardModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-constants\",\"projects\":[{\"name\":\"expo-constants\",\"sourceDir\":\"../../packages/expo-constants/android\",\"modules\":[{\"classifier\":\"expo.modules.constants.ConstantsModule\",\"name\":null}],\"services\":[\"expo.modules.constants.ConstantsService\"],\"packages\":[]}],\"packageVersion\":\"18.0.9\"},{\"packageName\":\"expo-contacts\",\"projects\":[{\"name\":\"expo-contacts\",\"sourceDir\":\"../../packages/expo-contacts/android\",\"modules\":[{\"classifier\":\"expo.modules.contacts.ContactsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.8\"},{\"packageName\":\"expo-crypto\",\"projects\":[{\"name\":\"expo-crypto\",\"sourceDir\":\"../../packages/expo-crypto/android\",\"modules\":[{\"classifier\":\"expo.modules.crypto.CryptoModule\",\"name\":null},{\"classifier\":\"expo.modules.crypto.aes.AesCryptoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-dev-client\",\"projects\":[{\"name\":\"expo-dev-client\",\"sourceDir\":\"../../packages/expo-dev-client/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.12\"},{\"packageName\":\"expo-dev-launcher\",\"projects\":[{\"name\":\"expo-dev-launcher\",\"sourceDir\":\"../../packages/expo-dev-launcher/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.devlauncher.DevLauncherPackage\"]}],\"plugins\":[{\"id\":\"expo-dev-launcher-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-dev-launcher/expo-dev-launcher-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"6.0.11\"},{\"packageName\":\"expo-dev-menu\",\"projects\":[{\"name\":\"expo-dev-menu\",\"sourceDir\":\"../../packages/expo-dev-menu/android\",\"modules\":[{\"classifier\":\"expo.modules.devmenu.modules.DevMenuModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.devmenu.DevMenuPackage\"]}],\"packageVersion\":\"7.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"projects\":[{\"name\":\"expo-dev-menu-interface\",\"sourceDir\":\"../../packages/expo-dev-menu-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-device\",\"projects\":[{\"name\":\"expo-device\",\"sourceDir\":\"../../packages/expo-device/android\",\"modules\":[{\"classifier\":\"expo.modules.device.DeviceModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-document-picker\",\"projects\":[{\"name\":\"expo-document-picker\",\"sourceDir\":\"../../packages/expo-document-picker/android\",\"modules\":[{\"classifier\":\"expo.modules.documentpicker.DocumentPickerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-eas-client\",\"projects\":[{\"name\":\"expo-eas-client\",\"sourceDir\":\"../../packages/expo-eas-client/android\",\"modules\":[{\"classifier\":\"expo.modules.easclient.EASClientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-file-system\",\"projects\":[{\"name\":\"expo-file-system\",\"sourceDir\":\"../../packages/expo-file-system/android\",\"modules\":[{\"classifier\":\"expo.modules.filesystem.FileSystemModule\",\"name\":null},{\"classifier\":\"expo.modules.filesystem.legacy.FileSystemLegacyModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"19.0.14\"},{\"packageName\":\"expo-font\",\"projects\":[{\"name\":\"expo-font\",\"sourceDir\":\"../../packages/expo-font/android\",\"modules\":[{\"classifier\":\"expo.modules.font.FontLoaderModule\",\"name\":null},{\"classifier\":\"expo.modules.font.FontUtilsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.8\"},{\"packageName\":\"expo-gl\",\"projects\":[{\"name\":\"expo-gl\",\"sourceDir\":\"../../packages/expo-gl/android\",\"modules\":[{\"classifier\":\"expo.modules.gl.GLModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"16.0.7\"},{\"packageName\":\"expo-haptics\",\"projects\":[{\"name\":\"expo-haptics\",\"sourceDir\":\"../../packages/expo-haptics/android\",\"modules\":[{\"classifier\":\"expo.modules.haptics.HapticsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-image\",\"projects\":[{\"name\":\"expo-image\",\"sourceDir\":\"../../packages/expo-image/android\",\"modules\":[{\"classifier\":\"expo.modules.image.ExpoImageModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"3.0.8\"},{\"packageName\":\"expo-image-loader\",\"projects\":[{\"name\":\"expo-image-loader\",\"sourceDir\":\"../../packages/expo-image-loader/android\",\"modules\":[],\"services\":[\"expo.modules.imageloader.ImageLoaderService\"],\"packages\":[]}],\"packageVersion\":\"6.0.0\"},{\"packageName\":\"expo-image-manipulator\",\"projects\":[{\"name\":\"expo-image-manipulator\",\"sourceDir\":\"../../packages/expo-image-manipulator/android\",\"modules\":[{\"classifier\":\"expo.modules.imagemanipulator.ImageManipulatorModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-image-picker\",\"projects\":[{\"name\":\"expo-image-picker\",\"sourceDir\":\"../../packages/expo-image-picker/android\",\"modules\":[{\"classifier\":\"expo.modules.imagepicker.ImagePickerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-insights\",\"projects\":[{\"name\":\"expo-insights\",\"sourceDir\":\"../../packages/expo-insights/android\",\"modules\":[{\"classifier\":\"expo.modules.insights.ExpoInsightsModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.insights.ExpoInsightsPackage\"]}],\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-intent-launcher\",\"projects\":[{\"name\":\"expo-intent-launcher\",\"sourceDir\":\"../../packages/expo-intent-launcher/android\",\"modules\":[{\"classifier\":\"expo.modules.intentlauncher.IntentLauncherModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"13.0.7\"},{\"packageName\":\"expo-json-utils\",\"projects\":[{\"name\":\"expo-json-utils\",\"sourceDir\":\"../../packages/expo-json-utils/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"0.15.0\"},{\"packageName\":\"expo-keep-awake\",\"projects\":[{\"name\":\"expo-keep-awake\",\"sourceDir\":\"../../packages/expo-keep-awake/android\",\"modules\":[{\"classifier\":\"expo.modules.keepawake.KeepAwakeModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linear-gradient\",\"projects\":[{\"name\":\"expo-linear-gradient\",\"sourceDir\":\"../../packages/expo-linear-gradient/android\",\"modules\":[{\"classifier\":\"expo.modules.lineargradient.LinearGradientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linking\",\"projects\":[{\"name\":\"expo-linking\",\"sourceDir\":\"../../packages/expo-linking/android\",\"modules\":[{\"classifier\":\"expo.modules.linking.ExpoLinkingModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.linking.ExpoLinkingPackage\"]}],\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-local-authentication\",\"projects\":[{\"name\":\"expo-local-authentication\",\"sourceDir\":\"../../packages/expo-local-authentication/android\",\"modules\":[{\"classifier\":\"expo.modules.localauthentication.LocalAuthenticationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-localization\",\"projects\":[{\"name\":\"expo-localization\",\"sourceDir\":\"../../packages/expo-localization/android\",\"modules\":[{\"classifier\":\"expo.modules.localization.LocalizationModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.localization.LocalizationPackage\"]}],\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-location\",\"projects\":[{\"name\":\"expo-location\",\"sourceDir\":\"../../packages/expo-location/android\",\"modules\":[{\"classifier\":\"expo.modules.location.LocationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"19.0.7\"},{\"packageName\":\"expo-mail-composer\",\"projects\":[{\"name\":\"expo-mail-composer\",\"sourceDir\":\"../../packages/expo-mail-composer/android\",\"modules\":[{\"classifier\":\"expo.modules.mailcomposer.MailComposerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-manifests\",\"projects\":[{\"name\":\"expo-manifests\",\"sourceDir\":\"../../packages/expo-manifests/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"1.0.8\"},{\"packageName\":\"expo-maps\",\"projects\":[{\"name\":\"expo-maps\",\"sourceDir\":\"../../packages/expo-maps/android\",\"modules\":[{\"classifier\":\"expo.modules.maps.MapsModule\",\"name\":null},{\"classifier\":\"expo.modules.maps.GoogleMapsModule\",\"name\":null},{\"classifier\":\"expo.modules.maps.StreetViewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.12.7\"},{\"packageName\":\"expo-media-library\",\"projects\":[{\"name\":\"expo-media-library\",\"sourceDir\":\"../../packages/expo-media-library/android\",\"modules\":[{\"classifier\":\"expo.modules.medialibrary.MediaLibraryModule\",\"name\":null},{\"classifier\":\"expo.modules.medialibrary.next.MediaLibraryNextModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"18.2.0\"},{\"packageName\":\"expo-mesh-gradient\",\"projects\":[{\"name\":\"expo-mesh-gradient\",\"sourceDir\":\"../../packages/expo-mesh-gradient/android\",\"modules\":[{\"classifier\":\"expo.modules.meshgradient.MeshGradientModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.4.7\"},{\"packageName\":\"expo-modules-core\",\"projects\":[{\"name\":\"expo-modules-core\",\"sourceDir\":\"../../packages/expo-modules-core/android\",\"modules\":[],\"services\":[],\"packages\":[\"expo.modules.adapters.react.ReactAdapterPackage\",\"expo.modules.core.BasePackage\",\"expo.modules.kotlin.edgeToEdge.EdgeToEdgePackage\"]}],\"plugins\":[{\"id\":\"expo-module-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-modules-core/expo-module-gradle-plugin\",\"applyToRootProject\":false}],\"packageVersion\":\"3.0.16\"},{\"packageName\":\"expo-navigation-bar\",\"projects\":[{\"name\":\"expo-navigation-bar\",\"sourceDir\":\"../../packages/expo-navigation-bar/android\",\"modules\":[{\"classifier\":\"expo.modules.navigationbar.NavigationBarModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.navigationbar.NavigationBarPackage\"]}],\"packageVersion\":\"5.0.8\"},{\"packageName\":\"expo-network\",\"projects\":[{\"name\":\"expo-network\",\"sourceDir\":\"../../packages/expo-network/android\",\"modules\":[{\"classifier\":\"expo.modules.network.NetworkModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-network-addons\",\"projects\":[{\"name\":\"expo-network-addons\",\"sourceDir\":\"../../packages/expo-network-addons/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"plugins\":[{\"id\":\"expo-network-addons-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-network-addons/expo-network-addons-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-notifications\",\"projects\":[{\"name\":\"expo-notifications\",\"sourceDir\":\"../../packages/expo-notifications/android\",\"modules\":[{\"classifier\":\"expo.modules.notifications.badge.BadgeModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.background.ExpoBackgroundNotificationTasksModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.categories.ExpoNotificationCategoriesModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.NotificationChannelGroupManagerModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.NotificationChannelManagerModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.emitting.NotificationsEmitter\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.handling.NotificationsHandler\",\"name\":null},{\"classifier\":\"expo.modules.notifications.permissions.NotificationPermissionsModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.presentation.ExpoNotificationPresentationModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.scheduling.NotificationScheduler\",\"name\":null},{\"classifier\":\"expo.modules.notifications.serverregistration.ServerRegistrationModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.tokens.PushTokenModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.topics.TopicSubscriptionModule\",\"name\":null},{\"classifier\":\"expo.modules.notifications.notifications.channels.AndroidXNotificationsChannelsProvider\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.notifications.NotificationsPackage\"]}],\"packageVersion\":\"0.32.11\"},{\"packageName\":\"expo-print\",\"projects\":[{\"name\":\"expo-print\",\"sourceDir\":\"../../packages/expo-print/android\",\"modules\":[{\"classifier\":\"expo.modules.print.PrintModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-router\",\"projects\":[{\"name\":\"expo-router\",\"sourceDir\":\"../../packages/expo-router/android\",\"modules\":[{\"classifier\":\"expo.modules.router.ExpoRouterModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.6\"},{\"packageName\":\"expo-screen-capture\",\"projects\":[{\"name\":\"expo-screen-capture\",\"sourceDir\":\"../../packages/expo-screen-capture/android\",\"modules\":[{\"classifier\":\"expo.modules.screencapture.ScreenCaptureModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-screen-orientation\",\"projects\":[{\"name\":\"expo-screen-orientation\",\"sourceDir\":\"../../packages/expo-screen-orientation/android\",\"modules\":[{\"classifier\":\"expo.modules.screenorientation.ScreenOrientationModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-secure-store\",\"projects\":[{\"name\":\"expo-secure-store\",\"sourceDir\":\"../../packages/expo-secure-store/android\",\"modules\":[{\"classifier\":\"expo.modules.securestore.SecureStoreModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sensors\",\"projects\":[{\"name\":\"expo-sensors\",\"sourceDir\":\"../../packages/expo-sensors/android\",\"modules\":[{\"classifier\":\"expo.modules.sensors.modules.AccelerometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.BarometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.GyroscopeModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.LightSensorModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.DeviceMotionModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.MagnetometerModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.MagnetometerUncalibratedModule\",\"name\":null},{\"classifier\":\"expo.modules.sensors.modules.PedometerModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sharing\",\"projects\":[{\"name\":\"expo-sharing\",\"sourceDir\":\"../../packages/expo-sharing/android\",\"modules\":[{\"classifier\":\"expo.modules.sharing.SharingModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-sms\",\"projects\":[{\"name\":\"expo-sms\",\"sourceDir\":\"../../packages/expo-sms/android\",\"modules\":[{\"classifier\":\"expo.modules.sms.SMSModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-speech\",\"projects\":[{\"name\":\"expo-speech\",\"sourceDir\":\"../../packages/expo-speech/android\",\"modules\":[{\"classifier\":\"expo.modules.speech.SpeechModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-splash-screen\",\"projects\":[{\"name\":\"expo-splash-screen\",\"sourceDir\":\"../../packages/expo-splash-screen/android\",\"modules\":[{\"classifier\":\"expo.modules.splashscreen.SplashScreenModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"31.0.10\"},{\"packageName\":\"expo-sqlite\",\"projects\":[{\"name\":\"expo-sqlite\",\"sourceDir\":\"../../packages/expo-sqlite/android\",\"modules\":[{\"classifier\":\"expo.modules.sqlite.SQLiteModule\",\"name\":null}],\"services\":[],\"packages\":[],\"shouldUsePublicationScriptPath\":\"../../packages/expo-sqlite/android/shouldUsePublication.groovy\"}],\"packageVersion\":\"16.0.8\"},{\"packageName\":\"expo-store-review\",\"projects\":[{\"name\":\"expo-store-review\",\"sourceDir\":\"../../packages/expo-store-review/android\",\"modules\":[{\"classifier\":\"expo.modules.storereview.StoreReviewModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-structured-headers\",\"projects\":[{\"name\":\"expo-structured-headers\",\"sourceDir\":\"../../packages/expo-structured-headers/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"5.0.0\"},{\"packageName\":\"expo-system-ui\",\"projects\":[{\"name\":\"expo-system-ui\",\"sourceDir\":\"../../packages/expo-system-ui/android\",\"modules\":[{\"classifier\":\"expo.modules.systemui.SystemUIModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.systemui.SystemUIPackage\"]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-task-manager\",\"projects\":[{\"name\":\"expo-task-manager\",\"sourceDir\":\"../../packages/expo-task-manager/android\",\"modules\":[{\"classifier\":\"expo.modules.taskManager.TaskManagerModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.taskManager.TaskManagerPackage\"]}],\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-tracking-transparency\",\"projects\":[{\"name\":\"expo-tracking-transparency\",\"sourceDir\":\"../../packages/expo-tracking-transparency/android\",\"modules\":[{\"classifier\":\"expo.modules.trackingtransparency.TrackingTransparencyModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-updates\",\"projects\":[{\"name\":\"expo-updates\",\"sourceDir\":\"../../packages/expo-updates/android\",\"modules\":[{\"classifier\":\"expo.modules.updates.UpdatesModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.updates.UpdatesPackage\"]}],\"plugins\":[{\"id\":\"expo-updates-gradle-plugin\",\"group\":\"expo.modules\",\"sourceDir\":\"../../packages/expo-updates/expo-updates-gradle-plugin\",\"applyToRootProject\":true}],\"packageVersion\":\"29.0.10\"},{\"packageName\":\"expo-updates-interface\",\"projects\":[{\"name\":\"expo-updates-interface\",\"sourceDir\":\"../../packages/expo-updates-interface/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-video\",\"projects\":[{\"name\":\"expo-video\",\"sourceDir\":\"../../packages/expo-video/android\",\"modules\":[{\"classifier\":\"expo.modules.video.VideoModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"3.0.11\"},{\"packageName\":\"expo-video-thumbnails\",\"projects\":[{\"name\":\"expo-video-thumbnails\",\"sourceDir\":\"../../packages/expo-video-thumbnails/android\",\"modules\":[{\"classifier\":\"expo.modules.videothumbnails.VideoThumbnailsModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-web-browser\",\"projects\":[{\"name\":\"expo-web-browser\",\"sourceDir\":\"../../packages/expo-web-browser/android\",\"modules\":[{\"classifier\":\"expo.modules.webbrowser.WebBrowserModule\",\"name\":null}],\"services\":[],\"packages\":[\"expo.modules.webbrowser.WebBrowserPackage\"]}],\"packageVersion\":\"15.0.7\"},{\"packageName\":\"unimodules-app-loader\",\"projects\":[{\"name\":\"unimodules-app-loader\",\"sourceDir\":\"../../packages/unimodules-app-loader/android\",\"modules\":[],\"services\":[],\"packages\":[]}],\"packageVersion\":\"6.0.7\"},{\"packageName\":\"worklets-tester\",\"projects\":[{\"name\":\"worklets-tester\",\"sourceDir\":\"modules/worklets-tester/android\",\"modules\":[{\"classifier\":\"expo.modules.worklets.tester.WorkletsTesterModule\",\"name\":null}],\"services\":[],\"packages\":[]}],\"packageVersion\":\"\"}],\"configuration\":{\"buildFromSource\":[\".*\"]}}",
"reasons": [
"expoAutolinkingAndroid"
],
"hash": "2632ad2496c2ff432e8c12ac29685c33ac2281f3"
}
},
{
"op": "changed",
"beforeSource": {
"type": "contents",
"id": "expoAutolinkingConfig:ios",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[\"swiftui\",\"compose\"],\"modules\":[{\"packageName\":\"@expo/app-integrity\",\"pods\":[{\"podName\":\"ExpoAppIntegrity\",\"podspecDir\":\"../../packages/expo-app-integrity/ios\"}],\"swiftModuleNames\":[\"ExpoAppIntegrity\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"IntegrityModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.7\"},{\"packageName\":\"@expo/dom-webview\",\"pods\":[{\"podName\":\"ExpoDomWebView\",\"podspecDir\":\"../../packages/@expo/dom-webview/ios\"}],\"swiftModuleNames\":[\"ExpoDomWebView\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DomWebViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.2.7\"},{\"packageName\":\"@expo/log-box\",\"pods\":[{\"podName\":\"ExpoLogBox\",\"podspecDir\":\"../../packages/@expo/log-box\"}],\"swiftModuleNames\":[\"ExpoLogBox\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.13-canary-20251023-4c86f95\"},{\"packageName\":\"@expo/ui\",\"pods\":[{\"podName\":\"ExpoUI\",\"podspecDir\":\"../../packages/expo-ui/ios\"}],\"swiftModuleNames\":[\"ExpoUI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoUIModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.2.0-beta.10\"},{\"packageName\":\"benchmarking-module\",\"pods\":[{\"podName\":\"BenchmarkingModule\",\"podspecDir\":\"modules/benchmarking/ios\"}],\"swiftModuleNames\":[\"BenchmarkingModule\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BenchmarkingExpoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.1\"},{\"packageName\":\"expo\",\"pods\":[{\"podName\":\"Expo\",\"podspecDir\":\"../../packages/expo\"}],\"swiftModuleNames\":[\"Expo\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoFetchModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"54.0.8\"},{\"packageName\":\"expo-age-range\",\"pods\":[{\"podName\":\"ExpoAgeRange\",\"podspecDir\":\"../../packages/expo-age-range/ios\"}],\"swiftModuleNames\":[\"ExpoAgeRange\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AgeRangeModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.2.0\"},{\"packageName\":\"expo-apple-authentication\",\"pods\":[{\"podName\":\"ExpoAppleAuthentication\",\"podspecDir\":\"../../packages/expo-apple-authentication/ios\"}],\"swiftModuleNames\":[\"ExpoAppleAuthentication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AppleAuthenticationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-application\",\"pods\":[{\"podName\":\"EXApplication\",\"podspecDir\":\"../../packages/expo-application/ios\"}],\"swiftModuleNames\":[\"EXApplication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ApplicationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"7.0.7\"},{\"packageName\":\"expo-asset\",\"pods\":[{\"podName\":\"ExpoAsset\",\"podspecDir\":\"../../packages/expo-asset/ios\"}],\"swiftModuleNames\":[\"ExpoAsset\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AssetModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"12.0.8\"},{\"packageName\":\"expo-audio\",\"pods\":[{\"podName\":\"ExpoAudio\",\"podspecDir\":\"../../packages/expo-audio/ios\"}],\"swiftModuleNames\":[\"ExpoAudio\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AudioModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.12\"},{\"packageName\":\"expo-background-fetch\",\"pods\":[{\"podName\":\"ExpoBackgroundFetch\",\"podspecDir\":\"../../packages/expo-background-fetch/ios\"}],\"swiftModuleNames\":[\"ExpoBackgroundFetch\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundFetchModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-background-task\",\"pods\":[{\"podName\":\"ExpoBackgroundTask\",\"podspecDir\":\"../../packages/expo-background-task/ios\"}],\"swiftModuleNames\":[\"ExpoBackgroundTask\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundTaskModule\"}],\"appDelegateSubscribers\":[\"BackgroundTaskAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-battery\",\"pods\":[{\"podName\":\"ExpoBattery\",\"podspecDir\":\"../../packages/expo-battery/ios\"}],\"swiftModuleNames\":[\"ExpoBattery\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BatteryModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-blob\",\"pods\":[{\"podName\":\"ExpoBlob\",\"podspecDir\":\"../../packages/expo-blob/ios\"}],\"swiftModuleNames\":[\"ExpoBlob\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoBlob\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.6\"},{\"packageName\":\"expo-blur\",\"pods\":[{\"podName\":\"ExpoBlur\",\"podspecDir\":\"../../packages/expo-blur/ios\"}],\"swiftModuleNames\":[\"ExpoBlur\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BlurViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-brightness\",\"pods\":[{\"podName\":\"ExpoBrightness\",\"podspecDir\":\"../../packages/expo-brightness/ios\"}],\"swiftModuleNames\":[\"ExpoBrightness\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BrightnessModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-calendar\",\"pods\":[{\"podName\":\"ExpoCalendar\",\"podspecDir\":\"../../packages/expo-calendar/ios\"}],\"swiftModuleNames\":[\"ExpoCalendar\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CalendarModule\"},{\"name\":null,\"class\":\"CalendarNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-camera\",\"pods\":[{\"podName\":\"ExpoCamera\",\"podspecDir\":\"../../packages/expo-camera/ios\"}],\"swiftModuleNames\":[\"ExpoCamera\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CameraViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-cellular\",\"pods\":[{\"podName\":\"ExpoCellular\",\"podspecDir\":\"../../packages/expo-cellular/ios\"}],\"swiftModuleNames\":[\"ExpoCellular\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CellularModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-clipboard\",\"pods\":[{\"podName\":\"ExpoClipboard\",\"podspecDir\":\"../../packages/expo-clipboard/ios\"}],\"swiftModuleNames\":[\"ExpoClipboard\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ClipboardModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-constants\",\"pods\":[{\"podName\":\"EXConstants\",\"podspecDir\":\"../../packages/expo-constants/ios\"}],\"swiftModuleNames\":[\"EXConstants\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ConstantsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"18.0.9\"},{\"packageName\":\"expo-contacts\",\"pods\":[{\"podName\":\"ExpoContacts\",\"podspecDir\":\"../../packages/expo-contacts/ios\"}],\"swiftModuleNames\":[\"ExpoContacts\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ContactsModule\"},{\"name\":null,\"class\":\"ContactAccessButtonModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.8\"},{\"packageName\":\"expo-crypto\",\"pods\":[{\"podName\":\"ExpoCrypto\",\"podspecDir\":\"../../packages/expo-crypto/ios\"}],\"swiftModuleNames\":[\"ExpoCrypto\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CryptoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-dev-client\",\"pods\":[{\"podName\":\"expo-dev-client\",\"podspecDir\":\"../../packages/expo-dev-client/ios\"}],\"swiftModuleNames\":[\"expo_dev_client\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.12\"},{\"packageName\":\"expo-dev-launcher\",\"pods\":[{\"podName\":\"expo-dev-launcher\",\"podspecDir\":\"../../packages/expo-dev-launcher\"}],\"swiftModuleNames\":[\"EXDevLauncher\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[\"ExpoDevLauncherAppDelegateSubscriber\"],\"reactDelegateHandlers\":[\"ExpoDevLauncherReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"6.0.11\"},{\"packageName\":\"expo-dev-menu\",\"pods\":[{\"podName\":\"expo-dev-menu\",\"podspecDir\":\"../../packages/expo-dev-menu\"}],\"swiftModuleNames\":[\"EXDevMenu\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DevMenuModule\"},{\"name\":null,\"class\":\"DevMenuInternalModule\"},{\"name\":null,\"class\":\"DevMenuPreferences\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoDevMenuReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"7.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"pods\":[{\"podName\":\"expo-dev-menu-interface\",\"podspecDir\":\"../../packages/expo-dev-menu-interface/ios\"}],\"swiftModuleNames\":[\"expo_dev_menu_interface\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-device\",\"pods\":[{\"podName\":\"ExpoDevice\",\"podspecDir\":\"../../packages/expo-device/ios\"}],\"swiftModuleNames\":[\"ExpoDevice\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DeviceModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-document-picker\",\"pods\":[{\"podName\":\"ExpoDocumentPicker\",\"podspecDir\":\"../../packages/expo-document-picker/ios\"}],\"swiftModuleNames\":[\"ExpoDocumentPicker\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DocumentPickerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-eas-client\",\"pods\":[{\"podName\":\"EASClient\",\"podspecDir\":\"../../packages/expo-eas-client/ios\"}],\"swiftModuleNames\":[\"EASClient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"EASClientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-file-system\",\"pods\":[{\"podName\":\"ExpoFileSystem\",\"podspecDir\":\"../../packages/expo-file-system/ios\"}],\"swiftModuleNames\":[\"ExpoFileSystem\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"FileSystemModule\"},{\"name\":null,\"class\":\"FileSystemLegacyModule\"}],\"appDelegateSubscribers\":[\"FileSystemBackgroundSessionHandler\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"19.0.14\"},{\"packageName\":\"expo-font\",\"pods\":[{\"podName\":\"ExpoFont\",\"podspecDir\":\"../../packages/expo-font/ios\"}],\"swiftModuleNames\":[\"ExpoFont\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"FontLoaderModule\"},{\"name\":null,\"class\":\"FontUtilsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.8\"},{\"packageName\":\"expo-gl\",\"pods\":[{\"podName\":\"ExpoGL\",\"podspecDir\":\"../../packages/expo-gl\"}],\"swiftModuleNames\":[\"ExpoGL\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoGLModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"16.0.7\"},{\"packageName\":\"expo-glass-effect\",\"pods\":[{\"podName\":\"ExpoGlassEffect\",\"podspecDir\":\"../../packages/expo-glass-effect/ios\"}],\"swiftModuleNames\":[\"ExpoGlassEffect\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"GlassEffectModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.3\"},{\"packageName\":\"expo-haptics\",\"pods\":[{\"podName\":\"ExpoHaptics\",\"podspecDir\":\"../../packages/expo-haptics/ios\"}],\"swiftModuleNames\":[\"ExpoHaptics\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"HapticsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-image\",\"pods\":[{\"podName\":\"ExpoImage\",\"podspecDir\":\"../../packages/expo-image/ios\"}],\"swiftModuleNames\":[\"ExpoImage\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImageModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.8\"},{\"packageName\":\"expo-image-manipulator\",\"pods\":[{\"podName\":\"ExpoImageManipulator\",\"podspecDir\":\"../../packages/expo-image-manipulator/ios\"}],\"swiftModuleNames\":[\"ExpoImageManipulator\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImageManipulatorModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-image-picker\",\"pods\":[{\"podName\":\"ExpoImagePicker\",\"podspecDir\":\"../../packages/expo-image-picker/ios\"}],\"swiftModuleNames\":[\"ExpoImagePicker\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImagePickerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-insights\",\"pods\":[{\"podName\":\"ExpoInsights\",\"podspecDir\":\"../../packages/expo-insights/ios\"}],\"swiftModuleNames\":[\"ExpoInsights\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"InsightsModule\"}],\"appDelegateSubscribers\":[\"InsightsAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-json-utils\",\"pods\":[{\"podName\":\"EXJSONUtils\",\"podspecDir\":\"../../packages/expo-json-utils/ios\"}],\"swiftModuleNames\":[\"EXJSONUtils\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.15.0\"},{\"packageName\":\"expo-keep-awake\",\"pods\":[{\"podName\":\"ExpoKeepAwake\",\"podspecDir\":\"../../packages/expo-keep-awake/ios\"}],\"swiftModuleNames\":[\"ExpoKeepAwake\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"KeepAwakeModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linear-gradient\",\"pods\":[{\"podName\":\"ExpoLinearGradient\",\"podspecDir\":\"../../packages/expo-linear-gradient/ios\"}],\"swiftModuleNames\":[\"ExpoLinearGradient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LinearGradientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linking\",\"pods\":[{\"podName\":\"ExpoLinking\",\"podspecDir\":\"../../packages/expo-linking/ios\"}],\"swiftModuleNames\":[\"ExpoLinking\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoLinkingModule\"}],\"appDelegateSubscribers\":[\"LinkingAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-live-photo\",\"pods\":[{\"podName\":\"ExpoLivePhoto\",\"podspecDir\":\"../../packages/expo-live-photo/ios\"}],\"swiftModuleNames\":[\"ExpoLivePhoto\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LivePhotoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-local-authentication\",\"pods\":[{\"podName\":\"ExpoLocalAuthentication\",\"podspecDir\":\"../../packages/expo-local-authentication/ios\"}],\"swiftModuleNames\":[\"ExpoLocalAuthentication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocalAuthenticationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-localization\",\"pods\":[{\"podName\":\"ExpoLocalization\",\"podspecDir\":\"../../packages/expo-localization/ios\"}],\"swiftModuleNames\":[\"ExpoLocalization\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocalizationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-location\",\"pods\":[{\"podName\":\"ExpoLocation\",\"podspecDir\":\"../../packages/expo-location/ios\"}],\"swiftModuleNames\":[\"ExpoLocation\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"19.0.7\"},{\"packageName\":\"expo-mail-composer\",\"pods\":[{\"podName\":\"ExpoMailComposer\",\"podspecDir\":\"../../packages/expo-mail-composer/ios\"}],\"swiftModuleNames\":[\"ExpoMailComposer\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MailComposerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-manifests\",\"pods\":[{\"podName\":\"EXManifests\",\"podspecDir\":\"../../packages/expo-manifests/ios\"}],\"swiftModuleNames\":[\"EXManifests\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.8\"},{\"packageName\":\"expo-maps\",\"pods\":[{\"podName\":\"ExpoMaps\",\"podspecDir\":\"../../packages/expo-maps/ios\"}],\"swiftModuleNames\":[\"ExpoMaps\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MapsModule\"},{\"name\":null,\"class\":\"AppleMapsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.12.7\"},{\"packageName\":\"expo-media-library\",\"pods\":[{\"podName\":\"ExpoMediaLibrary\",\"podspecDir\":\"../../packages/expo-media-library/ios\"}],\"swiftModuleNames\":[\"ExpoMediaLibrary\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MediaLibraryModule\"},{\"name\":null,\"class\":\"MediaLibraryNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"18.2.0\"},{\"packageName\":\"expo-mesh-gradient\",\"pods\":[{\"podName\":\"ExpoMeshGradient\",\"podspecDir\":\"../../packages/expo-mesh-gradient/ios\"}],\"swiftModuleNames\":[\"ExpoMeshGradient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MeshGradientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.4.7\"},{\"packageName\":\"expo-modules-core\",\"pods\":[{\"podName\":\"ExpoModulesCore\",\"podspecDir\":\"../../packages/expo-modules-core\"},{\"podName\":\"ExpoModulesJSI\",\"podspecDir\":\"../../packages/expo-modules-core\"}],\"swiftModuleNames\":[\"ExpoModulesCore\",\"ExpoModulesJSI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.16\"},{\"packageName\":\"expo-network\",\"pods\":[{\"podName\":\"ExpoNetwork\",\"podspecDir\":\"../../packages/expo-network/ios\"}],\"swiftModuleNames\":[\"ExpoNetwork\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"NetworkModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-notifications\",\"pods\":[{\"podName\":\"EXNotifications\",\"podspecDir\":\"../../packages/expo-notifications/ios\"}],\"swiftModuleNames\":[\"EXNotifications\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundModule\"},{\"name\":null,\"class\":\"BadgeModule\"},{\"name\":null,\"class\":\"CategoriesModule\"},{\"name\":null,\"class\":\"EmitterModule\"},{\"name\":null,\"class\":\"HandlerModule\"},{\"name\":null,\"class\":\"PermissionsModule\"},{\"name\":null,\"class\":\"PresentationModule\"},{\"name\":null,\"class\":\"PushTokenModule\"},{\"name\":null,\"class\":\"SchedulerModule\"},{\"name\":null,\"class\":\"ServerRegistrationModule\"}],\"appDelegateSubscribers\":[\"NotificationsAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.32.11\"},{\"packageName\":\"expo-print\",\"pods\":[{\"podName\":\"ExpoPrint\",\"podspecDir\":\"../../packages/expo-print/ios\"}],\"swiftModuleNames\":[\"ExpoPrint\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoPrintModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-router\",\"pods\":[{\"podName\":\"ExpoRouter\",\"podspecDir\":\"../../packages/expo-router/ios\"}],\"swiftModuleNames\":[\"ExpoRouter\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoHeadModule\"},{\"name\":null,\"class\":\"LinkPreviewNativeModule\"},{\"name\":null,\"class\":\"RouterToolbarModule\"}],\"appDelegateSubscribers\":[\"ExpoHeadAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.6\"},{\"packageName\":\"expo-screen-capture\",\"pods\":[{\"podName\":\"ExpoScreenCapture\",\"podspecDir\":\"../../packages/expo-screen-capture/ios\"}],\"swiftModuleNames\":[\"ExpoScreenCapture\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ScreenCaptureModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-screen-orientation\",\"pods\":[{\"podName\":\"ExpoScreenOrientation\",\"podspecDir\":\"../../packages/expo-screen-orientation/ios\"}],\"swiftModuleNames\":[\"ExpoScreenOrientation\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ScreenOrientationModule\"}],\"appDelegateSubscribers\":[\"ScreenOrientationAppDelegate\"],\"reactDelegateHandlers\":[\"ScreenOrientationReactDelegateHandler\"],\"debugOnly\":false,\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-secure-store\",\"pods\":[{\"podName\":\"ExpoSecureStore\",\"podspecDir\":\"../../packages/expo-secure-store/ios\"}],\"swiftModuleNames\":[\"ExpoSecureStore\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SecureStoreModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sensors\",\"pods\":[{\"podName\":\"ExpoSensors\",\"podspecDir\":\"../../packages/expo-sensors/ios\"}],\"swiftModuleNames\":[\"ExpoSensors\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AccelerometerModule\"},{\"name\":null,\"class\":\"BarometerModule\"},{\"name\":null,\"class\":\"DeviceMotionModule\"},{\"name\":null,\"class\":\"GyroscopeModule\"},{\"name\":null,\"class\":\"MagnetometerModule\"},{\"name\":null,\"class\":\"MagnetometerUncalibratedModule\"},{\"name\":null,\"class\":\"PedometerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sharing\",\"pods\":[{\"podName\":\"ExpoSharing\",\"podspecDir\":\"../../packages/expo-sharing/ios\"}],\"swiftModuleNames\":[\"ExpoSharing\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SharingModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-sms\",\"pods\":[{\"podName\":\"ExpoSMS\",\"podspecDir\":\"../../packages/expo-sms/ios\"}],\"swiftModuleNames\":[\"ExpoSMS\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoSMSModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-speech\",\"pods\":[{\"podName\":\"ExpoSpeech\",\"podspecDir\":\"../../packages/expo-speech/ios\"}],\"swiftModuleNames\":[\"ExpoSpeech\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SpeechModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-splash-screen\",\"pods\":[{\"podName\":\"ExpoSplashScreen\",\"podspecDir\":\"../../packages/expo-splash-screen/ios\"}],\"swiftModuleNames\":[\"ExpoSplashScreen\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SplashScreenModule\"}],\"appDelegateSubscribers\":[\"SplashScreenAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"31.0.10\"},{\"packageName\":\"expo-sqlite\",\"pods\":[{\"podName\":\"ExpoSQLite\",\"podspecDir\":\"../../packages/expo-sqlite/ios\"}],\"swiftModuleNames\":[\"ExpoSQLite\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SQLiteModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"16.0.8\"},{\"packageName\":\"expo-store-review\",\"pods\":[{\"podName\":\"ExpoStoreReview\",\"podspecDir\":\"../../packages/expo-store-review/ios\"}],\"swiftModuleNames\":[\"ExpoStoreReview\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"StoreReviewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-structured-headers\",\"pods\":[{\"podName\":\"EXStructuredHeaders\",\"podspecDir\":\"../../packages/expo-structured-headers/ios\"}],\"swiftModuleNames\":[\"EXStructuredHeaders\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"5.0.0\"},{\"packageName\":\"expo-symbols\",\"pods\":[{\"podName\":\"ExpoSymbols\",\"podspecDir\":\"../../packages/expo-symbols/ios\"}],\"swiftModuleNames\":[\"ExpoSymbols\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SymbolModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-system-ui\",\"pods\":[{\"podName\":\"ExpoSystemUI\",\"podspecDir\":\"../../packages/expo-system-ui/ios\"}],\"swiftModuleNames\":[\"ExpoSystemUI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoSystemUIModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-task-manager\",\"pods\":[{\"podName\":\"ExpoTaskManager\",\"podspecDir\":\"../../packages/expo-task-manager/ios\"}],\"swiftModuleNames\":[\"ExpoTaskManager\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"TaskManagerModule\"}],\"appDelegateSubscribers\":[\"TaskManagerAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-tracking-transparency\",\"pods\":[{\"podName\":\"ExpoTrackingTransparency\",\"podspecDir\":\"../../packages/expo-tracking-transparency/ios\"}],\"swiftModuleNames\":[\"ExpoTrackingTransparency\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"TrackingTransparencyModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-updates\",\"pods\":[{\"podName\":\"EXUpdates\",\"podspecDir\":\"../../packages/expo-updates/ios\"}],\"swiftModuleNames\":[\"EXUpdates\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"UpdatesModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoUpdatesReactDelegateHandler\"],\"debugOnly\":false,\"packageVersion\":\"29.0.10\"},{\"packageName\":\"expo-updates-interface\",\"pods\":[{\"podName\":\"EXUpdatesInterface\",\"podspecDir\":\"../../packages/expo-updates-interface/ios\"}],\"swiftModuleNames\":[\"EXUpdatesInterface\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-video\",\"pods\":[{\"podName\":\"ExpoVideo\",\"podspecDir\":\"../../packages/expo-video/ios\"}],\"swiftModuleNames\":[\"ExpoVideo\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"VideoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.11\"},{\"packageName\":\"expo-video-thumbnails\",\"pods\":[{\"podName\":\"ExpoVideoThumbnails\",\"podspecDir\":\"../../packages/expo-video-thumbnails/ios\"}],\"swiftModuleNames\":[\"ExpoVideoThumbnails\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"VideoThumbnailsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-web-browser\",\"pods\":[{\"podName\":\"ExpoWebBrowser\",\"podspecDir\":\"../../packages/expo-web-browser/ios\"}],\"swiftModuleNames\":[\"ExpoWebBrowser\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"WebBrowserModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"unimodules-app-loader\",\"pods\":[{\"podName\":\"UMAppLoader\",\"podspecDir\":\"../../packages/unimodules-app-loader/ios\"}],\"swiftModuleNames\":[\"UMAppLoader\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"}]}",
"reasons": [
"expoAutolinkingIos"
],
"hash": "d8e176d02dc6da68f9dfed4937c96fb3cf352a5a"
},
"afterSource": {
"type": "contents",
"id": "expoAutolinkingConfig:ios",
"contents": "{\"extraDependencies\":[],\"coreFeatures\":[\"swiftui\",\"compose\"],\"modules\":[{\"packageName\":\"@expo/app-integrity\",\"pods\":[{\"podName\":\"ExpoAppIntegrity\",\"podspecDir\":\"../../packages/expo-app-integrity/ios\"}],\"swiftModuleNames\":[\"ExpoAppIntegrity\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"IntegrityModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.7\"},{\"packageName\":\"@expo/dom-webview\",\"pods\":[{\"podName\":\"ExpoDomWebView\",\"podspecDir\":\"../../packages/@expo/dom-webview/ios\"}],\"swiftModuleNames\":[\"ExpoDomWebView\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DomWebViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.2.7\"},{\"packageName\":\"@expo/log-box\",\"pods\":[{\"podName\":\"ExpoLogBox\",\"podspecDir\":\"../../packages/@expo/log-box\"}],\"swiftModuleNames\":[\"ExpoLogBox\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.13-canary-20251023-4c86f95\"},{\"packageName\":\"@expo/ui\",\"pods\":[{\"podName\":\"ExpoUI\",\"podspecDir\":\"../../packages/expo-ui/ios\"}],\"swiftModuleNames\":[\"ExpoUI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoUIModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.2.0-beta.10\"},{\"packageName\":\"benchmarking-module\",\"pods\":[{\"podName\":\"BenchmarkingModule\",\"podspecDir\":\"modules/benchmarking/ios\"}],\"swiftModuleNames\":[\"BenchmarkingModule\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BenchmarkingExpoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.1\"},{\"packageName\":\"expo\",\"pods\":[{\"podName\":\"Expo\",\"podspecDir\":\"../../packages/expo\"}],\"swiftModuleNames\":[\"Expo\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoFetchModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"54.0.8\"},{\"packageName\":\"expo-age-range\",\"pods\":[{\"podName\":\"ExpoAgeRange\",\"podspecDir\":\"../../packages/expo-age-range/ios\"}],\"swiftModuleNames\":[\"ExpoAgeRange\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AgeRangeModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.2.0\"},{\"packageName\":\"expo-apple-authentication\",\"pods\":[{\"podName\":\"ExpoAppleAuthentication\",\"podspecDir\":\"../../packages/expo-apple-authentication/ios\"}],\"swiftModuleNames\":[\"ExpoAppleAuthentication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AppleAuthenticationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-application\",\"pods\":[{\"podName\":\"EXApplication\",\"podspecDir\":\"../../packages/expo-application/ios\"}],\"swiftModuleNames\":[\"EXApplication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ApplicationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"7.0.7\"},{\"packageName\":\"expo-asset\",\"pods\":[{\"podName\":\"ExpoAsset\",\"podspecDir\":\"../../packages/expo-asset/ios\"}],\"swiftModuleNames\":[\"ExpoAsset\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AssetModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"12.0.8\"},{\"packageName\":\"expo-audio\",\"pods\":[{\"podName\":\"ExpoAudio\",\"podspecDir\":\"../../packages/expo-audio/ios\"}],\"swiftModuleNames\":[\"ExpoAudio\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AudioModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.12\"},{\"packageName\":\"expo-background-fetch\",\"pods\":[{\"podName\":\"ExpoBackgroundFetch\",\"podspecDir\":\"../../packages/expo-background-fetch/ios\"}],\"swiftModuleNames\":[\"ExpoBackgroundFetch\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundFetchModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-background-task\",\"pods\":[{\"podName\":\"ExpoBackgroundTask\",\"podspecDir\":\"../../packages/expo-background-task/ios\"}],\"swiftModuleNames\":[\"ExpoBackgroundTask\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundTaskModule\"}],\"appDelegateSubscribers\":[\"BackgroundTaskAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-battery\",\"pods\":[{\"podName\":\"ExpoBattery\",\"podspecDir\":\"../../packages/expo-battery/ios\"}],\"swiftModuleNames\":[\"ExpoBattery\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BatteryModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-blob\",\"pods\":[{\"podName\":\"ExpoBlob\",\"podspecDir\":\"../../packages/expo-blob/ios\"}],\"swiftModuleNames\":[\"ExpoBlob\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoBlob\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.6\"},{\"packageName\":\"expo-blur\",\"pods\":[{\"podName\":\"ExpoBlur\",\"podspecDir\":\"../../packages/expo-blur/ios\"}],\"swiftModuleNames\":[\"ExpoBlur\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BlurViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-brightness\",\"pods\":[{\"podName\":\"ExpoBrightness\",\"podspecDir\":\"../../packages/expo-brightness/ios\"}],\"swiftModuleNames\":[\"ExpoBrightness\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BrightnessModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-calendar\",\"pods\":[{\"podName\":\"ExpoCalendar\",\"podspecDir\":\"../../packages/expo-calendar/ios\"}],\"swiftModuleNames\":[\"ExpoCalendar\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CalendarModule\"},{\"name\":null,\"class\":\"CalendarNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-camera\",\"pods\":[{\"podName\":\"ExpoCamera\",\"podspecDir\":\"../../packages/expo-camera/ios\"}],\"swiftModuleNames\":[\"ExpoCamera\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CameraViewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-cellular\",\"pods\":[{\"podName\":\"ExpoCellular\",\"podspecDir\":\"../../packages/expo-cellular/ios\"}],\"swiftModuleNames\":[\"ExpoCellular\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CellularModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-clipboard\",\"pods\":[{\"podName\":\"ExpoClipboard\",\"podspecDir\":\"../../packages/expo-clipboard/ios\"}],\"swiftModuleNames\":[\"ExpoClipboard\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ClipboardModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-constants\",\"pods\":[{\"podName\":\"EXConstants\",\"podspecDir\":\"../../packages/expo-constants/ios\"}],\"swiftModuleNames\":[\"EXConstants\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ConstantsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"18.0.9\"},{\"packageName\":\"expo-contacts\",\"pods\":[{\"podName\":\"ExpoContacts\",\"podspecDir\":\"../../packages/expo-contacts/ios\"}],\"swiftModuleNames\":[\"ExpoContacts\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ContactsModule\"},{\"name\":null,\"class\":\"ContactAccessButtonModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.8\"},{\"packageName\":\"expo-crypto\",\"pods\":[{\"podName\":\"ExpoCrypto\",\"podspecDir\":\"../../packages/expo-crypto/ios\"}],\"swiftModuleNames\":[\"ExpoCrypto\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"CryptoModule\"},{\"name\":null,\"class\":\"AesCryptoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-dev-client\",\"pods\":[{\"podName\":\"expo-dev-client\",\"podspecDir\":\"../../packages/expo-dev-client/ios\"}],\"swiftModuleNames\":[\"expo_dev_client\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.12\"},{\"packageName\":\"expo-dev-launcher\",\"pods\":[{\"podName\":\"expo-dev-launcher\",\"podspecDir\":\"../../packages/expo-dev-launcher\"}],\"swiftModuleNames\":[\"EXDevLauncher\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[\"ExpoDevLauncherAppDelegateSubscriber\"],\"reactDelegateHandlers\":[\"ExpoDevLauncherReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"6.0.11\"},{\"packageName\":\"expo-dev-menu\",\"pods\":[{\"podName\":\"expo-dev-menu\",\"podspecDir\":\"../../packages/expo-dev-menu\"}],\"swiftModuleNames\":[\"EXDevMenu\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DevMenuModule\"},{\"name\":null,\"class\":\"DevMenuInternalModule\"},{\"name\":null,\"class\":\"DevMenuPreferences\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoDevMenuReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"7.0.11\"},{\"packageName\":\"expo-dev-menu-interface\",\"pods\":[{\"podName\":\"expo-dev-menu-interface\",\"podspecDir\":\"../../packages/expo-dev-menu-interface/ios\"}],\"swiftModuleNames\":[\"expo_dev_menu_interface\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-device\",\"pods\":[{\"podName\":\"ExpoDevice\",\"podspecDir\":\"../../packages/expo-device/ios\"}],\"swiftModuleNames\":[\"ExpoDevice\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DeviceModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-document-picker\",\"pods\":[{\"podName\":\"ExpoDocumentPicker\",\"podspecDir\":\"../../packages/expo-document-picker/ios\"}],\"swiftModuleNames\":[\"ExpoDocumentPicker\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DocumentPickerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-eas-client\",\"pods\":[{\"podName\":\"EASClient\",\"podspecDir\":\"../../packages/expo-eas-client/ios\"}],\"swiftModuleNames\":[\"EASClient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"EASClientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-file-system\",\"pods\":[{\"podName\":\"ExpoFileSystem\",\"podspecDir\":\"../../packages/expo-file-system/ios\"}],\"swiftModuleNames\":[\"ExpoFileSystem\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"FileSystemModule\"},{\"name\":null,\"class\":\"FileSystemLegacyModule\"}],\"appDelegateSubscribers\":[\"FileSystemBackgroundSessionHandler\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"19.0.14\"},{\"packageName\":\"expo-font\",\"pods\":[{\"podName\":\"ExpoFont\",\"podspecDir\":\"../../packages/expo-font/ios\"}],\"swiftModuleNames\":[\"ExpoFont\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"FontLoaderModule\"},{\"name\":null,\"class\":\"FontUtilsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.8\"},{\"packageName\":\"expo-gl\",\"pods\":[{\"podName\":\"ExpoGL\",\"podspecDir\":\"../../packages/expo-gl\"}],\"swiftModuleNames\":[\"ExpoGL\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoGLModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"16.0.7\"},{\"packageName\":\"expo-glass-effect\",\"pods\":[{\"podName\":\"ExpoGlassEffect\",\"podspecDir\":\"../../packages/expo-glass-effect/ios\"}],\"swiftModuleNames\":[\"ExpoGlassEffect\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"GlassEffectModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.1.3\"},{\"packageName\":\"expo-haptics\",\"pods\":[{\"podName\":\"ExpoHaptics\",\"podspecDir\":\"../../packages/expo-haptics/ios\"}],\"swiftModuleNames\":[\"ExpoHaptics\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"HapticsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-image\",\"pods\":[{\"podName\":\"ExpoImage\",\"podspecDir\":\"../../packages/expo-image/ios\"}],\"swiftModuleNames\":[\"ExpoImage\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImageModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.8\"},{\"packageName\":\"expo-image-manipulator\",\"pods\":[{\"podName\":\"ExpoImageManipulator\",\"podspecDir\":\"../../packages/expo-image-manipulator/ios\"}],\"swiftModuleNames\":[\"ExpoImageManipulator\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImageManipulatorModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-image-picker\",\"pods\":[{\"podName\":\"ExpoImagePicker\",\"podspecDir\":\"../../packages/expo-image-picker/ios\"}],\"swiftModuleNames\":[\"ExpoImagePicker\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ImagePickerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.8\"},{\"packageName\":\"expo-insights\",\"pods\":[{\"podName\":\"ExpoInsights\",\"podspecDir\":\"../../packages/expo-insights/ios\"}],\"swiftModuleNames\":[\"ExpoInsights\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"InsightsModule\"}],\"appDelegateSubscribers\":[\"InsightsAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.10.7\"},{\"packageName\":\"expo-json-utils\",\"pods\":[{\"podName\":\"EXJSONUtils\",\"podspecDir\":\"../../packages/expo-json-utils/ios\"}],\"swiftModuleNames\":[\"EXJSONUtils\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.15.0\"},{\"packageName\":\"expo-keep-awake\",\"pods\":[{\"podName\":\"ExpoKeepAwake\",\"podspecDir\":\"../../packages/expo-keep-awake/ios\"}],\"swiftModuleNames\":[\"ExpoKeepAwake\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"KeepAwakeModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linear-gradient\",\"pods\":[{\"podName\":\"ExpoLinearGradient\",\"podspecDir\":\"../../packages/expo-linear-gradient/ios\"}],\"swiftModuleNames\":[\"ExpoLinearGradient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LinearGradientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-linking\",\"pods\":[{\"podName\":\"ExpoLinking\",\"podspecDir\":\"../../packages/expo-linking/ios\"}],\"swiftModuleNames\":[\"ExpoLinking\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoLinkingModule\"}],\"appDelegateSubscribers\":[\"LinkingAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-live-photo\",\"pods\":[{\"podName\":\"ExpoLivePhoto\",\"podspecDir\":\"../../packages/expo-live-photo/ios\"}],\"swiftModuleNames\":[\"ExpoLivePhoto\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LivePhotoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-local-authentication\",\"pods\":[{\"podName\":\"ExpoLocalAuthentication\",\"podspecDir\":\"../../packages/expo-local-authentication/ios\"}],\"swiftModuleNames\":[\"ExpoLocalAuthentication\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocalAuthenticationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-localization\",\"pods\":[{\"podName\":\"ExpoLocalization\",\"podspecDir\":\"../../packages/expo-localization/ios\"}],\"swiftModuleNames\":[\"ExpoLocalization\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocalizationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"17.0.7\"},{\"packageName\":\"expo-location\",\"pods\":[{\"podName\":\"ExpoLocation\",\"podspecDir\":\"../../packages/expo-location/ios\"}],\"swiftModuleNames\":[\"ExpoLocation\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"LocationModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"19.0.7\"},{\"packageName\":\"expo-mail-composer\",\"pods\":[{\"podName\":\"ExpoMailComposer\",\"podspecDir\":\"../../packages/expo-mail-composer/ios\"}],\"swiftModuleNames\":[\"ExpoMailComposer\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MailComposerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-manifests\",\"pods\":[{\"podName\":\"EXManifests\",\"podspecDir\":\"../../packages/expo-manifests/ios\"}],\"swiftModuleNames\":[\"EXManifests\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.8\"},{\"packageName\":\"expo-maps\",\"pods\":[{\"podName\":\"ExpoMaps\",\"podspecDir\":\"../../packages/expo-maps/ios\"}],\"swiftModuleNames\":[\"ExpoMaps\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MapsModule\"},{\"name\":null,\"class\":\"AppleMapsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.12.7\"},{\"packageName\":\"expo-media-library\",\"pods\":[{\"podName\":\"ExpoMediaLibrary\",\"podspecDir\":\"../../packages/expo-media-library/ios\"}],\"swiftModuleNames\":[\"ExpoMediaLibrary\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MediaLibraryModule\"},{\"name\":null,\"class\":\"MediaLibraryNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"18.2.0\"},{\"packageName\":\"expo-mesh-gradient\",\"pods\":[{\"podName\":\"ExpoMeshGradient\",\"podspecDir\":\"../../packages/expo-mesh-gradient/ios\"}],\"swiftModuleNames\":[\"ExpoMeshGradient\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"MeshGradientModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"coreFeatures\":[\"swiftui\",\"compose\"],\"packageVersion\":\"0.4.7\"},{\"packageName\":\"expo-modules-core\",\"pods\":[{\"podName\":\"ExpoModulesCore\",\"podspecDir\":\"../../packages/expo-modules-core\"},{\"podName\":\"ExpoModulesJSI\",\"podspecDir\":\"../../packages/expo-modules-core\"}],\"swiftModuleNames\":[\"ExpoModulesCore\",\"ExpoModulesJSI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.16\"},{\"packageName\":\"expo-network\",\"pods\":[{\"podName\":\"ExpoNetwork\",\"podspecDir\":\"../../packages/expo-network/ios\"}],\"swiftModuleNames\":[\"ExpoNetwork\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"NetworkModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.7\"},{\"packageName\":\"expo-notifications\",\"pods\":[{\"podName\":\"EXNotifications\",\"podspecDir\":\"../../packages/expo-notifications/ios\"}],\"swiftModuleNames\":[\"EXNotifications\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"BackgroundModule\"},{\"name\":null,\"class\":\"BadgeModule\"},{\"name\":null,\"class\":\"CategoriesModule\"},{\"name\":null,\"class\":\"EmitterModule\"},{\"name\":null,\"class\":\"HandlerModule\"},{\"name\":null,\"class\":\"PermissionsModule\"},{\"name\":null,\"class\":\"PresentationModule\"},{\"name\":null,\"class\":\"PushTokenModule\"},{\"name\":null,\"class\":\"SchedulerModule\"},{\"name\":null,\"class\":\"ServerRegistrationModule\"}],\"appDelegateSubscribers\":[\"NotificationsAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.32.11\"},{\"packageName\":\"expo-print\",\"pods\":[{\"podName\":\"ExpoPrint\",\"podspecDir\":\"../../packages/expo-print/ios\"}],\"swiftModuleNames\":[\"ExpoPrint\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoPrintModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-router\",\"pods\":[{\"podName\":\"ExpoRouter\",\"podspecDir\":\"../../packages/expo-router/ios\"}],\"swiftModuleNames\":[\"ExpoRouter\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoHeadModule\"},{\"name\":null,\"class\":\"LinkPreviewNativeModule\"},{\"name\":null,\"class\":\"RouterToolbarModule\"}],\"appDelegateSubscribers\":[\"ExpoHeadAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.6\"},{\"packageName\":\"expo-screen-capture\",\"pods\":[{\"podName\":\"ExpoScreenCapture\",\"podspecDir\":\"../../packages/expo-screen-capture/ios\"}],\"swiftModuleNames\":[\"ExpoScreenCapture\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ScreenCaptureModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"8.0.8\"},{\"packageName\":\"expo-screen-orientation\",\"pods\":[{\"podName\":\"ExpoScreenOrientation\",\"podspecDir\":\"../../packages/expo-screen-orientation/ios\"}],\"swiftModuleNames\":[\"ExpoScreenOrientation\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ScreenOrientationModule\"}],\"appDelegateSubscribers\":[\"ScreenOrientationAppDelegate\"],\"reactDelegateHandlers\":[\"ScreenOrientationReactDelegateHandler\"],\"debugOnly\":false,\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-secure-store\",\"pods\":[{\"podName\":\"ExpoSecureStore\",\"podspecDir\":\"../../packages/expo-secure-store/ios\"}],\"swiftModuleNames\":[\"ExpoSecureStore\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SecureStoreModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sensors\",\"pods\":[{\"podName\":\"ExpoSensors\",\"podspecDir\":\"../../packages/expo-sensors/ios\"}],\"swiftModuleNames\":[\"ExpoSensors\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"AccelerometerModule\"},{\"name\":null,\"class\":\"BarometerModule\"},{\"name\":null,\"class\":\"DeviceMotionModule\"},{\"name\":null,\"class\":\"GyroscopeModule\"},{\"name\":null,\"class\":\"MagnetometerModule\"},{\"name\":null,\"class\":\"MagnetometerUncalibratedModule\"},{\"name\":null,\"class\":\"PedometerModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"expo-sharing\",\"pods\":[{\"podName\":\"ExpoSharing\",\"podspecDir\":\"../../packages/expo-sharing/ios\"}],\"swiftModuleNames\":[\"ExpoSharing\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SharingModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-sms\",\"pods\":[{\"podName\":\"ExpoSMS\",\"podspecDir\":\"../../packages/expo-sms/ios\"}],\"swiftModuleNames\":[\"ExpoSMS\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoSMSModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-speech\",\"pods\":[{\"podName\":\"ExpoSpeech\",\"podspecDir\":\"../../packages/expo-speech/ios\"}],\"swiftModuleNames\":[\"ExpoSpeech\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SpeechModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-splash-screen\",\"pods\":[{\"podName\":\"ExpoSplashScreen\",\"podspecDir\":\"../../packages/expo-splash-screen/ios\"}],\"swiftModuleNames\":[\"ExpoSplashScreen\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SplashScreenModule\"}],\"appDelegateSubscribers\":[\"SplashScreenAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"31.0.10\"},{\"packageName\":\"expo-sqlite\",\"pods\":[{\"podName\":\"ExpoSQLite\",\"podspecDir\":\"../../packages/expo-sqlite/ios\"}],\"swiftModuleNames\":[\"ExpoSQLite\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SQLiteModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"16.0.8\"},{\"packageName\":\"expo-store-review\",\"pods\":[{\"podName\":\"ExpoStoreReview\",\"podspecDir\":\"../../packages/expo-store-review/ios\"}],\"swiftModuleNames\":[\"ExpoStoreReview\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"StoreReviewModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"9.0.7\"},{\"packageName\":\"expo-structured-headers\",\"pods\":[{\"podName\":\"EXStructuredHeaders\",\"podspecDir\":\"../../packages/expo-structured-headers/ios\"}],\"swiftModuleNames\":[\"EXStructuredHeaders\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"5.0.0\"},{\"packageName\":\"expo-symbols\",\"pods\":[{\"podName\":\"ExpoSymbols\",\"podspecDir\":\"../../packages/expo-symbols/ios\"}],\"swiftModuleNames\":[\"ExpoSymbols\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"SymbolModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"1.0.7\"},{\"packageName\":\"expo-system-ui\",\"pods\":[{\"podName\":\"ExpoSystemUI\",\"podspecDir\":\"../../packages/expo-system-ui/ios\"}],\"swiftModuleNames\":[\"ExpoSystemUI\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoSystemUIModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-task-manager\",\"pods\":[{\"podName\":\"ExpoTaskManager\",\"podspecDir\":\"../../packages/expo-task-manager/ios\"}],\"swiftModuleNames\":[\"ExpoTaskManager\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"TaskManagerModule\"}],\"appDelegateSubscribers\":[\"TaskManagerAppDelegateSubscriber\"],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"14.0.7\"},{\"packageName\":\"expo-tracking-transparency\",\"pods\":[{\"podName\":\"ExpoTrackingTransparency\",\"podspecDir\":\"../../packages/expo-tracking-transparency/ios\"}],\"swiftModuleNames\":[\"ExpoTrackingTransparency\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"TrackingTransparencyModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"},{\"packageName\":\"expo-updates\",\"pods\":[{\"podName\":\"EXUpdates\",\"podspecDir\":\"../../packages/expo-updates/ios\"}],\"swiftModuleNames\":[\"EXUpdates\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"UpdatesModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[\"ExpoUpdatesReactDelegateHandler\"],\"debugOnly\":false,\"packageVersion\":\"29.0.10\"},{\"packageName\":\"expo-updates-interface\",\"pods\":[{\"podName\":\"EXUpdatesInterface\",\"podspecDir\":\"../../packages/expo-updates-interface/ios\"}],\"swiftModuleNames\":[\"EXUpdatesInterface\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"2.0.0\"},{\"packageName\":\"expo-video\",\"pods\":[{\"podName\":\"ExpoVideo\",\"podspecDir\":\"../../packages/expo-video/ios\"}],\"swiftModuleNames\":[\"ExpoVideo\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"VideoModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"3.0.11\"},{\"packageName\":\"expo-video-thumbnails\",\"pods\":[{\"podName\":\"ExpoVideoThumbnails\",\"podspecDir\":\"../../packages/expo-video-thumbnails/ios\"}],\"swiftModuleNames\":[\"ExpoVideoThumbnails\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"VideoThumbnailsModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"10.0.7\"},{\"packageName\":\"expo-web-browser\",\"pods\":[{\"podName\":\"ExpoWebBrowser\",\"podspecDir\":\"../../packages/expo-web-browser/ios\"}],\"swiftModuleNames\":[\"ExpoWebBrowser\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"WebBrowserModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"15.0.7\"},{\"packageName\":\"unimodules-app-loader\",\"pods\":[{\"podName\":\"UMAppLoader\",\"podspecDir\":\"../../packages/unimodules-app-loader/ios\"}],\"swiftModuleNames\":[\"UMAppLoader\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"6.0.7\"}]}",
"reasons": [
"expoAutolinkingIos"
],
"hash": "054da62c1c8e1479b23ec9de9d985ca0de4d7d64"
}
}
]Generated by PR labeler 🤖 |
|
Subscribed to pull request
Generated by CodeMention |
...ges/expo-crypto/android/src/main/java/expo/modules/crypto/aes/extensions/CipherExtensions.kt
Outdated
Show resolved
Hide resolved
...ges/expo-crypto/android/src/main/java/expo/modules/crypto/aes/extensions/CipherExtensions.kt
Outdated
Show resolved
Hide resolved
packages/expo-crypto/android/src/main/java/expo/modules/crypto/aes/AesCryptoModule.kt
Show resolved
Hide resolved
packages/expo-crypto/android/src/main/java/expo/modules/crypto/aes/AesCryptoModule.kt
Outdated
Show resolved
Hide resolved
packages/expo-crypto/android/src/main/java/expo/modules/crypto/aes/AesCryptoModule.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
I haven't reviewed the code yet (sorry, it's quite big 😅), but I think we don't have to separate it from the rest of expo-crypto. JS part is relatively small, so it's not a big problem. I think it's a good idea to have a separate native module though. Module instance on the native side is not lazy (definition is evaluated eagerly), but its JS functions, properties and classes are lazy. If you don't reference any of them in the top-level scope, it won't affect the bundle load time.
Same for the docs, I think it's more clear if they are grouped by package rather than package namespace. I'm generally in favor of listing them by package name in the sidebar, so expo-crypto instead of Crypto.
Okay, I'll merge the JS part, but I guess for some functions and types it would make sense to prefix them with
Yeah, that was exactly my thinking when deciding to separate native module for this 😉
If JS is merged, then merging docs makes sense too. |
|
@barthap @amandeepmittal @lukmccall Is there an ETA for this change to be released? |
|
It's in SDK 55 beta, will be stable in ~2 weeks |
|
@barthap Amazing news, thank you for the quick response, and the work for getting this in. |
Why
AES encryption/decryption is a common use case, and all platforms supported by Expo have native APIs for it.
How
Used native implementations for each platform:
CryptoKitAES GCMjavax.cryptoCipherandKeyGeneratorclassesSubtleCryptoAPIKey design ideas:
SealedDataformat for encrypted data, both easy to use andcompatible with any 3rd-party AES GCM API.
IV || ciphertext || taginto contiguous byte array.Modes other than AES-GCM are not supported. They have limited platform support and are discouraged for safety reasons.
👉 Basic usage example
📂 With FileSystem and SecureStore
📖 NIST safety recommendations
Default and allowed values are based on
NIST SD 800-38D
and RFC-5116 recommendations.
Key points:
AES.encryptAsync()is called.From NIST SD 800-38D section 5.2.1:
Test Plan
To-dos and discussions
Module format (resolved)
We don't have any unified concept of sub-modules.
The APIs introduced here are considerably large, larger than the whole current expo-crypto. There are a few classes/enums/interaces that are AES-specific, so it makes sense for them to be encapsulated. Therefore, a few decisions need to be made:
Decide where the API should reside and how it should be imported
import { AES } from 'expo-crypto'but this is not perfect if one wants to import methods/class names directlyimport * as AES from 'expo-crypto/aes';If we go with the API being flattened with existing crypto APIs, decide if native modules should be merged with existing
CryptoModuleor be a separate native module.Docs
There are a few concerns about docs
Docs structure (resolved)
How to show the AES API in docs. Our docs system doesn't handle nested namespaces well. When exported as a namespace, only module methods are displayed, without namespace-specific classes, enums, interfaces etc.
- We can improve the system to render all the stuff from a namespace, although the outputs might be messy.
- Or we can use two
<APISection />components in crypto.mdx - one for general crypto, the other for AES. The downside is that it makes the right sidebar a little messy- Like Expo UI, the crypto page can be split into two sub-pages. For now, I went with this approach, but I don't like how left sidebar looks with this change.
Handle overloads (resolved):
Other docs follow-ups (can be done later):
API design
User-facing API concerns:
SealedDatamethods sync. Now they do memory copying, but with zero-copy ArrayBuffer support (I'm working on it), they will only be returning appropriate pointers.Internal API concerns:
ReadableMaplimitations, we cannot passUint8Arrayas a Record property. Currently, I worked around this by converting to base64 on JS side, but perhaps the binary parameters should be moved to top-level arguments.Follow-ups
Can be done in later PRs
encryptStringAsync()anddecryptStringAsync()for string payloads. Currently,TextEncoder/TextDecodercan be used, or base64 withbtoa()/atob()to convert UTF strings into encryptable data.ArrayBuffers is added, some functions can be modified to return a zero-copy buffer. Now, there's copy overhead when creatingUint8Arrayon return.extractableoption toEncryptionKeyconstructors. It's a web-specific property of crypto keys that blocks revealing key data to JS code. In this PR, it's hardcoded totruebut it can be easily implemented and extended to native APIs as well.Checklist
changelog.mdentry and rebuilt the package sources according to this short guidenpx expo prebuild& EAS Build (eg: updated a module plugin).