[ui][iOS] - Add support for custom SwiftUI views and modifiers#42350
[ui][iOS] - Add support for custom SwiftUI views and modifiers#42350intergalacticspacehighway merged 20 commits intomainfrom
Conversation
|
Subscribed to pull request
Generated by CodeMention |
|
The Pull Request introduced fingerprint changes against the base commit: 60aa34a Fingerprint diff[
{
"op": "changed",
"beforeSource": {
"type": "dir",
"filePath": "../../packages/expo-ui/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "f46aff8f3358cd4c2989dcae376d83d7afe62884"
},
"afterSource": {
"type": "dir",
"filePath": "../../packages/expo-ui/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "2bf44ae8b68c7eda4f6b9d0dce549c62f80d9f66"
}
},
{
"op": "changed",
"beforeSource": {
"type": "dir",
"filePath": "ios",
"reasons": [
"bareNativeDir"
],
"hash": "c97eabb0e04e42ccbe91fdef6de17c5347faa560"
},
"afterSource": {
"type": "dir",
"filePath": "ios",
"reasons": [
"bareNativeDir"
],
"hash": "ee8188bf1fce766175b137ba743c775fbdec0bda"
}
},
{
"op": "added",
"addedSource": {
"type": "dir",
"filePath": "modules/test-expo-ui/ios",
"reasons": [
"expoAutolinkingIos"
],
"hash": "663b001c35c6a2f0125c05d0ed2a0bfa11d46d95"
}
},
{
"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\":\"55.0.4\"},{\"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\":\"55.0.2\"},{\"packageName\":\"@expo/log-box\",\"pods\":[{\"podName\":\"ExpoLogBox\",\"podspecDir\":\"../../packages/@expo/log-box\"}],\"swiftModuleNames\":[\"ExpoLogBox\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.5\"},{\"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\":\"55.0.0-preview.4\"},{\"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\":\"55.0.0-preview.9\"},{\"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.6\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-brownfield\",\"pods\":[{\"podName\":\"ExpoBrownfield\",\"podspecDir\":\"../../packages/expo-brownfield/ios\"}],\"swiftModuleNames\":[\"ExpoBrownfield\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoBrownfieldModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.6\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\"},{\"name\":null,\"class\":\"ContactsNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-dev-launcher\",\"pods\":[{\"podName\":\"expo-dev-launcher\",\"podspecDir\":\"../../packages/expo-dev-launcher\"}],\"swiftModuleNames\":[\"EXDevLauncher\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DevLauncherModule\"}],\"appDelegateSubscribers\":[\"ExpoDevLauncherAppDelegateSubscriber\"],\"reactDelegateHandlers\":[\"ExpoDevLauncherReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.1\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.2\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.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\":\"55.0.2\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-manifests\",\"pods\":[{\"podName\":\"EXManifests\",\"podspecDir\":\"../../packages/expo-manifests/ios\"}],\"swiftModuleNames\":[\"EXManifests\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.7\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-notifications\",\"pods\":[{\"podName\":\"ExpoNotifications\",\"podspecDir\":\"../../packages/expo-notifications/ios\"}],\"swiftModuleNames\":[\"ExpoNotifications\"],\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.0-preview.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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.6\"},{\"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\":\"55.1.1\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.2\"},{\"packageName\":\"worklets-tester\",\"pods\":[{\"podName\":\"WorkletsTester\",\"podspecDir\":\"modules/worklets-tester/ios\"}],\"swiftModuleNames\":[\"WorkletsTester\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"WorkletsTesterModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.1\"}]}",
"reasons": [
"expoAutolinkingIos"
],
"hash": "a7bc285b17cea715f0beb72ed0b9b00c56079c0d"
},
"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\":\"55.0.4\"},{\"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\":\"55.0.2\"},{\"packageName\":\"@expo/log-box\",\"pods\":[{\"podName\":\"ExpoLogBox\",\"podspecDir\":\"../../packages/@expo/log-box\"}],\"swiftModuleNames\":[\"ExpoLogBox\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.5\"},{\"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\":\"55.0.0-preview.4\"},{\"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\":\"55.0.0-preview.9\"},{\"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.6\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-brownfield\",\"pods\":[{\"podName\":\"ExpoBrownfield\",\"podspecDir\":\"../../packages/expo-brownfield/ios\"}],\"swiftModuleNames\":[\"ExpoBrownfield\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"ExpoBrownfieldModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.6\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\"},{\"name\":null,\"class\":\"ContactsNextModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-dev-launcher\",\"pods\":[{\"podName\":\"expo-dev-launcher\",\"podspecDir\":\"../../packages/expo-dev-launcher\"}],\"swiftModuleNames\":[\"EXDevLauncher\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"DevLauncherModule\"}],\"appDelegateSubscribers\":[\"ExpoDevLauncherAppDelegateSubscriber\"],\"reactDelegateHandlers\":[\"ExpoDevLauncherReactDelegateHandler\"],\"debugOnly\":true,\"packageVersion\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.1\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.2\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.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\":\"55.0.2\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-manifests\",\"pods\":[{\"podName\":\"EXManifests\",\"podspecDir\":\"../../packages/expo-manifests/ios\"}],\"swiftModuleNames\":[\"EXManifests\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.7\"},{\"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\":\"55.0.4\"},{\"packageName\":\"expo-notifications\",\"pods\":[{\"podName\":\"ExpoNotifications\",\"podspecDir\":\"../../packages/expo-notifications/ios\"}],\"swiftModuleNames\":[\"ExpoNotifications\"],\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.0-preview.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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.5\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.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\":\"55.0.3\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.6\"},{\"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\":\"55.1.1\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"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\":\"55.0.4\"},{\"packageName\":\"test-expo-ui\",\"pods\":[{\"podName\":\"TestExpoUi\",\"podspecDir\":\"modules/test-expo-ui/ios\"}],\"swiftModuleNames\":[\"TestExpoUi\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"TestExpoUiModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.1\"},{\"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\":\"55.0.2\"},{\"packageName\":\"worklets-tester\",\"pods\":[{\"podName\":\"WorkletsTester\",\"podspecDir\":\"modules/worklets-tester/ios\"}],\"swiftModuleNames\":[\"WorkletsTester\"],\"flags\":{\"inhibit_warnings\":false},\"modules\":[{\"name\":null,\"class\":\"WorkletsTesterModule\"}],\"appDelegateSubscribers\":[],\"reactDelegateHandlers\":[],\"debugOnly\":false,\"packageVersion\":\"0.0.1\"}]}",
"reasons": [
"expoAutolinkingIos"
],
"hash": "eceb4a15b6062ca119cfa76ebddb476e991e6d94"
}
}
]Generated by PR labeler 🤖 |
| OnCreate { | ||
| ViewModifierRegistry.register("customBorder") { params, appContext, _ in | ||
| return try CustomBorderModifier(from: params, appContext: appContext) | ||
| } | ||
| } | ||
|
|
||
| OnDestroy { | ||
| ViewModifierRegistry.unregister("customBorder") | ||
| } |
There was a problem hiding this comment.
Later we can add a custom DSL for registering modifiers. I tried below, but it will require some changes in core to support multiple definitions (It will wrap OnCreate and OnDestroy internally).
Modifier("customBorder", CustomBorderModifier.self)Once we finalise modifiers on Android we can think of a consistent DSL pattern. For now i just added explicit register/unregister in ViewModifierRegistry. cc - @Kudo wyt?
|
|
||
| If you haven't installed Expo UI yet: | ||
|
|
||
| <APIInstallSection /> |
There was a problem hiding this comment.
Also, we don't need the If you are installing this in... in this guide, which is coming from the APIInstallSection component.
There was a problem hiding this comment.
I'd avoid putting the package name in the front matter since this is now outside of the Reference. Please add the terminal component manually.
|
|
||
| Export your native view from the module's index file using `requireNativeView`: | ||
|
|
||
| ```ts index.ts |
There was a problem hiding this comment.
Is index.ts part of the module my-ui? I think so. Please add the complete path here.
There was a problem hiding this comment.
Thanks for catching, fixed in all snippets
Co-authored-by: Aman Mittal <amandeepmittal@live.com>
Kudo
left a comment
There was a problem hiding this comment.
Suggested verdict: 💬 COMMENT
Review: [ui][iOS] - Add support for custom SwiftUI views and modifiers
This PR exposes ViewModifierRegistry.register() and ViewModifierRegistry.unregister() as public static methods, enabling third-party Expo modules to register custom SwiftUI modifiers. It also adds comprehensive documentation and a working example module in native-component-list.
What works well:
- Clean API surface: static
register/unregistermethods delegate to the existing singleton, keeping the architecture intact. - The example module (
test-expo-ui) demonstrates both custom views and custom modifiers end-to-end. - The JS-side
createModifierwas already public with documentation intent for third-party use — this PR completes the native-side story. - Documentation is thorough, step-by-step, and follows existing patterns.
Key concerns:
- Thread safety: The mutable
modifierFactoriesdictionary has no synchronization. Currently safe because all writes happen duringinit(), but makingregister()/unregister()public opens it to concurrent read-write races. - No guard against overwriting built-in modifiers.
- The
ModiferFactorytypealias has a typo (Modifer→Modifier) that's now part of the public API.
| * This system uses ViewModifier structs for better performance than AnyView wrapping. | ||
| */ | ||
| internal class ViewModifierRegistry { | ||
| public class ViewModifierRegistry { |
There was a problem hiding this comment.
[🏗️ design] [design] Thread safety concern: ViewModifierRegistry is being made public with mutable state (modifierFactories dictionary) but has no synchronization mechanism. Currently this is safe because all writes happen during init(), but with public register()/unregister() methods, third-party code can call these at any time — including concurrently with applyModifier() reads on the render thread.
Options to consider:
- Add
@MainActorto the class (simplest — ensures all access is on the main thread) - Add a lock around
modifierFactoriesmutations - Document that
register()must only be called duringOnCreate(before views render) — this is the current pattern in the example, but nothing enforces it
Option 3 is pragmatically fine if you trust module authors to follow the pattern, since OnCreate runs synchronously during module initialization before any views are rendered. But it's worth a brief doc comment on the public register() method noting this constraint.
There was a problem hiding this comment.
makes sense, added a note to the functions and also in the docs. Thanks!
| static let shared = ViewModifierRegistry() | ||
|
|
||
| internal typealias ModiferFactory = ([String: Any], AppContext, EventDispatcher) throws -> any ViewModifier | ||
| public typealias ModiferFactory = ([String: Any], AppContext, EventDispatcher) throws -> any ViewModifier |
There was a problem hiding this comment.
[🐧 nit] [nit] The typealias ModiferFactory has a typo — should be ModifierFactory. Since this is now being promoted to public API, this typo becomes part of the public contract. Worth fixing before shipping if there are no existing consumers outside the package.
There was a problem hiding this comment.
my bad. please help me to fix the typo
| factory: @escaping ModiferFactory | ||
| ) { | ||
| shared.register(type, factory: factory) | ||
| } |
There was a problem hiding this comment.
[🏗️ design] [design] No guard against overwriting built-in modifiers. A third-party module could call register("padding", factory: ...) and silently replace the built-in padding modifier. Consider either:
- Checking if the key already exists and logging a warning / throwing
- Documenting that overwriting built-in modifiers is unsupported behavior
At minimum, a log warning would help developers debug unexpected behavior if two modules register the same modifier name.
There was a problem hiding this comment.
Added a warning log
| @@ -1332,6 +1349,13 @@ internal class ViewModifierRegistry { | |||
| modifierFactories[type] = factory | |||
There was a problem hiding this comment.
[🐧 nit] [suggestion] The new instance-level unregister() method lacks an access modifier, defaulting to internal. This is inconsistent with the instance-level register() method (also internal). Both are fine since the public API goes through the static methods, but it may be worth adding explicit internal for clarity.
| VStack { | ||
| Text(props.title) | ||
| .font(.headline) | ||
| Children() // Renders React children |
There was a problem hiding this comment.
[💡 suggestion] [suggestion] The guide shows @ObservedObject public var props but the example module's MyCustomView.swift uses @ObservedObject var props (no public). They should be consistent. The docs version with public is more correct since ExpoSwiftUI.View protocol likely requires public access.
| "apple": { | ||
| "modules": ["TestExpoUiModule"] | ||
| } | ||
| } |
There was a problem hiding this comment.
let's move the module to apps/bare-expo/modules. we used to test NCL from bare-expo or expo-go.
in the NCL screen, maybe to check if the custom module exists. otherwise when we tested from expo-go, it may break
Kudo
left a comment
There was a problem hiding this comment.
generally looks good. let's merge it after addressing the nit comments
| children?: React.ReactNode; | ||
| } | ||
|
|
||
| export const MyCustomView = requireNativeView<MyCustomViewProps>('TestExpoUi', 'MyCustomView'); |
There was a problem hiding this comment.
may need the lines otherwise the view with onTapPress modifier will not work
expo/packages/expo-ui/src/swift-ui/ProgressView/index.tsx
Lines 49 to 50 in 34c94f4
| children?: React.ReactNode; | ||
| } | ||
|
|
||
| export const MyCustomView = requireNativeView<MyCustomViewProps>('MyUi', 'MyCustomView'); |
There was a problem hiding this comment.
ditto. should cover createViewModifierEventListener in the doc
expo/packages/expo-ui/src/swift-ui/ProgressView/index.tsx
Lines 49 to 50 in 34c94f4
| </VStack> | ||
| </Host> | ||
| ); | ||
| } |
There was a problem hiding this comment.
Tested it on bare-expo and plain NCL app



Why
Add public API to extend custom SwiftUI views/modifiers in Expo UI.
How
ViewModifierRegistryto register and unregister modifiersTest Plan
Added example of local expo module with custom SwiftUI View and a modifier.
Checklist
changelog.mdentry and rebuilt the package sources according to this short guidenpx expo prebuild& EAS Build (eg: updated a module plugin).