From cee2253dbcac0d382931dfdaa45260d53ad86a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Chmiela?= Date: Tue, 14 Jan 2020 12:47:22 +0100 Subject: [PATCH] [expo-notifications] Device push token fetching module (#6577) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Why To eventually deprecate ExpoKit. # How - created a new unimodule, disabling autolinking in the root projects - implemented `getDevicePushTokenAsync` method in TS, then in native (on iOS we rely on system framework, on Android we're using Firebase Cloud Messaging) - implemented listening to token changes ### Notable changes to TS implementation - I had to juggle around types a bit to achieve what I wanted — for TS to discriminate by `type: keyof Platform.OS` value what is the type of `data` field and at the same time to use `data: any` for unsupported platforms. Types are ready, but I needed to use [`@ts-ignore`](https://github.com/expo/expo/pull/6577/commits/0bd46874ad547f6a1f196adcfc15b6d98614d94f#diff-66b6995155cd1e190f53b012f5c2a857R43-R44) to get away with it. ### Notable changes to native implementation - we use singleton module for listening to token changes [android](https://github.com/expo/expo/pull/6577/commits/69ee9efd42ba725703fd3f30073564ad3574f1d6#diff-5f9ef5ef7358f7a9c8cc386d42ee934f), [ios](https://github.com/expo/expo/pull/6577/commits/0aa2b66e1342c4de084fc329866752b53b4a6a76#diff-f8332f28b28ad9a24e0af0cb435876c7) - on Android there's a service subclassing `FirebaseMessagingService` to which the singleton above subscribes [link](https://github.com/expo/expo/pull/6577/commits/69ee9efd42ba725703fd3f30073564ad3574f1d6#diff-b6817886a179022070e2417712503fa9) ### Notable changes to web implementation - eventually, I guess, developers would want to customize how their app responds to notifications — for this I added a `serviceWorkerPath` manifest field [commit](https://github.com/expo/expo/pull/6577/commits/82e54aeb892b30661e0f5059e64acba70e686f85) # Test Plan - tests in `test-suite` are passing on **all three platforms** (on web puppeteer has to be run in head…ful (?) mode, otherwise overriding permissions doesn't work, which is a [known issue](https://github.com/puppeteer/puppeteer/issues/3279)) - push notifications sent to device push tokens are received on **all three platforms** --- android/app/build.gradle | 1 + android/expoview/build.gradle | 1 + android/settings.gradle | 1 + .../payments/generated/BasePackageList.java | 1 + apps/bare-expo/app.json | 4 + apps/bare-expo/e2e/TestSuite-test.web.js | 12 +- .../ios/BareExpo.xcodeproj/project.pbxproj | 4 + .../ios/BareExpo/Bare Expo.entitlements | 8 + apps/bare-expo/ios/Podfile.lock | 7 + .../.project_cache/installation_cache.yaml | 21 +- .../Pods/.project_cache/metadata_cache.yaml | 4 + .../EXNotifications.xcodeproj/project.pbxproj | 405 +++ .../EXNotifications/EXPushTokenListener.h | 1 + .../EXNotifications/EXPushTokenManager.h | 1 + .../EXNotifications/EXPushTokenModule.h | 1 + .../EXNotifications/EXPushTokenListener.h | 1 + .../EXNotifications/EXPushTokenManager.h | 1 + .../EXNotifications/EXPushTokenModule.h | 1 + .../EXNotifications.podspec.json | 23 + apps/bare-expo/ios/Pods/Manifest.lock | 7 + .../ios/Pods/Pods.xcodeproj/project.pbxproj | 2206 +++++++++-------- .../EXNotifications/EXNotifications-dummy.m | 5 + .../EXNotifications-prefix.pch | 12 + .../EXNotifications/EXNotifications.xcconfig | 10 + .../Pods-BareExpo.debug.xcconfig | 6 +- .../Pods-BareExpo.release.xcconfig | 6 +- .../Pods-BareExpoTests.debug.xcconfig | 2 +- .../Pods-BareExpoTests.release.xcconfig | 2 +- apps/bare-expo/package.json | 1 + apps/test-suite/TestUtils.js | 9 +- apps/test-suite/package.json | 3 +- apps/test-suite/tests/NewNotifications.js | 58 + ios/Podfile | 1 + ios/Podfile.lock | 2 +- ios/Pods/Manifest.lock | 2 +- packages/expo-notifications/.eslintrc.js | 2 + packages/expo-notifications/.npmignore | 2 + packages/expo-notifications/README.md | 1 + .../expo-notifications/android/.gitignore | 269 ++ .../expo-notifications/android/build.gradle | 72 + .../android/src/main/AndroidManifest.xml | 12 + .../notifications/NotificationsPackage.java | 25 + .../tokens/FirebaseTokenListenerService.java | 69 + .../tokens/PushTokenManager.java | 86 + .../notifications/tokens/PushTokenModule.java | 99 + .../tokens/interfaces/PushTokenListener.java | 14 + .../tokens/interfaces/PushTokenManager.java | 22 + packages/expo-notifications/babel.config.js | 2 + .../build/PushTokenManager.d.ts | 6 + .../build/PushTokenManager.js | 3 + .../build/PushTokenManager.js.map | 1 + .../build/PushTokenManager.web.d.ts | 2 + .../build/PushTokenManager.web.js | 3 + .../build/PushTokenManager.web.js.map | 1 + .../build/TokenEmitter.d.ts | 6 + .../expo-notifications/build/TokenEmitter.js | 18 + .../build/TokenEmitter.js.map | 1 + .../build/getDevicePushTokenAsync.d.ts | 23 + .../build/getDevicePushTokenAsync.js | 11 + .../build/getDevicePushTokenAsync.js.map | 1 + .../build/getDevicePushTokenAsync.web.d.ts | 2 + .../build/getDevicePushTokenAsync.web.js | 79 + .../build/getDevicePushTokenAsync.web.js.map | 1 + packages/expo-notifications/build/index.d.ts | 2 + packages/expo-notifications/build/index.js | 3 + .../expo-notifications/build/index.js.map | 1 + .../ios/EXNotifications.podspec | 20 + .../ios/EXNotifications/EXPushTokenListener.h | 14 + .../ios/EXNotifications/EXPushTokenManager.h | 24 + .../ios/EXNotifications/EXPushTokenManager.m | 63 + .../ios/EXNotifications/EXPushTokenModule.h | 9 + .../ios/EXNotifications/EXPushTokenModule.m | 147 ++ packages/expo-notifications/package.json | 38 + .../src/PushTokenManager.ts | 7 + .../src/PushTokenManager.web.ts | 2 + .../expo-notifications/src/TokenEmitter.ts | 24 + .../src/getDevicePushTokenAsync.ts | 41 + .../src/getDevicePushTokenAsync.web.ts | 111 + packages/expo-notifications/src/index.ts | 2 + packages/expo-notifications/tsconfig.json | 9 + packages/expo-notifications/unimodule.json | 4 + 81 files changed, 3070 insertions(+), 1114 deletions(-) create mode 100644 apps/bare-expo/ios/BareExpo/Bare Expo.entitlements create mode 100644 apps/bare-expo/ios/Pods/EXNotifications.xcodeproj/project.pbxproj create mode 120000 apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenListener.h create mode 120000 apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenManager.h create mode 120000 apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenModule.h create mode 120000 apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenListener.h create mode 120000 apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenManager.h create mode 120000 apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenModule.h create mode 100644 apps/bare-expo/ios/Pods/Local Podspecs/EXNotifications.podspec.json create mode 100644 apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-dummy.m create mode 100644 apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-prefix.pch create mode 100644 apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications.xcconfig create mode 100644 apps/test-suite/tests/NewNotifications.js create mode 100644 packages/expo-notifications/.eslintrc.js create mode 100644 packages/expo-notifications/.npmignore create mode 100644 packages/expo-notifications/README.md create mode 100644 packages/expo-notifications/android/.gitignore create mode 100644 packages/expo-notifications/android/build.gradle create mode 100644 packages/expo-notifications/android/src/main/AndroidManifest.xml create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/NotificationsPackage.java create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/FirebaseTokenListenerService.java create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.java create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java create mode 100644 packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java create mode 100644 packages/expo-notifications/babel.config.js create mode 100644 packages/expo-notifications/build/PushTokenManager.d.ts create mode 100644 packages/expo-notifications/build/PushTokenManager.js create mode 100644 packages/expo-notifications/build/PushTokenManager.js.map create mode 100644 packages/expo-notifications/build/PushTokenManager.web.d.ts create mode 100644 packages/expo-notifications/build/PushTokenManager.web.js create mode 100644 packages/expo-notifications/build/PushTokenManager.web.js.map create mode 100644 packages/expo-notifications/build/TokenEmitter.d.ts create mode 100644 packages/expo-notifications/build/TokenEmitter.js create mode 100644 packages/expo-notifications/build/TokenEmitter.js.map create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.d.ts create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.js create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.js.map create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.web.d.ts create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.web.js create mode 100644 packages/expo-notifications/build/getDevicePushTokenAsync.web.js.map create mode 100644 packages/expo-notifications/build/index.d.ts create mode 100644 packages/expo-notifications/build/index.js create mode 100644 packages/expo-notifications/build/index.js.map create mode 100644 packages/expo-notifications/ios/EXNotifications.podspec create mode 100644 packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h create mode 100644 packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h create mode 100644 packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.m create mode 100644 packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h create mode 100644 packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.m create mode 100644 packages/expo-notifications/package.json create mode 100644 packages/expo-notifications/src/PushTokenManager.ts create mode 100644 packages/expo-notifications/src/PushTokenManager.web.ts create mode 100644 packages/expo-notifications/src/TokenEmitter.ts create mode 100644 packages/expo-notifications/src/getDevicePushTokenAsync.ts create mode 100644 packages/expo-notifications/src/getDevicePushTokenAsync.web.ts create mode 100644 packages/expo-notifications/src/index.ts create mode 100644 packages/expo-notifications/tsconfig.json create mode 100644 packages/expo-notifications/unimodule.json diff --git a/android/app/build.gradle b/android/app/build.gradle index 6130ab25746b1..1f8cfa6c9d55d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -236,6 +236,7 @@ dependencies { 'expo-module-template', 'expo-bluetooth', 'expo-in-app-purchases', + 'expo-notifications', 'expo-payments-stripe', 'expo-updates' ] diff --git a/android/expoview/build.gradle b/android/expoview/build.gradle index 9554238f1393e..77065fec77ffb 100644 --- a/android/expoview/build.gradle +++ b/android/expoview/build.gradle @@ -170,6 +170,7 @@ dependencies { exclude : [ 'expo-module-template', 'expo-bluetooth', + 'expo-notifications', 'expo-in-app-purchases', 'expo-updates', ] diff --git a/android/settings.gradle b/android/settings.gradle index 903c9bf055402..ae0f05182b45a 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -33,6 +33,7 @@ includeUnimodulesProjects( // FLAG_BEGIN_REMOVE__UPDATE_EXPOKIT - used during `et android-build-packages` // section below previous line comment flag contains modules that need to be built for `expokit-npm-package` 'expo-bluetooth', + 'expo-notifications', 'expo-in-app-purchases', 'expo-updates', // FLAG_END_REMOVE__UPDATE_EXPOKIT diff --git a/apps/bare-expo/android/app/src/main/java/dev/expo/payments/generated/BasePackageList.java b/apps/bare-expo/android/app/src/main/java/dev/expo/payments/generated/BasePackageList.java index 08d66bc091939..6fd14ed6f0ee7 100644 --- a/apps/bare-expo/android/app/src/main/java/dev/expo/payments/generated/BasePackageList.java +++ b/apps/bare-expo/android/app/src/main/java/dev/expo/payments/generated/BasePackageList.java @@ -39,6 +39,7 @@ public List getPackageList() { new expo.modules.mailcomposer.MailComposerPackage(), new expo.modules.medialibrary.MediaLibraryPackage(), new expo.modules.network.NetworkPackage(), + new expo.modules.notifications.NotificationsPackage(), new expo.modules.permissions.PermissionsPackage(), new expo.modules.print.PrintPackage(), new expo.modules.random.RandomPackage(), diff --git a/apps/bare-expo/app.json b/apps/bare-expo/app.json index f0622a85d3a20..7a5d48a36b9b0 100644 --- a/apps/bare-expo/app.json +++ b/apps/bare-expo/app.json @@ -15,6 +15,10 @@ "include": ["test-suite", "bare-expo"] } } + }, + "notification": { + "serviceWorkerPath": "/expo-service-worker.js", + "vapidPublicKey": "BNHvR05XkY5LH9GdN0GreLx2wZnK9IwNJGVmo3jujIkFni4of26E3U3fnt9nUrZfM7h0omdIHKM0eshkzTSFOWQ" } } } diff --git a/apps/bare-expo/e2e/TestSuite-test.web.js b/apps/bare-expo/e2e/TestSuite-test.web.js index ee6930e0d67b0..bcc41986e7bd1 100644 --- a/apps/bare-expo/e2e/TestSuite-test.web.js +++ b/apps/bare-expo/e2e/TestSuite-test.web.js @@ -1,4 +1,4 @@ -/* global page */ +/* global page, browser */ import { setDefaultOptions } from 'expect-puppeteer'; import config from '../jest-puppeteer.config'; @@ -19,9 +19,12 @@ const TESTS = [ 'Blur', 'LinearGradient', 'KeepAwake', + // Overridding permissions doesn't work in headless mode + // see https://github.com/puppeteer/puppeteer/issues/3279 + !config.launch.headless && 'expo-notifications', // 'Haptics', // 'SecureStore', -]; +].filter(t => t); // This is how long we allocate for the actual tests to be run after the test screen has mounted. const MIN_TIME = 50000; @@ -31,6 +34,11 @@ setDefaultOptions({ timeout: MIN_TIME * 1.5, }); +beforeAll(async () => { + const context = browser.defaultBrowserContext(); + await context.overridePermissions(config.url, ['notifications']); +}); + function matchID(id, ...props) { return expect(page).toMatchElement(`div[data-testid="${id}"]`, ...props); } diff --git a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj index 8c2c4d2876e0f..964a23b768f10 100644 --- a/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj +++ b/apps/bare-expo/ios/BareExpo.xcodeproj/project.pbxproj @@ -41,6 +41,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = BareExpo/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = BareExpo/main.m; sourceTree = ""; }; 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 31B7D64323A904E900CE18C0 /* Bare Expo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = "Bare Expo.entitlements"; path = "BareExpo/Bare Expo.entitlements"; sourceTree = ""; }; 4ADC22B6EC034901305B8CDC /* Pods-BareExpo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareExpo.debug.xcconfig"; path = "Target Support Files/Pods-BareExpo/Pods-BareExpo.debug.xcconfig"; sourceTree = ""; }; 70419E2A27811C660476A295 /* Pods-BareExpo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareExpo.release.xcconfig"; path = "Target Support Files/Pods-BareExpo/Pods-BareExpo.release.xcconfig"; sourceTree = ""; }; 7EF74F8A2123893DE8D71406 /* Pods-BareExpoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BareExpoTests.debug.xcconfig"; path = "Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.debug.xcconfig"; sourceTree = ""; }; @@ -92,6 +93,7 @@ 13B07FAE1A68108700A75B9A /* BareExpo */ = { isa = PBXGroup; children = ( + 31B7D64323A904E900CE18C0 /* Bare Expo.entitlements */, 008F07F21AC5B25A0029DE68 /* main.jsbundle */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 13B07FB01A68108700A75B9A /* AppDelegate.m */, @@ -453,6 +455,7 @@ baseConfigurationReference = 4ADC22B6EC034901305B8CDC /* Pods-BareExpo.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "BareExpo/Bare Expo.entitlements"; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = C8D8QTF339; @@ -474,6 +477,7 @@ baseConfigurationReference = 70419E2A27811C660476A295 /* Pods-BareExpo.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "BareExpo/Bare Expo.entitlements"; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = C8D8QTF339; diff --git a/apps/bare-expo/ios/BareExpo/Bare Expo.entitlements b/apps/bare-expo/ios/BareExpo/Bare Expo.entitlements new file mode 100644 index 0000000000000..903def2af5306 --- /dev/null +++ b/apps/bare-expo/ios/BareExpo/Bare Expo.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/apps/bare-expo/ios/Podfile.lock b/apps/bare-expo/ios/Podfile.lock index 0d01c33e419cb..6ddd7f766a5c8 100644 --- a/apps/bare-expo/ios/Podfile.lock +++ b/apps/bare-expo/ios/Podfile.lock @@ -102,6 +102,8 @@ PODS: - UMPermissionsInterface - EXNetwork (2.0.0): - UMCore + - EXNotifications (1.0.0): + - UMCore - EXPermissions (8.0.0): - UMCore - UMPermissionsInterface @@ -426,6 +428,7 @@ DEPENDENCIES: - EXMailComposer (from `../../../packages/expo-mail-composer/ios`) - EXMediaLibrary (from `../../../packages/expo-media-library/ios`) - EXNetwork (from `../../../packages/expo-network/ios`) + - EXNotifications (from `../../../packages/expo-notifications/ios`) - EXPermissions (from `../../../packages/expo-permissions/ios`) - EXPrint (from `../../../packages/expo-print/ios`) - EXRandom (from `../../../packages/expo-random/ios`) @@ -593,6 +596,9 @@ EXTERNAL SOURCES: EXNetwork: :path: !ruby/object:Pathname path: "../../../packages/expo-network/ios" + EXNotifications: + :path: !ruby/object:Pathname + path: "../../../packages/expo-notifications/ios" EXPermissions: :path: !ruby/object:Pathname path: "../../../packages/expo-permissions/ios" @@ -756,6 +762,7 @@ SPEC CHECKSUMS: EXMailComposer: b9be58adaabb860fc8b722204ce27b33c7da5aad EXMediaLibrary: 9281707de8f95cc391d242b614f493ab781030fa EXNetwork: a52f713ced4b05a2634eb88a1f1f8678fcb8b69c + EXNotifications: d654494e84df90927cca410ebac178c61553647b EXPermissions: 9bc08859a675d291e89be9a0870155c27c16ac35 EXPrint: b20aef0e774d96e0ea6688b97d9e0c1d268b95ae EXRandom: 3a6f6dce1997a40a7fc3bb00d18eabc380c51c2e diff --git a/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml b/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml index 67c465e93b792..c4473d8cfab21 100644 --- a/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml +++ b/apps/bare-expo/ios/Pods/.project_cache/installation_cache.yaml @@ -482,6 +482,19 @@ CACHE_KEYS: PROJECT_NAME: EXNetwork SPECS: - EXNetwork (2.0.0) + EXNotifications: + BUILD_SETTINGS_CHECKSUM: + EXNotifications: 42083d7be3b81dc87f399732a97ebffe + CHECKSUM: d654494e84df90927cca410ebac178c61553647b + FILES: + - "../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h" + - "../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h" + - "../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.m" + - "../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h" + - "../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.m" + PROJECT_NAME: EXNotifications + SPECS: + - EXNotifications (1.0.0) EXPermissions: BUILD_SETTINGS_CHECKSUM: EXPermissions: 042b0d307d74f9ba36a7183b44cd74a0 @@ -700,12 +713,12 @@ CACHE_KEYS: - GTMSessionFetcher/Full (1.3.0) Pods-BareExpo: BUILD_SETTINGS_CHECKSUM: - Debug: 9fa395d50ce617a2a71ed32b1caae8ef - Release: 9fa395d50ce617a2a71ed32b1caae8ef + Debug: 56436cf11abb9cf3f33b76749e92e0af + Release: 56436cf11abb9cf3f33b76749e92e0af Pods-BareExpoTests: BUILD_SETTINGS_CHECKSUM: - Debug: b61a68dc0ecf8315379a8243485d7899 - Release: b61a68dc0ecf8315379a8243485d7899 + Debug: 9af093871462b0148da322b01f112ded + Release: 9af093871462b0148da322b01f112ded RCTRequired: BUILD_SETTINGS_CHECKSUM: RCTRequired: 4dfdb65505e509cfb5f433fb54943666 diff --git a/apps/bare-expo/ios/Pods/.project_cache/metadata_cache.yaml b/apps/bare-expo/ios/Pods/.project_cache/metadata_cache.yaml index 2a4dfbff9a454..c4039f5672ae8 100644 --- a/apps/bare-expo/ios/Pods/.project_cache/metadata_cache.yaml +++ b/apps/bare-expo/ios/Pods/.project_cache/metadata_cache.yaml @@ -154,6 +154,10 @@ EXNetwork: LABEL: EXNetwork PROJECT_PATH: EXNetwork.xcodeproj UUID: 71F2A4AC24C8FBC0E24B6A613BB4F7BC +EXNotifications: + LABEL: EXNotifications + PROJECT_PATH: EXNotifications.xcodeproj + UUID: 6C660F81CE4F0EC96D208B20C3E8B154 EXPermissions: LABEL: EXPermissions PROJECT_PATH: EXPermissions.xcodeproj diff --git a/apps/bare-expo/ios/Pods/EXNotifications.xcodeproj/project.pbxproj b/apps/bare-expo/ios/Pods/EXNotifications.xcodeproj/project.pbxproj new file mode 100644 index 0000000000000..bf5ea2b5d3922 --- /dev/null +++ b/apps/bare-expo/ios/Pods/EXNotifications.xcodeproj/project.pbxproj @@ -0,0 +1,405 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 031E0786AE7DA5012377EEA2E4DDCA9D /* EXNotifications-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F761B442D5FD846C53C2082656EF00 /* EXNotifications-dummy.m */; }; + 13AA2027AA62EA38846BF6CC06D15019 /* EXPushTokenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA3B3488E0B12AA023AC3DB7A77A65ED /* EXPushTokenManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 17BB77DD1F219711788D64C3F8EE7ED0 /* EXPushTokenListener.h in Headers */ = {isa = PBXBuildFile; fileRef = C4889B8D11F43B40986F975FE4262907 /* EXPushTokenListener.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7FD62BE25AB9D99451855741E2005DC6 /* EXPushTokenManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 733042F9597C31BCE53FD75EFF73F52E /* EXPushTokenManager.m */; }; + A6985ACD9FBE244E9C4C2D100CE1CDC2 /* EXPushTokenModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 60637594D8ABDAA802B620C019A49330 /* EXPushTokenModule.m */; }; + AB6756E5B35914AA056E4D24ED7531B4 /* EXPushTokenModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 736825122FE005F2F529ED1F4D6ACDCE /* EXPushTokenModule.h */; settings = {ATTRIBUTES = (Project, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 230B559F9E34EDC587CA27438564E946 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6B4054ABD2AFCAF4186CB91DD1245387 /* UMCore.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 153171642F5C5CBC05FD3EF6B23A3F36; + remoteInfo = UMCore; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1E0C15E3A464A48CE07C5530547F8674 /* EXNotifications.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EXNotifications.xcconfig; sourceTree = ""; }; + 60637594D8ABDAA802B620C019A49330 /* EXPushTokenModule.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPushTokenModule.m; path = EXNotifications/EXPushTokenModule.m; sourceTree = ""; }; + 686AC224CB480A164AD980F32DF0507A /* EXNotifications.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = EXNotifications.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 6B4054ABD2AFCAF4186CB91DD1245387 /* UMCore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCore; path = UMCore.xcodeproj; sourceTree = ""; }; + 733042F9597C31BCE53FD75EFF73F52E /* EXPushTokenManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPushTokenManager.m; path = EXNotifications/EXPushTokenManager.m; sourceTree = ""; }; + 736825122FE005F2F529ED1F4D6ACDCE /* EXPushTokenModule.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPushTokenModule.h; path = EXNotifications/EXPushTokenModule.h; sourceTree = ""; }; + 97F761B442D5FD846C53C2082656EF00 /* EXNotifications-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXNotifications-dummy.m"; sourceTree = ""; }; + AB4F468E1EA9333F76F8937368ACD772 /* libEXNotifications.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libEXNotifications.a; path = libEXNotifications.a; sourceTree = BUILT_PRODUCTS_DIR; }; + C4889B8D11F43B40986F975FE4262907 /* EXPushTokenListener.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPushTokenListener.h; path = EXNotifications/EXPushTokenListener.h; sourceTree = ""; }; + E246387DCE73F6475A2EEB6CA97169EE /* EXNotifications-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EXNotifications-prefix.pch"; sourceTree = ""; }; + EA3B3488E0B12AA023AC3DB7A77A65ED /* EXPushTokenManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPushTokenManager.h; path = EXNotifications/EXPushTokenManager.h; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 16C2569AEF74FEE07FC31E849CE8A5DD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 11C75FA9F6E7BD19025CAA04B578E04E /* Products */ = { + isa = PBXGroup; + children = ( + AB4F468E1EA9333F76F8937368ACD772 /* libEXNotifications.a */, + ); + name = Products; + sourceTree = ""; + }; + 13F8C991E3E04DEA0BE15C158F3C5F7E = { + isa = PBXGroup; + children = ( + DE5C7B94E024D27CF89F5138081ED80B /* Dependencies */, + CF7FF0EB26DABE36657A6655A1A49E87 /* EXNotifications */, + CCE96D56F43E72270B9F3BEC1866196F /* Frameworks */, + 11C75FA9F6E7BD19025CAA04B578E04E /* Products */, + ); + sourceTree = ""; + }; + 22BDFFED547112B9D1C62B5484945963 /* Pod */ = { + isa = PBXGroup; + children = ( + 686AC224CB480A164AD980F32DF0507A /* EXNotifications.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + A594F26887607F0F6E6DC63A8503C80B /* Support Files */ = { + isa = PBXGroup; + children = ( + 1E0C15E3A464A48CE07C5530547F8674 /* EXNotifications.xcconfig */, + 97F761B442D5FD846C53C2082656EF00 /* EXNotifications-dummy.m */, + E246387DCE73F6475A2EEB6CA97169EE /* EXNotifications-prefix.pch */, + ); + name = "Support Files"; + path = "../../../apps/bare-expo/ios/Pods/Target Support Files/EXNotifications"; + sourceTree = ""; + }; + CCE96D56F43E72270B9F3BEC1866196F /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + CF7FF0EB26DABE36657A6655A1A49E87 /* EXNotifications */ = { + isa = PBXGroup; + children = ( + C4889B8D11F43B40986F975FE4262907 /* EXPushTokenListener.h */, + EA3B3488E0B12AA023AC3DB7A77A65ED /* EXPushTokenManager.h */, + 733042F9597C31BCE53FD75EFF73F52E /* EXPushTokenManager.m */, + 736825122FE005F2F529ED1F4D6ACDCE /* EXPushTokenModule.h */, + 60637594D8ABDAA802B620C019A49330 /* EXPushTokenModule.m */, + 22BDFFED547112B9D1C62B5484945963 /* Pod */, + A594F26887607F0F6E6DC63A8503C80B /* Support Files */, + ); + name = EXNotifications; + path = "../../../../packages/expo-notifications/ios"; + sourceTree = ""; + }; + DE5C7B94E024D27CF89F5138081ED80B /* Dependencies */ = { + isa = PBXGroup; + children = ( + 6B4054ABD2AFCAF4186CB91DD1245387 /* UMCore */, + ); + name = Dependencies; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 09C0CF8D1357A2747F9FD31AD960F5A7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 17BB77DD1F219711788D64C3F8EE7ED0 /* EXPushTokenListener.h in Headers */, + 13AA2027AA62EA38846BF6CC06D15019 /* EXPushTokenManager.h in Headers */, + AB6756E5B35914AA056E4D24ED7531B4 /* EXPushTokenModule.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 6C660F81CE4F0EC96D208B20C3E8B154 /* EXNotifications */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4E4A3056D2F07C040C9A9D54FA1585DD /* Build configuration list for PBXNativeTarget "EXNotifications" */; + buildPhases = ( + 09C0CF8D1357A2747F9FD31AD960F5A7 /* Headers */, + 85E426ED953D87F859EB811194B979A0 /* Sources */, + 16C2569AEF74FEE07FC31E849CE8A5DD /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5D6CF486F20FE4DC5BC6E1B130BD4E6E /* PBXTargetDependency */, + ); + name = EXNotifications; + productName = EXNotifications; + productReference = AB4F468E1EA9333F76F8937368ACD772 /* libEXNotifications.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5E314CA8E40739B611EF78EB1939B691 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 990AC4F59C718B1E37447D25BED3BC0F /* Build configuration list for PBXProject "EXNotifications" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 13F8C991E3E04DEA0BE15C158F3C5F7E; + productRefGroup = 11C75FA9F6E7BD19025CAA04B578E04E /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProjectRef = 6B4054ABD2AFCAF4186CB91DD1245387 /* UMCore */; + }, + ); + projectRoot = ""; + targets = ( + 6C660F81CE4F0EC96D208B20C3E8B154 /* EXNotifications */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 85E426ED953D87F859EB811194B979A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 031E0786AE7DA5012377EEA2E4DDCA9D /* EXNotifications-dummy.m in Sources */, + 7FD62BE25AB9D99451855741E2005DC6 /* EXPushTokenManager.m in Sources */, + A6985ACD9FBE244E9C4C2D100CE1CDC2 /* EXPushTokenModule.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 5D6CF486F20FE4DC5BC6E1B130BD4E6E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = UMCore; + targetProxy = 230B559F9E34EDC587CA27438564E946 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 06A68EB852A48A112EBAB52B72715E0F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 9EF1858BF74D4AECDE897873D172CA6C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E0C15E3A464A48CE07C5530547F8674 /* EXNotifications.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EXNotifications/EXNotifications-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EXNotifications; + PRODUCT_NAME = EXNotifications; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C713B0E6DDE114F062471662491E7F99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + CC1F977FA7A4B9D79A3B5AEED4E926DB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E0C15E3A464A48CE07C5530547F8674 /* EXNotifications.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EXNotifications/EXNotifications-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EXNotifications; + PRODUCT_NAME = EXNotifications; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4E4A3056D2F07C040C9A9D54FA1585DD /* Build configuration list for PBXNativeTarget "EXNotifications" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CC1F977FA7A4B9D79A3B5AEED4E926DB /* Debug */, + 9EF1858BF74D4AECDE897873D172CA6C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 990AC4F59C718B1E37447D25BED3BC0F /* Build configuration list for PBXProject "EXNotifications" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 06A68EB852A48A112EBAB52B72715E0F /* Debug */, + C713B0E6DDE114F062471662491E7F99 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5E314CA8E40739B611EF78EB1939B691 /* Project object */; +} diff --git a/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenListener.h b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenListener.h new file mode 120000 index 0000000000000..7c0c2194e3c25 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenListener.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenManager.h b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenManager.h new file mode 120000 index 0000000000000..e0198dca9bd46 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenManager.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenModule.h b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenModule.h new file mode 120000 index 0000000000000..f9ff266aafc13 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Private/EXNotifications/EXPushTokenModule.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenListener.h b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenListener.h new file mode 120000 index 0000000000000..7c0c2194e3c25 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenListener.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenManager.h b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenManager.h new file mode 120000 index 0000000000000..e0198dca9bd46 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenManager.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenModule.h b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenModule.h new file mode 120000 index 0000000000000..f9ff266aafc13 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Headers/Public/EXNotifications/EXPushTokenModule.h @@ -0,0 +1 @@ +../../../../../../../packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h \ No newline at end of file diff --git a/apps/bare-expo/ios/Pods/Local Podspecs/EXNotifications.podspec.json b/apps/bare-expo/ios/Pods/Local Podspecs/EXNotifications.podspec.json new file mode 100644 index 0000000000000..5d8e9b07c1eb3 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Local Podspecs/EXNotifications.podspec.json @@ -0,0 +1,23 @@ +{ + "name": "EXNotifications", + "version": "1.0.0", + "summary": "Notifications module", + "description": "Notifications module", + "license": "MIT", + "authors": "650 Industries, Inc.", + "homepage": "https://github.com/expo/expo/tree/master/packages/expo-notifications", + "platforms": { + "ios": "10.0" + }, + "source": { + "git": "https://github.com/expo/expo.git" + }, + "source_files": "EXNotifications/**/*.{h,m}", + "preserve_paths": "EXNotifications/**/*.{h,m}", + "requires_arc": true, + "dependencies": { + "UMCore": [ + + ] + } +} diff --git a/apps/bare-expo/ios/Pods/Manifest.lock b/apps/bare-expo/ios/Pods/Manifest.lock index 0d01c33e419cb..6ddd7f766a5c8 100644 --- a/apps/bare-expo/ios/Pods/Manifest.lock +++ b/apps/bare-expo/ios/Pods/Manifest.lock @@ -102,6 +102,8 @@ PODS: - UMPermissionsInterface - EXNetwork (2.0.0): - UMCore + - EXNotifications (1.0.0): + - UMCore - EXPermissions (8.0.0): - UMCore - UMPermissionsInterface @@ -426,6 +428,7 @@ DEPENDENCIES: - EXMailComposer (from `../../../packages/expo-mail-composer/ios`) - EXMediaLibrary (from `../../../packages/expo-media-library/ios`) - EXNetwork (from `../../../packages/expo-network/ios`) + - EXNotifications (from `../../../packages/expo-notifications/ios`) - EXPermissions (from `../../../packages/expo-permissions/ios`) - EXPrint (from `../../../packages/expo-print/ios`) - EXRandom (from `../../../packages/expo-random/ios`) @@ -593,6 +596,9 @@ EXTERNAL SOURCES: EXNetwork: :path: !ruby/object:Pathname path: "../../../packages/expo-network/ios" + EXNotifications: + :path: !ruby/object:Pathname + path: "../../../packages/expo-notifications/ios" EXPermissions: :path: !ruby/object:Pathname path: "../../../packages/expo-permissions/ios" @@ -756,6 +762,7 @@ SPEC CHECKSUMS: EXMailComposer: b9be58adaabb860fc8b722204ce27b33c7da5aad EXMediaLibrary: 9281707de8f95cc391d242b614f493ab781030fa EXNetwork: a52f713ced4b05a2634eb88a1f1f8678fcb8b69c + EXNotifications: d654494e84df90927cca410ebac178c61553647b EXPermissions: 9bc08859a675d291e89be9a0870155c27c16ac35 EXPrint: b20aef0e774d96e0ea6688b97d9e0c1d268b95ae EXRandom: 3a6f6dce1997a40a7fc3bb00d18eabc380c51c2e diff --git a/apps/bare-expo/ios/Pods/Pods.xcodeproj/project.pbxproj b/apps/bare-expo/ios/Pods/Pods.xcodeproj/project.pbxproj index 0e6e0c3508918..ced8244b1413c 100644 --- a/apps/bare-expo/ios/Pods/Pods.xcodeproj/project.pbxproj +++ b/apps/bare-expo/ios/Pods/Pods.xcodeproj/project.pbxproj @@ -7,771 +7,779 @@ objects = { /* Begin PBXBuildFile section */ - 27B74A7EF0716B4AF7ECCB2F8E04A0B3 /* Pods-BareExpo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D090CDB16B158897ECDA29AE3E2FDBF6 /* Pods-BareExpo-dummy.m */; }; E89FBD11BA5BD749E1F14E71BC829335 /* Pods-BareExpoTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8465E2FC705BE47B5397BF4A39C8AC18 /* Pods-BareExpoTests-dummy.m */; }; + F2F714CCB8A26BEEAF45A7BC332B8802 /* Pods-BareExpo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D090CDB16B158897ECDA29AE3E2FDBF6 /* Pods-BareExpo-dummy.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 01523E2DE8178E06D1C82D6E3664203C /* PBXContainerItemProxy */ = { + 0465DF8591EAA0DA3C033AC54D14FF18 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0143F693E54C76D9CEC9B89D39EA738C /* React-jsinspector.xcodeproj */; + containerPortal = FA3F1AFA57847B7DE0AAEDF4186FC4BF /* React-jsi.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1AC0EAF3E808B6AA276E43B30A5B20AA; - remoteInfo = "React-jsinspector"; + remoteGlobalIDString = D0DB82AB65D33935072718EA2468992F; + remoteInfo = "React-jsi"; }; - 0353DEE60CB234F82C58A10CDC031E88 /* PBXContainerItemProxy */ = { + 06963D9ACFF76386269904DEB96637B5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A1A9EF9126D232C7848495ED0D34FC82 /* UMFileSystemInterface.xcodeproj */; + containerPortal = 0F4A4147605A8FA472874292E84CA8AA /* EXSMS.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1C326487F8F888A9111422C7014319AC; - remoteInfo = UMFileSystemInterface; + remoteGlobalIDString = 1309E054CB75DA99E029D5D2C8C2210E; + remoteInfo = EXSMS; }; - 04D4A9C49B1150F6E441E4B21B87FE46 /* PBXContainerItemProxy */ = { + 071C80A0F327B444E7A3951CDF5D81F4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 093F33B91AB6CCF24EC5B44C2168D6B7 /* RNReanimated.xcodeproj */; + containerPortal = 83741058F1FBE8278A49685754C1020B /* React-RCTSettings.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E9E22639328ACC061EB56756AD5B4F57; - remoteInfo = RNReanimated; + remoteGlobalIDString = 02DD1E05F06C403A8300ABEFC2C29A3D; + remoteInfo = "React-RCTSettings"; }; - 05B0119097CB972CC8342F1A43F98833 /* PBXContainerItemProxy */ = { + 0B8C5F00B0B111D1DB9CAAE8560EF8DA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A14282E7B246C428EDC564624DBDD9BF /* UMBarCodeScannerInterface.xcodeproj */; + containerPortal = DD26F4B8BC160D314045C1E9FF99E1C0 /* UMFileSystemInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 971E60E1AF9163E7E08105622FC91C16; - remoteInfo = UMBarCodeScannerInterface; + remoteGlobalIDString = 1C326487F8F888A9111422C7014319AC; + remoteInfo = UMFileSystemInterface; }; - 07AE4300B905F05CED560E1C5437466E /* PBXContainerItemProxy */ = { + 0DC15D8582D6A9B17EA3D24BF2A5F567 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 04AF6CFC908ABC897934A123721DCDC8 /* React-RCTImage.xcodeproj */; + containerPortal = F1BA3A37FBB21699CAA6831FD7EA7A4B /* EXBarCodeScanner.xcodeproj */; proxyType = 1; - remoteGlobalIDString = C78CA5C5EDDCCF5EC637E0FC8BB4C96E; - remoteInfo = "React-RCTImage"; + remoteGlobalIDString = E6D544E86F973F511B82FE486E5E25CD; + remoteInfo = EXBarCodeScanner; }; - 0D95C376406A62ADA46606B0D3771DE2 /* PBXContainerItemProxy */ = { + 1090EB79679288E70162A4CE7209B308 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 66E0036061F06985A735F972DA873D82 /* EXCalendar.xcodeproj */; + containerPortal = 6E562C149ACFF3572AF76219136BAE6F /* EXCellular.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 0F2988851D689F1E41CFC89C31422758; - remoteInfo = EXCalendar; + remoteGlobalIDString = 0F0F7D35F4DD6BA6A33589D3CB5759F3; + remoteInfo = EXCellular; }; - 0DE728E47B2336653C2DCDC120B4DBEF /* PBXContainerItemProxy */ = { + 15EBFE0C5D680BC678D2BAEE2AA7EB17 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = ED50116F92CAB9F1E06FE905363CE060 /* EXPermissions.xcodeproj */; + containerPortal = 1874C56666647F9C71C26C490DCD0921 /* AppAuth.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 488F0C19AB92FC4B503EB55CC688FCF5; - remoteInfo = EXPermissions; + remoteGlobalIDString = 4EFA7E4CE531453CF475A9A4322A84F8; + remoteInfo = AppAuth; }; - 0E638FE83654AAA0102A8CC346914D53 /* PBXContainerItemProxy */ = { + 17C369DA24A77B5DFF1F57381D6566B6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A528590EDEA69FCB74BFA09B141B4DBF /* EXGL.xcodeproj */; + containerPortal = 3F7A24830AA6A74FD093D740F10D7773 /* EXKeepAwake.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 78CC35D6F49ACC0F72F0095F78EFDCE7; - remoteInfo = EXGL; + remoteGlobalIDString = E593B1631324E147D59AE9990EDA53A2; + remoteInfo = EXKeepAwake; }; - 0FAD10CD5AEBC9229D69C5193AA1996D /* PBXContainerItemProxy */ = { + 1818CAC700E350A246DD8A1AD3C332F3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 228AECF796357BD0C17A0250B493CF46 /* RNGestureHandler.xcodeproj */; + containerPortal = A32518B2BC57B6ACB06728AD31C6FED7 /* React-jsinspector.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 0356CDCA5DB6D4F4B4F5991088D05580; - remoteInfo = RNGestureHandler; + remoteGlobalIDString = 1AC0EAF3E808B6AA276E43B30A5B20AA; + remoteInfo = "React-jsinspector"; }; - 10F882494F1E53F051D53F1647C0F700 /* PBXContainerItemProxy */ = { + 1A08C035C5D4A09AC05CCB509F8F6D9F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 9946A17BD11A68F7A944498FD73C8413 /* ZXingObjC.xcodeproj */; + containerPortal = 1682454010CE1DE95AE1F2B800003AE8 /* EXSpeech.xcodeproj */; proxyType = 1; - remoteGlobalIDString = F1A98E99C5291C55C29C32D889990685; - remoteInfo = ZXingObjC; + remoteGlobalIDString = AC043527FC46D59E5210AD9D49B847FC; + remoteInfo = EXSpeech; }; - 138B551B7760FEF12E9588FB05659D94 /* PBXContainerItemProxy */ = { + 1C05065DBB3562956F366E93DDEBF6E4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 559D179071A592B620836CC4F14A9F63 /* EXBlur.xcodeproj */; + containerPortal = 539904AF85D455EEA0BC80314430F767 /* React-RCTLinking.xcodeproj */; proxyType = 1; - remoteGlobalIDString = D08BCCD5DE12C8EFB6429B9126525E9F; - remoteInfo = EXBlur; + remoteGlobalIDString = FF1621D1C3F9AF33EDD2BF51FEDEB3D8; + remoteInfo = "React-RCTLinking"; }; - 179551060FF9EA6024A9C9F7CEF0B4BA /* PBXContainerItemProxy */ = { + 22549EA770513D61589580CBFFB1E807 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = FC694360F93EB50AF01BD9AD3DDF6F63 /* React-RCTLinking.xcodeproj */; + containerPortal = 24D571065DC8E7D78DE3D281B7F9665E /* EXImagePicker.xcodeproj */; proxyType = 1; - remoteGlobalIDString = FF1621D1C3F9AF33EDD2BF51FEDEB3D8; - remoteInfo = "React-RCTLinking"; + remoteGlobalIDString = 9ACF1D2895E366F44F904503F65171CD; + remoteInfo = EXImagePicker; }; - 1CD7699E779B7207306C3A18AE7958E9 /* PBXContainerItemProxy */ = { + 227262230BCEBE33778709618CB70E9B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 5F89074EFF9BBFF30A654696E06822C7 /* EXImageManipulator.xcodeproj */; + containerPortal = D295C7698687650B201A4E18B1A6CE87 /* React.xcodeproj */; proxyType = 1; - remoteGlobalIDString = C3AA7C99B7CAD2FC22B8AA8928D7DF6F; - remoteInfo = EXImageManipulator; + remoteGlobalIDString = 94DA87F24FB4B93E5D08FE961D5E5A3E; + remoteInfo = React; }; - 1E3E312EFD96A12407172E96E9390F77 /* PBXContainerItemProxy */ = { + 22F148F91BD9CC2DB52F7F801629B509 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = EF2B74AE23B4D085A4D41634852D9E79 /* EXSecureStore.xcodeproj */; + containerPortal = 20C29A1EAED431974F1F9ADE24297AD8 /* RNGestureHandler.xcodeproj */; proxyType = 1; - remoteGlobalIDString = C4DBAA5ED98E7A037D09674FF42AF66F; - remoteInfo = EXSecureStore; + remoteGlobalIDString = 0356CDCA5DB6D4F4B4F5991088D05580; + remoteInfo = RNGestureHandler; }; - 2310E33AFE5DCF99B3982C7E4D4D7BDD /* PBXContainerItemProxy */ = { + 238E361F058A96459D5F16A251E0920F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 89B3742C40E8B4801826442347325BBF /* EXLocalization.xcodeproj */; + containerPortal = 6FCCE9A29FCD2F955BD249B2E8FE64D6 /* React-RCTVibration.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 55C7C51CE4B49B971674C896CB1DC301; - remoteInfo = EXLocalization; + remoteGlobalIDString = 502D208480A94D02F62BB739D7512657; + remoteInfo = "React-RCTVibration"; }; - 275C89C48B89E482C6C0A093E8672536 /* PBXContainerItemProxy */ = { + 270D963B83EE8B8579C8857BFCD46219 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0F87C4C729C750646FF9170E107841D0 /* EXConstants.xcodeproj */; + containerPortal = B399F6209661F0C9597B9B02C293119F /* EXPermissions.xcodeproj */; proxyType = 1; - remoteGlobalIDString = F3E96ACB94E2361FA9D83BE599DEC427; - remoteInfo = EXConstants; + remoteGlobalIDString = 488F0C19AB92FC4B503EB55CC688FCF5; + remoteInfo = EXPermissions; }; - 284686AE181AFB3CF7D3966FEBB9063D /* PBXContainerItemProxy */ = { + 2886FB9B4B7F2B85BCE556DBA40F64E1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 2AFEBA4AE1BF044913C3A1F0ABCD7BEF /* React-RCTVibration.xcodeproj */; + containerPortal = A0F40A7EF94F9CDB1C9EC3706EF31977 /* EXFileSystem.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 502D208480A94D02F62BB739D7512657; - remoteInfo = "React-RCTVibration"; + remoteGlobalIDString = 5232535845650ADAE59870B722468D8A; + remoteInfo = EXFileSystem; }; - 2F6A828F617177C24C91AFE67336840B /* PBXContainerItemProxy */ = { + 299C7D8FCEEE584A590BCFE9CBC14FBF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 58F5BF4DBAF85B453DD79DA82B862E0A /* EXHaptics.xcodeproj */; + containerPortal = 1291D1E0EF26BE30E64DFE7E772780FF /* EXSharing.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 458E4E0DEA9D752CC28F1A42E4B306AC; - remoteInfo = EXHaptics; + remoteGlobalIDString = 1458926EF4B0A3DF1C40B5639E7358B1; + remoteInfo = EXSharing; }; - 326C844A787822153322EEB5212C6F27 /* PBXContainerItemProxy */ = { + 29A2F824BAAC6D5862899640DB847035 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D5E45FC61A6D2D7E3F46F8A281EA7F64 /* UMReactNativeAdapter.xcodeproj */; + containerPortal = AC64B72943BF5A964B4BEA5D03352E8A /* React-Core.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E0F5743D6C158230DA447A63190DF2E9; - remoteInfo = UMReactNativeAdapter; + remoteGlobalIDString = 5DA1A74647F652AE8E4DE074AFC4C6B7; + remoteInfo = "React-Core"; }; - 35855868F9E27821A58D859456185065 /* PBXContainerItemProxy */ = { + 2C46490A97F4F656FDE29AFC58990241 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 7C6CEDFBCA521989947F5B019C76054A /* React-RCTActionSheet.xcodeproj */; + containerPortal = 69B62F0A6A5AE0185AB31AF2B50E6C73 /* EXContacts.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 2B622CBAFD85AC413ED6306FD8B71B00; - remoteInfo = "React-RCTActionSheet"; + remoteGlobalIDString = B22EE26A55A92797A576C80A1202EFFD; + remoteInfo = EXContacts; }; - 39B15604EA16A09A49DA569249C7AA83 /* PBXContainerItemProxy */ = { + 2D3F02A4EF58120647F70AD3648877C9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = B1BC6698202B367C7B3129780457D544 /* EXGL_CPP.xcodeproj */; + containerPortal = E3D4951BFB897802566871A47737F1EE /* EXCrypto.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 4C66693C554B15E2593FB1F665F8BA01; - remoteInfo = EXGL_CPP; + remoteGlobalIDString = 7313EAFC3221A55173D00B5135657D25; + remoteInfo = EXCrypto; }; - 3B6AAB8218C95833AC4ECBF0FCFC644F /* PBXContainerItemProxy */ = { + 2D6B7FE0D400077A830A889D5F2E3BF6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = EC64490903CB102FA5D88F9FD8D4873B /* DoubleConversion.xcodeproj */; + containerPortal = 3AC85EC6EA5A15DE1A14AC44693B3FAF /* EXLocalization.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 725D0E8C1060F8939288E8C91236BA4F; - remoteInfo = DoubleConversion; + remoteGlobalIDString = 55C7C51CE4B49B971674C896CB1DC301; + remoteInfo = EXLocalization; }; - 3C1A537234950AB8ECD1F34B075F0F28 /* PBXContainerItemProxy */ = { + 30088EFDAAB1E9DE2384E33382C74BDE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 6FF66503720CEADA5339CA295727D2E6 /* EXBattery.xcodeproj */; + containerPortal = 790A2E685AC19C611733CE7F67102977 /* UMPermissionsInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5941E7B2BA388644B9A594045D22DE1D; - remoteInfo = EXBattery; + remoteGlobalIDString = 12FF61416C5E794E9DEAC78D381D9726; + remoteInfo = UMPermissionsInterface; }; - 3E4F5A1B13CBDC95AFB48D68224FBDEA /* PBXContainerItemProxy */ = { + 32EB6A244E8E2B57AA237ACBA3AFE442 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = EC8B540ED755EDCB2AE686784D3AF479 /* EXApplication.xcodeproj */; + containerPortal = 154D415A4BF5B57E8E22F022EE88A1A2 /* Yoga.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 2C391225329DE46C6566ED1ADF52F10D; - remoteInfo = EXApplication; + remoteGlobalIDString = 8DB658880A3F558549A84D99BCFADCBC; + remoteInfo = Yoga; }; - 415E5BEBE0E75178ADED5451DEB88B6F /* PBXContainerItemProxy */ = { + 33EA9FDC3E1504E6D2321C306A5A70A2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 8DD091FE677FB13DC171D90C021CA7DE /* GTMAppAuth.xcodeproj */; + containerPortal = 81D1A93D40939D17C69ACA87E0F091B9 /* Amplitude-iOS.xcodeproj */; proxyType = 1; - remoteGlobalIDString = AFFE62B58843E7D325544E4D760E8920; - remoteInfo = GTMAppAuth; + remoteGlobalIDString = E9F5188151EE37F157A617BBBC3DB105; + remoteInfo = "Amplitude-iOS"; }; - 431AF7D2922ED0E18BFF9D7C0FA1633D /* PBXContainerItemProxy */ = { + 3877B90A6B5F0B1026CCF6519797BC8B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 4B81D9E849F7B0FF699CF47FC7F2EC7B /* React-Core.xcodeproj */; + containerPortal = 99EC51DA27D3AF613938A01C65921965 /* UMCore.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5DA1A74647F652AE8E4DE074AFC4C6B7; - remoteInfo = "React-Core"; + remoteGlobalIDString = 153171642F5C5CBC05FD3EF6B23A3F36; + remoteInfo = UMCore; }; - 4D5B404E23A828F7AA99BBBA54EFDA9B /* PBXContainerItemProxy */ = { + 395309C6928642091FF420CF2575E3AF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 06A760ACB1990444FA093A6D7A8AC2EB /* boost-for-react-native.xcodeproj */; + containerPortal = 5C904EB0F8D09A9D6A2CA1D9E5FB1A5E /* FBReactNativeSpec.xcodeproj */; proxyType = 1; - remoteGlobalIDString = AA4CE39926C0C12D02F874C1C48A5710; - remoteInfo = "boost-for-react-native"; + remoteGlobalIDString = 5CDFFFDA1BEA16A0D3629FE9F761022A; + remoteInfo = FBReactNativeSpec; }; - 4FE18B2D19C547E0FF873FCE071D4A0D /* PBXContainerItemProxy */ = { + 3A3442214292971BCE3FB68A3F07763B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = B2F742EBD46D881CC735F4D4A4260119 /* Folly.xcodeproj */; + containerPortal = 1CEBDBC09F655F237DA82B43D4E56D1A /* EXConstants.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = F3E96ACB94E2361FA9D83BE599DEC427; + remoteInfo = EXConstants; + }; + 436B61B79E4477585A4EDB1DDA6D1502 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3BA6FCAA80CA6709FC129B2F8F1455D9 /* Folly.xcodeproj */; proxyType = 1; remoteGlobalIDString = 14BB2B7275726942E762F076FA966088; remoteInfo = Folly; }; - 54275ED60E349E7388A578FD6CAC77C9 /* PBXContainerItemProxy */ = { + 458E74C7A2B3BCEB0678B44712A07B95 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 0CCA7AB54711A1C565D9146E86AF6FE5 /* EXSegment.xcodeproj */; + containerPortal = 38C1D46D658188871C901CE039368D2B /* GoogleSignIn.xcodeproj */; proxyType = 1; - remoteGlobalIDString = D65C18BEC619DFEA9C73805518539F66; - remoteInfo = EXSegment; + remoteGlobalIDString = 70D52585A9FA4EEA343010638ADABC11; + remoteInfo = GoogleSignIn; }; - 5C9524D6AB93120FF7D58A9461D45112 /* PBXContainerItemProxy */ = { + 496ADDE86A2DCEA1811894FEDE15246A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 6F2506A46EAB2A974A4A198BF26B5D11 /* UMCore.xcodeproj */; + containerPortal = A31EA7E16D8F9F37E83632B7A9BD49BD /* UMFontInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 153171642F5C5CBC05FD3EF6B23A3F36; - remoteInfo = UMCore; + remoteGlobalIDString = 7F4112A673122B6D50845D9BC1D9AFDB; + remoteInfo = UMFontInterface; }; - 603B6A8FFFCAC287D8B39746D674B792 /* PBXContainerItemProxy */ = { + 4ADB525BF5F77FDD2CEEF68E2C4F36C3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 00D632F97A746F8FBEE5FD654C95A5D4 /* EXBrightness.xcodeproj */; + containerPortal = 9FBF69DFB7386F17655AA92E47A91B88 /* EXLocalAuthentication.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 4AA3EE5BEEB58B2975A12819B1C58D97; - remoteInfo = EXBrightness; + remoteGlobalIDString = 8D12244750972C21D688A2875A0E77F4; + remoteInfo = EXLocalAuthentication; }; - 64A6C9CE2FB3DF3B12C572FCB9448BD0 /* PBXContainerItemProxy */ = { + 56D4B2E5F7422F637672FED6B1CF986F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 86F0EA4A0FCDB3FC734AE64574A90EBC /* react-native-safe-area-context.xcodeproj */; + containerPortal = D0A15388E6A79D84E72CB78529279E0C /* React-CoreModules.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 6FF729CB9CEA59FDDF1BA16AEB2B98D6; - remoteInfo = "react-native-safe-area-context"; + remoteGlobalIDString = 42F070932EC272C376353459CE0FA76E; + remoteInfo = "React-CoreModules"; }; - 65CCF35240ECB03F58B9E1E002B5E477 /* PBXContainerItemProxy */ = { + 56F4DE4682B3525F826E75C5B6982250 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 7572990AACADFEEFE5EF8AF3A2415FD0 /* FBReactNativeSpec.xcodeproj */; + containerPortal = C307D52AB4940565B4FE24E5B2BA7277 /* EXMediaLibrary.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5CDFFFDA1BEA16A0D3629FE9F761022A; - remoteInfo = FBReactNativeSpec; + remoteGlobalIDString = 422CF65902B3ABF0E6A47527F9209CC8; + remoteInfo = EXMediaLibrary; }; - 67D78E6479226F565CE530FAD81A8B39 /* PBXContainerItemProxy */ = { + 586B05268C91474689F61A15ED902913 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 6790273ACF64FACB6F6C790F7465109B /* Amplitude-iOS.xcodeproj */; + containerPortal = 837FB515358617F85BDF99978EE71115 /* glog.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E9F5188151EE37F157A617BBBC3DB105; - remoteInfo = "Amplitude-iOS"; + remoteGlobalIDString = 86F597DC3D8F3D7A34EC5A5C413F7255; + remoteInfo = glog; }; - 6D82ECC6C79E6BD8C4D55A0CF63A4D21 /* PBXContainerItemProxy */ = { + 5886A4134F2FA5B8753778E853BA19BA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D7D345E8C3BC6E50CBED042829BBF090 /* EXSensors.xcodeproj */; + containerPortal = D88FC63D8F76640F60314E4A5077FD31 /* EXAppAuth.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5F5B88A2576A073FBDD91B02A10308F1; - remoteInfo = EXSensors; + remoteGlobalIDString = 5FB7695B45E2F2A9171D3B6C97B3A1A2; + remoteInfo = EXAppAuth; }; - 70227CF8F6B2D08A40EC88165F2BAEE8 /* PBXContainerItemProxy */ = { + 5986255D885BB7F771FE7C2C0E2BD5E3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + containerPortal = 37D51A279F61ACA707D2DDB2B4775260 /* react-native-safe-area-context.xcodeproj */; proxyType = 1; - remoteGlobalIDString = C616BB9F650D110E835D02A3250F302E; - remoteInfo = "Pods-BareExpo"; + remoteGlobalIDString = 6FF729CB9CEA59FDDF1BA16AEB2B98D6; + remoteInfo = "react-native-safe-area-context"; }; - 72CCD3670C80EA569EAE6696701FE495 /* PBXContainerItemProxy */ = { + 5A4A2A9AC0BEE1DF43937DF2E89B2C90 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = C4691EC6027337FE88F7B6C142C79DA9 /* EXLinearGradient.xcodeproj */; + containerPortal = 602F1AC40936205BAA0B2DB343047BC2 /* FBLazyVector.xcodeproj */; proxyType = 1; - remoteGlobalIDString = AF5113FDFEF2ECEBDD58149C34DD4634; - remoteInfo = EXLinearGradient; + remoteGlobalIDString = 4B95F1280DBD545D036916608691C3EF; + remoteInfo = FBLazyVector; }; - 747EAA46A036A88E6C075D7CAC73D253 /* PBXContainerItemProxy */ = { + 5B3A54C1CC98D54A8BF01EC39A0CCE9A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 3A6F2FEF94FB5051D0E15E0E75E061CE /* EXCellular.xcodeproj */; + containerPortal = 847FD5ED7B8C4325822B875EFAC72828 /* RCTTypeSafety.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 0F0F7D35F4DD6BA6A33589D3CB5759F3; - remoteInfo = EXCellular; + remoteGlobalIDString = 9C3601DE72183D42B9DC3FF333D35CF7; + remoteInfo = RCTTypeSafety; }; - 748CA12AEE04BEF5A766A071E198A2F3 /* PBXContainerItemProxy */ = { + 5C939B02FA3137B5DF8CDE1F7841A5EA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 9B3C09E1B51BE5C72B1178721DFB4736 /* EXSQLite.xcodeproj */; + containerPortal = B79AA8F0753060DE025621A58BF10081 /* EXSecureStore.xcodeproj */; proxyType = 1; - remoteGlobalIDString = B8358C45B103287E90F710967785DD34; - remoteInfo = EXSQLite; + remoteGlobalIDString = C4DBAA5ED98E7A037D09674FF42AF66F; + remoteInfo = EXSecureStore; }; - 7EF30E0E4FFCDBEEAF279262F6874A60 /* PBXContainerItemProxy */ = { + 5E64C90BB3D6B2D2266FA06EF57FEDE3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 621E66BDF9658FBAEB7835F073CC1D58 /* EXAV.xcodeproj */; + containerPortal = D78B6B55B6F370CFD13934B2CC9B6119 /* EXDocumentPicker.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 657B3E0E8F77DB91FA182432EC404FBF; - remoteInfo = EXAV; + remoteGlobalIDString = 40300EFA08DDB78C6AFF84A0F118E9CD; + remoteInfo = EXDocumentPicker; }; - 7FC8F2D1B333FC5EADC4FBA1AB7EBFB5 /* PBXContainerItemProxy */ = { + 6FD2484E117822D91CEF929D743CB84F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 50C4358AD398837056C0C6E564E5FB45 /* RCTRequired.xcodeproj */; + containerPortal = 6FE9E6378CCA409045A0D6F7725BD635 /* React-RCTImage.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 7B4E6DC12B1D694845842E9A06C59213; - remoteInfo = RCTRequired; + remoteGlobalIDString = C78CA5C5EDDCCF5EC637E0FC8BB4C96E; + remoteInfo = "React-RCTImage"; }; - 834482237C0D29D3B0A986E0108F44E8 /* PBXContainerItemProxy */ = { + 70227CF8F6B2D08A40EC88165F2BAEE8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 469C509D4699E1DC0DF43F06F3A21FD4 /* EXMailComposer.xcodeproj */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2E02530F5AAAD2AC2A43FE2B8AC3E99C; - remoteInfo = EXMailComposer; + remoteGlobalIDString = C616BB9F650D110E835D02A3250F302E; + remoteInfo = "Pods-BareExpo"; }; - 838268DE1B4CA8F37523351A20B732E7 /* PBXContainerItemProxy */ = { + 70734B1E9EA0F936F6E3A313F90C657C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = AF0568DC623CE5D3D2E159457E57B21F /* EXMediaLibrary.xcodeproj */; + containerPortal = 2FA4EA22672E5A6B552140467F83F0D5 /* UMImageLoaderInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 422CF65902B3ABF0E6A47527F9209CC8; - remoteInfo = EXMediaLibrary; + remoteGlobalIDString = A734124238F83C1FEE81C0FEDC5CDC5C; + remoteInfo = UMImageLoaderInterface; }; - 84CBD0CEF3538AC641BB40C36876BD81 /* PBXContainerItemProxy */ = { + 754D4A6FA047092156B7BFE15CF5CE82 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = C099422E2DC2875E807A665C97BCC571 /* FBLazyVector.xcodeproj */; + containerPortal = BFC20E8D25AC617CEF09AEE4F3B6447C /* EXUpdates.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 4B95F1280DBD545D036916608691C3EF; - remoteInfo = FBLazyVector; + remoteGlobalIDString = 076FF2640FFF3466FB36FD12A629113A; + remoteInfo = EXUpdates; }; - 865D575A281702845E263A55EB18538C /* PBXContainerItemProxy */ = { + 7582E2C1BD5F25FFE26C1115879B20E1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A3F4A301606C753818F89B954CBABFFA /* React-CoreModules.xcodeproj */; + containerPortal = C82A773803E9590719BF9B2ADBDC8853 /* RNReanimated.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 42F070932EC272C376353459CE0FA76E; - remoteInfo = "React-CoreModules"; + remoteGlobalIDString = E9E22639328ACC061EB56756AD5B4F57; + remoteInfo = RNReanimated; }; - 8A898395EFE24E3518D6ACE4807A4410 /* PBXContainerItemProxy */ = { + 762C229920508A7C1071A62F613FE744 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 3561DE58B3DAAE4AA0D0BC1C630862FA /* Analytics.xcodeproj */; + containerPortal = 39600D89716D9EF152089FCE92F9611F /* React-RCTText.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 428EE321470913F61A7C253ACF3B4D53; - remoteInfo = Analytics; + remoteGlobalIDString = F0809BF90AC70C40646AB597C21CC420; + remoteInfo = "React-RCTText"; }; - 8B6BE6262BA49516FE8E6F4D75224DD0 /* PBXContainerItemProxy */ = { + 7811002A80AC1E7EAF4C8894ABE73D57 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D1D370A1C813FC6C49069D6F265F56E3 /* EXErrorRecovery.xcodeproj */; + containerPortal = 2DFD1D139E40516EB3C8592132C16563 /* React-RCTBlob.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 49603BA4A7FB1CFC9ACD589B8CE05EA2; - remoteInfo = EXErrorRecovery; + remoteGlobalIDString = D8D59AAB809693DB02967107370F4619; + remoteInfo = "React-RCTBlob"; }; - 8E0663814249A4ADFF8E7A4A5345A03A /* PBXContainerItemProxy */ = { + 78B92CED29A733A14982F6CF0A7DFEFC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 1CA025FC93211998774902CC4663DD61 /* EXSharing.xcodeproj */; + containerPortal = 0E7C660C1D1A671A1C2C6E0A386E4F98 /* EXGoogleSignIn.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1458926EF4B0A3DF1C40B5639E7358B1; - remoteInfo = EXSharing; + remoteGlobalIDString = 1EBA7C3FD4A2348A1EFF618E12286F06; + remoteInfo = EXGoogleSignIn; }; - 9AF5A7B953E92F6D2EFF76EFFDE4DE59 /* PBXContainerItemProxy */ = { + 7A966DD2F28C59FB519D21A29DAC0C3E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 1EC4C5F6778FD0728D36B94A40185D7A /* EXFileSystem.xcodeproj */; + containerPortal = 0DCFBB69843FF7B3B3F4DBFA9395897F /* EXRandom.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5232535845650ADAE59870B722468D8A; - remoteInfo = EXFileSystem; + remoteGlobalIDString = 00EB4A6BB9778AFFF7F587D732973596; + remoteInfo = EXRandom; }; - 9B46D48EFD5EF68D89130936A94F0CD3 /* PBXContainerItemProxy */ = { + 8339A31787E72B0335048723E34B17A0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 8C472FA03A74CA155968F8B7216E490A /* EXSpeech.xcodeproj */; + containerPortal = 67E8A05962A87D9D3E97F466C0588F3E /* EXBattery.xcodeproj */; proxyType = 1; - remoteGlobalIDString = AC043527FC46D59E5210AD9D49B847FC; - remoteInfo = EXSpeech; + remoteGlobalIDString = 5941E7B2BA388644B9A594045D22DE1D; + remoteInfo = EXBattery; }; - 9B902F5A4F54D64F86DDBD98FFC44F69 /* PBXContainerItemProxy */ = { + 88E8AAB58D90D69B73E53CB1039AD148 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 5C7101C48EADF48A3F01ADAD195A0608 /* EXStoreReview.xcodeproj */; + containerPortal = C48CFC9D9BAC60B4713D773CBCC18138 /* React-RCTActionSheet.xcodeproj */; proxyType = 1; - remoteGlobalIDString = F2C74458D282DA74DB95F8A7FE6A5207; - remoteInfo = EXStoreReview; + remoteGlobalIDString = 2B622CBAFD85AC413ED6306FD8B71B00; + remoteInfo = "React-RCTActionSheet"; }; - 9BDC84B84E26F07933C0332937E97893 /* PBXContainerItemProxy */ = { + 89C1B83344DFB9F8757ED973FEFD75D8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 59558382C9C14CEDEC8ECC99462044AC /* EXSMS.xcodeproj */; + containerPortal = D918720DA8177424E16B7D398B1E42BA /* React-RCTNetwork.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1309E054CB75DA99E029D5D2C8C2210E; - remoteInfo = EXSMS; + remoteGlobalIDString = B42CC4F102742853C37E7C4841756DBE; + remoteInfo = "React-RCTNetwork"; }; - 9C3E3E2A9F7E24D3111FB14B5EE4B00D /* PBXContainerItemProxy */ = { + 9412205B3F0255BC6427D1FE79F93D4D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 384191FF16B8310DB2CA32CE12714F26 /* EXAppAuth.xcodeproj */; + containerPortal = 2D820764336141EB6A64FB5E39379B84 /* EXSQLite.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 5FB7695B45E2F2A9171D3B6C97B3A1A2; - remoteInfo = EXAppAuth; + remoteGlobalIDString = B8358C45B103287E90F710967785DD34; + remoteInfo = EXSQLite; }; - A2F13C125416EB21F8FAEE2465DAC2AB /* PBXContainerItemProxy */ = { + 9A6F2C6B72B62171B236644CDFA5E17C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A9333E5CD08216B9D4D56A43F8AFFB5B /* EXDevice.xcodeproj */; + containerPortal = AF9B03AFD3122203FA523C331045B557 /* EXErrorRecovery.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 61CE878EC16A63D023F23DA6C1B824B9; - remoteInfo = EXDevice; + remoteGlobalIDString = 49603BA4A7FB1CFC9ACD589B8CE05EA2; + remoteInfo = EXErrorRecovery; }; - A4861781D8FFCA47636C2B2572BBA817 /* PBXContainerItemProxy */ = { + 9B3387B09458A77915E4FECED561E332 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 10773CD4E5B8A755D9E0D42FC649AEB4 /* UMFontInterface.xcodeproj */; + containerPortal = E35074979A21EA433E91AFF284E3AC50 /* EXSensors.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 7F4112A673122B6D50845D9BC1D9AFDB; - remoteInfo = UMFontInterface; + remoteGlobalIDString = 5F5B88A2576A073FBDD91B02A10308F1; + remoteInfo = EXSensors; }; - A58BD843AD668DFD173903AEB86893D7 /* PBXContainerItemProxy */ = { + 9D76DE94DE8A9BBDB566D04BDBAD1044 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 6FA7CD78D631158BDBE6D2A9C4FC19FB /* AppAuth.xcodeproj */; + containerPortal = F5378BC6DC876907C7D4762A994635E1 /* UMSensorsInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 4EFA7E4CE531453CF475A9A4322A84F8; - remoteInfo = AppAuth; + remoteGlobalIDString = 1FDCE556B997E87DAB0DA2727CC69285; + remoteInfo = UMSensorsInterface; }; - A75B4DE316B3C94CC37B4A662123569C /* PBXContainerItemProxy */ = { + 9E57EB6A3151AA92814D09FFBB8D1788 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = E3C83D9BB0BF020DE9E3EA402FF40418 /* EXDocumentPicker.xcodeproj */; + containerPortal = 42DD6321E59344D440B1F51FE3CF79E7 /* ReactCommon.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 40300EFA08DDB78C6AFF84A0F118E9CD; - remoteInfo = EXDocumentPicker; + remoteGlobalIDString = 2610D146B211EB79FECF83D4FA5AB36D; + remoteInfo = ReactCommon; }; - A8B0AE310D7DFFEE773B7F31A8FC8DC7 /* PBXContainerItemProxy */ = { + 9EAC0AFB4D6D6D4B4E2D72A086562D4B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = B16FF31EB7B2D5E60E6685477B72EBC5 /* EXFont.xcodeproj */; + containerPortal = 486D05376E4B939AAAA46292A4C1EDC5 /* React-RCTAnimation.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 0A4A001679E384FB337FF08C5D081399; - remoteInfo = EXFont; + remoteGlobalIDString = 8FD0C9BFE0E509D0066C67C06EE170B5; + remoteInfo = "React-RCTAnimation"; }; - A8F91F7C4377813388AE4D2DDB3F6CA4 /* PBXContainerItemProxy */ = { + A0702A3F3987D834E5CB524D7582BC42 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D58517F1F49DD7F710C941D73B419B5C /* EXAppLoaderProvider.xcodeproj */; + containerPortal = 2B3EF7E45E25388E46088AEF724044E2 /* EXGL_CPP.xcodeproj */; proxyType = 1; - remoteGlobalIDString = BCF55F45F804FC2D6BC57983597F3174; - remoteInfo = EXAppLoaderProvider; + remoteGlobalIDString = 4C66693C554B15E2593FB1F665F8BA01; + remoteInfo = EXGL_CPP; }; - AD6B10B33B18CA4A347E896D47BF322A /* PBXContainerItemProxy */ = { + A1E5C22EA8DDC7C8B2374E152A49DDF8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = AFBF976B0EF04C9912E08179B68D2308 /* EXBarCodeScanner.xcodeproj */; + containerPortal = 211D8213F75598D838AA142334A75A03 /* RCTRequired.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E6D544E86F973F511B82FE486E5E25CD; - remoteInfo = EXBarCodeScanner; + remoteGlobalIDString = 7B4E6DC12B1D694845842E9A06C59213; + remoteInfo = RCTRequired; }; - B060D0AFB1E0CC3F9EFAB39BBB472BDE /* PBXContainerItemProxy */ = { + A45DAF1200969FEA0AAE45BA94FBE32D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A90F97E439A7BC54338B0DC132FB389F /* EXLocalAuthentication.xcodeproj */; + containerPortal = 72E97573157DD427D06035896E61A932 /* GTMAppAuth.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 8D12244750972C21D688A2875A0E77F4; - remoteInfo = EXLocalAuthentication; + remoteGlobalIDString = AFFE62B58843E7D325544E4D760E8920; + remoteInfo = GTMAppAuth; }; - B142D18C098B8F928A3B28E83EE06A70 /* PBXContainerItemProxy */ = { + A7F2BAC3294F187AAFAFAC16F66D2F77 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 081775E5E1E22CD733CEC31DEC05391D /* EXImagePicker.xcodeproj */; + containerPortal = B79E739FDB18023D4C8E4264D5CE84D3 /* EXGL.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 9ACF1D2895E366F44F904503F65171CD; - remoteInfo = EXImagePicker; + remoteGlobalIDString = 78CC35D6F49ACC0F72F0095F78EFDCE7; + remoteInfo = EXGL; }; - B302FD2BB02B0AAD96BDC1C6DB19E566 /* PBXContainerItemProxy */ = { + AAFC45B81AD9B7003B656D494849C5BC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D06CF6E8B5CE7D5A760E443475289B14 /* UMImageLoaderInterface.xcodeproj */; + containerPortal = 4915DBB1FD2CAFEC6F31A56C0C6957F2 /* GTMSessionFetcher.xcodeproj */; proxyType = 1; - remoteGlobalIDString = A734124238F83C1FEE81C0FEDC5CDC5C; - remoteInfo = UMImageLoaderInterface; + remoteGlobalIDString = BD7A8A3BC22FD28DCB40568BE43D7C70; + remoteInfo = GTMSessionFetcher; }; - B3B22FDA90847B607B6AB701065D65BE /* PBXContainerItemProxy */ = { + AE5C3FC5B1E65980DAD50948DCF5C6D4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 24C2C1248498064540A1A0795384B075 /* UMConstantsInterface.xcodeproj */; + containerPortal = 4F6D317BD66107DED81B141CC7C9862B /* EXCalendar.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 46F82E84687582F366B907E2BD5F1EA2; - remoteInfo = UMConstantsInterface; + remoteGlobalIDString = 0F2988851D689F1E41CFC89C31422758; + remoteInfo = EXCalendar; }; - B3DFA936118F40EC72787C517C5197ED /* PBXContainerItemProxy */ = { + B0AF012459FB8FBA764ECFBCAF75AEFF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 93A314050AEE5C54490FF76731532B5D /* React-RCTAnimation.xcodeproj */; + containerPortal = 4A75B063423ACC708261B1E2E6A5AF72 /* EXBluetooth.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 8FD0C9BFE0E509D0066C67C06EE170B5; - remoteInfo = "React-RCTAnimation"; + remoteGlobalIDString = 85E4ABA3FE5052C9FD39179D7166A9C1; + remoteInfo = EXBluetooth; }; - B4151C4687EFC1E5E85C4622E62BABAA /* PBXContainerItemProxy */ = { + B22CA872137DE382F4D19A1808237607 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = BAD136761E20C0CF271C8994F81BE4E8 /* UMCameraInterface.xcodeproj */; + containerPortal = 74FEDEFE688494CAE07748B5D758B147 /* EXBlur.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 86372E925D4E10D72894E239CC18BCD9; - remoteInfo = UMCameraInterface; + remoteGlobalIDString = D08BCCD5DE12C8EFB6429B9126525E9F; + remoteInfo = EXBlur; }; - B621C005B2348C73A36A9F050EF3AAEC /* PBXContainerItemProxy */ = { + B43AF8ADB4ABED542A191F0C92CDA58E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 9F278CA3578A1C7C742F5C39E58E8626 /* EXRandom.xcodeproj */; + containerPortal = 7C365CF21BA55DFDF477C4C9CE32DCA1 /* EXPrint.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 00EB4A6BB9778AFFF7F587D732973596; - remoteInfo = EXRandom; + remoteGlobalIDString = FEAB4A1E3F5EAA6EBAE612E8CBDD2612; + remoteInfo = EXPrint; }; - BA9CC7508F551A390E71FA7366A4BB7B /* PBXContainerItemProxy */ = { + B616A6DBE11835E3828477A080007882 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 1FBDB8F24C5539045D8AE87F927FB3EE /* EXWebBrowser.xcodeproj */; + containerPortal = ACDF0A1622DDFFECE9C4DD356D1BA970 /* EXDevice.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 026359A12CA511AF12897ED05A83462C; - remoteInfo = EXWebBrowser; + remoteGlobalIDString = 61CE878EC16A63D023F23DA6C1B824B9; + remoteInfo = EXDevice; }; - BAD1DF73985CE89817BFA6C0543F3D03 /* PBXContainerItemProxy */ = { + B8313E58D931E0DF5AAF44180C29A885 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 3E8F53A4E4A9F6D8E7270A1D59C0414A /* EXCrypto.xcodeproj */; + containerPortal = 283EB81A8B2631DC912F91F2E743D805 /* UMCameraInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 7313EAFC3221A55173D00B5135657D25; - remoteInfo = EXCrypto; + remoteGlobalIDString = 86372E925D4E10D72894E239CC18BCD9; + remoteInfo = UMCameraInterface; }; - BC28539A09791D00B0BBE33A1BFCC04F /* PBXContainerItemProxy */ = { + BC67C44FE17DD6A19F9E8B7CA1B8C21C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = BB09D5AC4BEBC2617D9D95C54475FA09 /* React.xcodeproj */; + containerPortal = 951A59FA6D6F13FE2BC2DC148092885D /* EXLinearGradient.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 94DA87F24FB4B93E5D08FE961D5E5A3E; - remoteInfo = React; + remoteGlobalIDString = AF5113FDFEF2ECEBDD58149C34DD4634; + remoteInfo = EXLinearGradient; }; - BC8167D94C315BAC5226405FC6608AA7 /* PBXContainerItemProxy */ = { + BCF48DD07D2F4C863C70A03EA55F39F7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 21907930CDED304581AE9F8EF737DFC3 /* glog.xcodeproj */; + containerPortal = D1A3C1892F717A0516FC6E06862425AD /* React-cxxreact.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 86F597DC3D8F3D7A34EC5A5C413F7255; - remoteInfo = glog; + remoteGlobalIDString = BD509719D4F0C3D8910F2BED0B6AB5F3; + remoteInfo = "React-cxxreact"; }; - BF01986E6376555F8A81956D27CEE244 /* PBXContainerItemProxy */ = { + BE305DBB61F72B252077F23B9000886B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 73E1515109725296D25100C06DA91793 /* RCTTypeSafety.xcodeproj */; + containerPortal = A5F35E9471A25BAFEB3AB53EDB2E48BD /* UMBarCodeScannerInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 9C3601DE72183D42B9DC3FF333D35CF7; - remoteInfo = RCTTypeSafety; + remoteGlobalIDString = 971E60E1AF9163E7E08105622FC91C16; + remoteInfo = UMBarCodeScannerInterface; }; - C0D1C19DEA5D365061FF4508B4800EF2 /* PBXContainerItemProxy */ = { + BF42B9CC2019D0F91470CE826F220F28 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F6C89811BEB495795C6F1B805FCF9133 /* GTMSessionFetcher.xcodeproj */; + containerPortal = 5ED0F47567E19D563562378CB541F063 /* React-jsiexecutor.xcodeproj */; proxyType = 1; - remoteGlobalIDString = BD7A8A3BC22FD28DCB40568BE43D7C70; - remoteInfo = GTMSessionFetcher; + remoteGlobalIDString = 7F7693C84AD2D676CE4E5741F508C198; + remoteInfo = "React-jsiexecutor"; }; - C58FA3752529C35AD98AF55942791482 /* PBXContainerItemProxy */ = { + C44BFA7EDE6D662FB3341FE30CCE61A1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = B95E106A906DA6BC3B1AE32B1476EC96 /* React-RCTText.xcodeproj */; + containerPortal = 85183E225D7A7272819751A43B77122A /* ZXingObjC.xcodeproj */; proxyType = 1; - remoteGlobalIDString = F0809BF90AC70C40646AB597C21CC420; - remoteInfo = "React-RCTText"; + remoteGlobalIDString = F1A98E99C5291C55C29C32D889990685; + remoteInfo = ZXingObjC; }; - C6775EA6E67262174AE3F8EB9BC04527 /* PBXContainerItemProxy */ = { + C4D1D3FD3BAD1607F4A843AEA84F1910 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 53B70B73EBA72F4DB54EFB1201B958D9 /* React-RCTBlob.xcodeproj */; + containerPortal = 4830F218FE12E25D199C4BF46791F52C /* EXBrightness.xcodeproj */; proxyType = 1; - remoteGlobalIDString = D8D59AAB809693DB02967107370F4619; - remoteInfo = "React-RCTBlob"; + remoteGlobalIDString = 4AA3EE5BEEB58B2975A12819B1C58D97; + remoteInfo = EXBrightness; }; - C793E8E284B01FE1C42765785C913284 /* PBXContainerItemProxy */ = { + CAF99F2177FE1B7C7F23798B15E0A5A7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = C2EA603A6A2597676F274428E05872B9 /* React-jsiexecutor.xcodeproj */; + containerPortal = 31ED0F047A312EAA2BE054E15BB3DA57 /* EXFont.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 7F7693C84AD2D676CE4E5741F508C198; - remoteInfo = "React-jsiexecutor"; + remoteGlobalIDString = 0A4A001679E384FB337FF08C5D081399; + remoteInfo = EXFont; }; - C7B8E4638B3FEEE41A30B79BCD5A66A2 /* PBXContainerItemProxy */ = { + CB6007B65E78188B3DBC7B7B0B53EE7C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 11A32ED6BFC7435B83A74B68227CF672 /* ReactCommon.xcodeproj */; + containerPortal = 22B7962C5AC6F553566BDB321CDCBED7 /* Analytics.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 2610D146B211EB79FECF83D4FA5AB36D; - remoteInfo = ReactCommon; + remoteGlobalIDString = 428EE321470913F61A7C253ACF3B4D53; + remoteInfo = Analytics; }; - D1E465D8EE4E1BB41A4F686819B41C3F /* PBXContainerItemProxy */ = { + CC0A1C43A4C49CE5036AF9D65AE0A094 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 5C0692C4DCE5A6E01C6809F60A6FBB6E /* React-cxxreact.xcodeproj */; + containerPortal = 19518053F4B0ADB5DD067DBC654DCDC8 /* EXHaptics.xcodeproj */; proxyType = 1; - remoteGlobalIDString = BD509719D4F0C3D8910F2BED0B6AB5F3; - remoteInfo = "React-cxxreact"; + remoteGlobalIDString = 458E4E0DEA9D752CC28F1A42E4B306AC; + remoteInfo = EXHaptics; }; - D7FFDD3F5095036FF7AF5F5D29EFB1BE /* PBXContainerItemProxy */ = { + D043C6D69D8E8DBE9A2A6B5904D80A4B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 966D82943A84614F0D90E09EED82FC4A /* EXAmplitude.xcodeproj */; + containerPortal = D9159EDE5B081372F59C922A6F771D88 /* EXWebBrowser.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 700BA3D76A8C4362E721FECC92A96DFB; - remoteInfo = EXAmplitude; + remoteGlobalIDString = 026359A12CA511AF12897ED05A83462C; + remoteInfo = EXWebBrowser; }; - DC0A99BF800318FF2591A3C3BF67AA2A /* PBXContainerItemProxy */ = { + D264A1CBF2E9FEA332EC92EB30758B6A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 068283BA3523101E0BA7F90CEB90A6A1 /* Yoga.xcodeproj */; + containerPortal = 84BC96E6F93CA7ACABFB696BC390AAE4 /* DoubleConversion.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 8DB658880A3F558549A84D99BCFADCBC; - remoteInfo = Yoga; + remoteGlobalIDString = 725D0E8C1060F8939288E8C91236BA4F; + remoteInfo = DoubleConversion; }; - DDFE0FA34D9552D9D2E63BB7DDC37FB3 /* PBXContainerItemProxy */ = { + D27C7DF1BFAE9F9C2D7274FCF3D08D5F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 7673391655AE15ABB96812EE718E18B3 /* EXBluetooth.xcodeproj */; + containerPortal = 9CEAF6033593566F9D90D312481E1561 /* EXSegment.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 85E4ABA3FE5052C9FD39179D7166A9C1; - remoteInfo = EXBluetooth; + remoteGlobalIDString = D65C18BEC619DFEA9C73805518539F66; + remoteInfo = EXSegment; }; - DF4AEE3244EB84A881866AE1F00F702A /* PBXContainerItemProxy */ = { + D84005DE0A7FC1C2180D6DC48F158195 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 01CFA74EFC65BCFDF41AE2DB0615EED8 /* React-jsi.xcodeproj */; + containerPortal = FBDB34F0ECB442D367E68748ADA3820F /* EXImageManipulator.xcodeproj */; proxyType = 1; - remoteGlobalIDString = D0DB82AB65D33935072718EA2468992F; - remoteInfo = "React-jsi"; + remoteGlobalIDString = C3AA7C99B7CAD2FC22B8AA8928D7DF6F; + remoteInfo = EXImageManipulator; }; - E22601FB7D527CB7700F5EF31658A6BD /* PBXContainerItemProxy */ = { + DCF29BC56D0890AC4130BF00F0C9D8DD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 6F0ED87952B752BF2F6950D2DAB51472 /* EXContacts.xcodeproj */; + containerPortal = 766836226A2B4B63203538724CCB4F1C /* EXAmplitude.xcodeproj */; proxyType = 1; - remoteGlobalIDString = B22EE26A55A92797A576C80A1202EFFD; - remoteInfo = EXContacts; + remoteGlobalIDString = 700BA3D76A8C4362E721FECC92A96DFB; + remoteInfo = EXAmplitude; }; - E49E09ABFFD95C08AE12CE1C82C5B1C2 /* PBXContainerItemProxy */ = { + DF962C651115BD29A1B59BB3CB77A30D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 4B8658D487323D6EEE125B5F57F06468 /* UMSensorsInterface.xcodeproj */; + containerPortal = 5370504E9C2AB0A5A79DCDA80512DF63 /* EXNotifications.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1FDCE556B997E87DAB0DA2727CC69285; - remoteInfo = UMSensorsInterface; + remoteGlobalIDString = 6C660F81CE4F0EC96D208B20C3E8B154; + remoteInfo = EXNotifications; }; - E6029B48C29AAF21C67710BD18B592A9 /* PBXContainerItemProxy */ = { + E4F13EAE7D0B938A6C9D9ADE3128ED84 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 9F3B324040A71A156CE8681CBF0610AA /* EXUpdates.xcodeproj */; + containerPortal = CF1C7256B0751DFBBBC3C32DA058F9B2 /* EXAV.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 076FF2640FFF3466FB36FD12A629113A; - remoteInfo = EXUpdates; + remoteGlobalIDString = 657B3E0E8F77DB91FA182432EC404FBF; + remoteInfo = EXAV; }; - EB26241BADD0FC63FCBA5916C92149FB /* PBXContainerItemProxy */ = { + E51836B09C2FC93BC074CCA4B3AD62CC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 9530BB032E863145DD427DBC06A82F68 /* EXGoogleSignIn.xcodeproj */; + containerPortal = 4A8C2D314E95B84D433DB3EC5D0248A8 /* EXMailComposer.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 1EBA7C3FD4A2348A1EFF618E12286F06; - remoteInfo = EXGoogleSignIn; + remoteGlobalIDString = 2E02530F5AAAD2AC2A43FE2B8AC3E99C; + remoteInfo = EXMailComposer; }; - EC0BE966E103A871BD282F4BEAD88408 /* PBXContainerItemProxy */ = { + E80BDFD8FD707172EE3568836C8E214F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = E17942621B3C5C442DAEF9E85EE80964 /* GoogleSignIn.xcodeproj */; + containerPortal = EBA46FF6FE79918F2108E6350176703C /* EXApplication.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 70D52585A9FA4EEA343010638ADABC11; - remoteInfo = GoogleSignIn; + remoteGlobalIDString = 2C391225329DE46C6566ED1ADF52F10D; + remoteInfo = EXApplication; }; - ECE72C945FEE79C19347B366A6114888 /* PBXContainerItemProxy */ = { + ED027510CF7496DCB9D74BD29EBBE262 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 4971CAC7D488A21F083090F5DF77441A /* EXPrint.xcodeproj */; + containerPortal = A0472A19A0663233A80B3D04DF83139C /* EXAppLoaderProvider.xcodeproj */; proxyType = 1; - remoteGlobalIDString = FEAB4A1E3F5EAA6EBAE612E8CBDD2612; - remoteInfo = EXPrint; + remoteGlobalIDString = BCF55F45F804FC2D6BC57983597F3174; + remoteInfo = EXAppLoaderProvider; }; - EDE74689F85B5DC963E8E16C1B164F4E /* PBXContainerItemProxy */ = { + EF8186F7500A8E201AC45D09194C7997 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 63CC2109E824718DD6CF3ECF2951714F /* EXNetwork.xcodeproj */; + containerPortal = 8BB89C73D41B6306783F6127102D17EE /* UMConstantsInterface.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 71F2A4AC24C8FBC0E24B6A613BB4F7BC; - remoteInfo = EXNetwork; + remoteGlobalIDString = 46F82E84687582F366B907E2BD5F1EA2; + remoteInfo = UMConstantsInterface; }; - F5B574F9DB6077B85805505D38AC81FA /* PBXContainerItemProxy */ = { + EFCF51AE8DE666A1A23D98409FEEA1AA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F93842B2AFB5431663D17D6C8B0DAD27 /* UMPermissionsInterface.xcodeproj */; + containerPortal = E6C81641E33F90B0058BD7F47E6F95F4 /* boost-for-react-native.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 12FF61416C5E794E9DEAC78D381D9726; - remoteInfo = UMPermissionsInterface; + remoteGlobalIDString = AA4CE39926C0C12D02F874C1C48A5710; + remoteInfo = "boost-for-react-native"; }; - F6613DD846BED619D89CA5871B5D76BE /* PBXContainerItemProxy */ = { + F610086B8A99E86BD49AC94781366EDE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A82D7F91B76D88E3B3001116B85C6F8F /* EXKeepAwake.xcodeproj */; + containerPortal = 5E612F91AF7A9DFF650E744D5DDDE6BB /* EXNetwork.xcodeproj */; proxyType = 1; - remoteGlobalIDString = E593B1631324E147D59AE9990EDA53A2; - remoteInfo = EXKeepAwake; + remoteGlobalIDString = 71F2A4AC24C8FBC0E24B6A613BB4F7BC; + remoteInfo = EXNetwork; }; - F7CA9DF8CB84759BCCD92D51371A60EE /* PBXContainerItemProxy */ = { + FCCD606F996CBBAAF838FA6301625D42 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = C3F1268A122894A50E585D0D43F60664 /* React-RCTNetwork.xcodeproj */; + containerPortal = 20EFB8787523F1F8E82C44E6D2318625 /* UMReactNativeAdapter.xcodeproj */; proxyType = 1; - remoteGlobalIDString = B42CC4F102742853C37E7C4841756DBE; - remoteInfo = "React-RCTNetwork"; + remoteGlobalIDString = E0F5743D6C158230DA447A63190DF2E9; + remoteInfo = UMReactNativeAdapter; }; - F891AEC19213E84B0E931017A9DD68A3 /* PBXContainerItemProxy */ = { + FF9E7C648C79FC370E36E22D87203385 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 00E9EF1B95C123998456AA100CE87025 /* React-RCTSettings.xcodeproj */; + containerPortal = 76D754AC0977B5323E742EEECB40AED4 /* EXStoreReview.xcodeproj */; proxyType = 1; - remoteGlobalIDString = 02DD1E05F06C403A8300ABEFC2C29A3D; - remoteInfo = "React-RCTSettings"; + remoteGlobalIDString = F2C74458D282DA74DB95F8A7FE6A5207; + remoteInfo = EXStoreReview; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00D632F97A746F8FBEE5FD654C95A5D4 /* EXBrightness */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBrightness; path = EXBrightness.xcodeproj; sourceTree = ""; }; - 00E9EF1B95C123998456AA100CE87025 /* React-RCTSettings */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTSettings"; path = "React-RCTSettings.xcodeproj"; sourceTree = ""; }; - 0143F693E54C76D9CEC9B89D39EA738C /* React-jsinspector */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsinspector"; path = "React-jsinspector.xcodeproj"; sourceTree = ""; }; - 01CFA74EFC65BCFDF41AE2DB0615EED8 /* React-jsi */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsi"; path = "React-jsi.xcodeproj"; sourceTree = ""; }; - 04AF6CFC908ABC897934A123721DCDC8 /* React-RCTImage */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTImage"; path = "React-RCTImage.xcodeproj"; sourceTree = ""; }; - 068283BA3523101E0BA7F90CEB90A6A1 /* Yoga */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Yoga; path = Yoga.xcodeproj; sourceTree = ""; }; - 06A760ACB1990444FA093A6D7A8AC2EB /* boost-for-react-native */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "boost-for-react-native"; path = "boost-for-react-native.xcodeproj"; sourceTree = ""; }; - 081775E5E1E22CD733CEC31DEC05391D /* EXImagePicker */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXImagePicker; path = EXImagePicker.xcodeproj; sourceTree = ""; }; - 093F33B91AB6CCF24EC5B44C2168D6B7 /* RNReanimated */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNReanimated; path = RNReanimated.xcodeproj; sourceTree = ""; }; 0B584D0632E15581F96D24B9C3B042D7 /* Pods-BareExpoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BareExpoTests.release.xcconfig"; sourceTree = ""; }; - 0CCA7AB54711A1C565D9146E86AF6FE5 /* EXSegment */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSegment; path = EXSegment.xcodeproj; sourceTree = ""; }; - 0F87C4C729C750646FF9170E107841D0 /* EXConstants */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXConstants; path = EXConstants.xcodeproj; sourceTree = ""; }; - 10773CD4E5B8A755D9E0D42FC649AEB4 /* UMFontInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMFontInterface; path = UMFontInterface.xcodeproj; sourceTree = ""; }; - 11A32ED6BFC7435B83A74B68227CF672 /* ReactCommon */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactCommon; path = ReactCommon.xcodeproj; sourceTree = ""; }; - 1CA025FC93211998774902CC4663DD61 /* EXSharing */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSharing; path = EXSharing.xcodeproj; sourceTree = ""; }; - 1EC4C5F6778FD0728D36B94A40185D7A /* EXFileSystem */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXFileSystem; path = EXFileSystem.xcodeproj; sourceTree = ""; }; - 1FBDB8F24C5539045D8AE87F927FB3EE /* EXWebBrowser */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXWebBrowser; path = EXWebBrowser.xcodeproj; sourceTree = ""; }; - 21907930CDED304581AE9F8EF737DFC3 /* glog */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = glog; path = glog.xcodeproj; sourceTree = ""; }; - 228AECF796357BD0C17A0250B493CF46 /* RNGestureHandler */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler; path = RNGestureHandler.xcodeproj; sourceTree = ""; }; - 24C2C1248498064540A1A0795384B075 /* UMConstantsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMConstantsInterface; path = UMConstantsInterface.xcodeproj; sourceTree = ""; }; - 2AFEBA4AE1BF044913C3A1F0ABCD7BEF /* React-RCTVibration */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTVibration"; path = "React-RCTVibration.xcodeproj"; sourceTree = ""; }; - 3561DE58B3DAAE4AA0D0BC1C630862FA /* Analytics */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Analytics; path = Analytics.xcodeproj; sourceTree = ""; }; - 384191FF16B8310DB2CA32CE12714F26 /* EXAppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAppAuth; path = EXAppAuth.xcodeproj; sourceTree = ""; }; - 3A6F2FEF94FB5051D0E15E0E75E061CE /* EXCellular */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCellular; path = EXCellular.xcodeproj; sourceTree = ""; }; - 3E8F53A4E4A9F6D8E7270A1D59C0414A /* EXCrypto */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCrypto; path = EXCrypto.xcodeproj; sourceTree = ""; }; - 469C509D4699E1DC0DF43F06F3A21FD4 /* EXMailComposer */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXMailComposer; path = EXMailComposer.xcodeproj; sourceTree = ""; }; - 4971CAC7D488A21F083090F5DF77441A /* EXPrint */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXPrint; path = EXPrint.xcodeproj; sourceTree = ""; }; - 4B81D9E849F7B0FF699CF47FC7F2EC7B /* React-Core */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-Core"; path = "React-Core.xcodeproj"; sourceTree = ""; }; - 4B8658D487323D6EEE125B5F57F06468 /* UMSensorsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMSensorsInterface; path = UMSensorsInterface.xcodeproj; sourceTree = ""; }; - 50C4358AD398837056C0C6E564E5FB45 /* RCTRequired */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTRequired; path = RCTRequired.xcodeproj; sourceTree = ""; }; - 53B70B73EBA72F4DB54EFB1201B958D9 /* React-RCTBlob */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTBlob"; path = "React-RCTBlob.xcodeproj"; sourceTree = ""; }; - 559D179071A592B620836CC4F14A9F63 /* EXBlur */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBlur; path = EXBlur.xcodeproj; sourceTree = ""; }; - 58F5BF4DBAF85B453DD79DA82B862E0A /* EXHaptics */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXHaptics; path = EXHaptics.xcodeproj; sourceTree = ""; }; - 59558382C9C14CEDEC8ECC99462044AC /* EXSMS */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSMS; path = EXSMS.xcodeproj; sourceTree = ""; }; - 5C0692C4DCE5A6E01C6809F60A6FBB6E /* React-cxxreact */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-cxxreact"; path = "React-cxxreact.xcodeproj"; sourceTree = ""; }; - 5C7101C48EADF48A3F01ADAD195A0608 /* EXStoreReview */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXStoreReview; path = EXStoreReview.xcodeproj; sourceTree = ""; }; - 5F89074EFF9BBFF30A654696E06822C7 /* EXImageManipulator */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXImageManipulator; path = EXImageManipulator.xcodeproj; sourceTree = ""; }; - 621E66BDF9658FBAEB7835F073CC1D58 /* EXAV */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAV; path = EXAV.xcodeproj; sourceTree = ""; }; - 63CC2109E824718DD6CF3ECF2951714F /* EXNetwork */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXNetwork; path = EXNetwork.xcodeproj; sourceTree = ""; }; - 66E0036061F06985A735F972DA873D82 /* EXCalendar */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCalendar; path = EXCalendar.xcodeproj; sourceTree = ""; }; - 6790273ACF64FACB6F6C790F7465109B /* Amplitude-iOS */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Amplitude-iOS"; path = "Amplitude-iOS.xcodeproj"; sourceTree = ""; }; + 0DCFBB69843FF7B3B3F4DBFA9395897F /* EXRandom */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXRandom; path = EXRandom.xcodeproj; sourceTree = ""; }; + 0E7C660C1D1A671A1C2C6E0A386E4F98 /* EXGoogleSignIn */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGoogleSignIn; path = EXGoogleSignIn.xcodeproj; sourceTree = ""; }; + 0F4A4147605A8FA472874292E84CA8AA /* EXSMS */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSMS; path = EXSMS.xcodeproj; sourceTree = ""; }; + 1291D1E0EF26BE30E64DFE7E772780FF /* EXSharing */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSharing; path = EXSharing.xcodeproj; sourceTree = ""; }; + 154D415A4BF5B57E8E22F022EE88A1A2 /* Yoga */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Yoga; path = Yoga.xcodeproj; sourceTree = ""; }; + 1682454010CE1DE95AE1F2B800003AE8 /* EXSpeech */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSpeech; path = EXSpeech.xcodeproj; sourceTree = ""; }; + 1874C56666647F9C71C26C490DCD0921 /* AppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppAuth; path = AppAuth.xcodeproj; sourceTree = ""; }; + 19518053F4B0ADB5DD067DBC654DCDC8 /* EXHaptics */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXHaptics; path = EXHaptics.xcodeproj; sourceTree = ""; }; + 1CEBDBC09F655F237DA82B43D4E56D1A /* EXConstants */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXConstants; path = EXConstants.xcodeproj; sourceTree = ""; }; + 20C29A1EAED431974F1F9ADE24297AD8 /* RNGestureHandler */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNGestureHandler; path = RNGestureHandler.xcodeproj; sourceTree = ""; }; + 20EFB8787523F1F8E82C44E6D2318625 /* UMReactNativeAdapter */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMReactNativeAdapter; path = UMReactNativeAdapter.xcodeproj; sourceTree = ""; }; + 211D8213F75598D838AA142334A75A03 /* RCTRequired */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTRequired; path = RCTRequired.xcodeproj; sourceTree = ""; }; + 22B7962C5AC6F553566BDB321CDCBED7 /* Analytics */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Analytics; path = Analytics.xcodeproj; sourceTree = ""; }; + 24D571065DC8E7D78DE3D281B7F9665E /* EXImagePicker */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXImagePicker; path = EXImagePicker.xcodeproj; sourceTree = ""; }; + 283EB81A8B2631DC912F91F2E743D805 /* UMCameraInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCameraInterface; path = UMCameraInterface.xcodeproj; sourceTree = ""; }; + 2B3EF7E45E25388E46088AEF724044E2 /* EXGL_CPP */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGL_CPP; path = EXGL_CPP.xcodeproj; sourceTree = ""; }; + 2D820764336141EB6A64FB5E39379B84 /* EXSQLite */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSQLite; path = EXSQLite.xcodeproj; sourceTree = ""; }; + 2DFD1D139E40516EB3C8592132C16563 /* React-RCTBlob */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTBlob"; path = "React-RCTBlob.xcodeproj"; sourceTree = ""; }; + 2FA4EA22672E5A6B552140467F83F0D5 /* UMImageLoaderInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMImageLoaderInterface; path = UMImageLoaderInterface.xcodeproj; sourceTree = ""; }; + 31ED0F047A312EAA2BE054E15BB3DA57 /* EXFont */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXFont; path = EXFont.xcodeproj; sourceTree = ""; }; + 37D51A279F61ACA707D2DDB2B4775260 /* react-native-safe-area-context */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "react-native-safe-area-context"; path = "react-native-safe-area-context.xcodeproj"; sourceTree = ""; }; + 38C1D46D658188871C901CE039368D2B /* GoogleSignIn */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GoogleSignIn; path = GoogleSignIn.xcodeproj; sourceTree = ""; }; + 39600D89716D9EF152089FCE92F9611F /* React-RCTText */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTText"; path = "React-RCTText.xcodeproj"; sourceTree = ""; }; + 3AC85EC6EA5A15DE1A14AC44693B3FAF /* EXLocalization */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLocalization; path = EXLocalization.xcodeproj; sourceTree = ""; }; + 3BA6FCAA80CA6709FC129B2F8F1455D9 /* Folly */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Folly; path = Folly.xcodeproj; sourceTree = ""; }; + 3F7A24830AA6A74FD093D740F10D7773 /* EXKeepAwake */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXKeepAwake; path = EXKeepAwake.xcodeproj; sourceTree = ""; }; + 42DD6321E59344D440B1F51FE3CF79E7 /* ReactCommon */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactCommon; path = ReactCommon.xcodeproj; sourceTree = ""; }; + 4830F218FE12E25D199C4BF46791F52C /* EXBrightness */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBrightness; path = EXBrightness.xcodeproj; sourceTree = ""; }; + 486D05376E4B939AAAA46292A4C1EDC5 /* React-RCTAnimation */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTAnimation"; path = "React-RCTAnimation.xcodeproj"; sourceTree = ""; }; + 4915DBB1FD2CAFEC6F31A56C0C6957F2 /* GTMSessionFetcher */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GTMSessionFetcher; path = GTMSessionFetcher.xcodeproj; sourceTree = ""; }; + 4A75B063423ACC708261B1E2E6A5AF72 /* EXBluetooth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBluetooth; path = EXBluetooth.xcodeproj; sourceTree = ""; }; + 4A8C2D314E95B84D433DB3EC5D0248A8 /* EXMailComposer */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXMailComposer; path = EXMailComposer.xcodeproj; sourceTree = ""; }; + 4F6D317BD66107DED81B141CC7C9862B /* EXCalendar */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCalendar; path = EXCalendar.xcodeproj; sourceTree = ""; }; + 5370504E9C2AB0A5A79DCDA80512DF63 /* EXNotifications */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXNotifications; path = EXNotifications.xcodeproj; sourceTree = ""; }; + 539904AF85D455EEA0BC80314430F767 /* React-RCTLinking */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTLinking"; path = "React-RCTLinking.xcodeproj"; sourceTree = ""; }; + 5C904EB0F8D09A9D6A2CA1D9E5FB1A5E /* FBReactNativeSpec */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FBReactNativeSpec; path = FBReactNativeSpec.xcodeproj; sourceTree = ""; }; + 5E612F91AF7A9DFF650E744D5DDDE6BB /* EXNetwork */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXNetwork; path = EXNetwork.xcodeproj; sourceTree = ""; }; + 5ED0F47567E19D563562378CB541F063 /* React-jsiexecutor */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsiexecutor"; path = "React-jsiexecutor.xcodeproj"; sourceTree = ""; }; + 602F1AC40936205BAA0B2DB343047BC2 /* FBLazyVector */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FBLazyVector; path = FBLazyVector.xcodeproj; sourceTree = ""; }; + 67E8A05962A87D9D3E97F466C0588F3E /* EXBattery */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBattery; path = EXBattery.xcodeproj; sourceTree = ""; }; + 69B62F0A6A5AE0185AB31AF2B50E6C73 /* EXContacts */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXContacts; path = EXContacts.xcodeproj; sourceTree = ""; }; 6D02C945BC67559AFEB7B446AD8A35E6 /* Pods-BareExpo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BareExpo.debug.xcconfig"; sourceTree = ""; }; - 6F0ED87952B752BF2F6950D2DAB51472 /* EXContacts */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXContacts; path = EXContacts.xcodeproj; sourceTree = ""; }; - 6F2506A46EAB2A974A4A198BF26B5D11 /* UMCore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCore; path = UMCore.xcodeproj; sourceTree = ""; }; - 6FA7CD78D631158BDBE6D2A9C4FC19FB /* AppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = AppAuth; path = AppAuth.xcodeproj; sourceTree = ""; }; - 6FF66503720CEADA5339CA295727D2E6 /* EXBattery */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBattery; path = EXBattery.xcodeproj; sourceTree = ""; }; - 73E1515109725296D25100C06DA91793 /* RCTTypeSafety */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTTypeSafety; path = RCTTypeSafety.xcodeproj; sourceTree = ""; }; - 7572990AACADFEEFE5EF8AF3A2415FD0 /* FBReactNativeSpec */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FBReactNativeSpec; path = FBReactNativeSpec.xcodeproj; sourceTree = ""; }; - 7673391655AE15ABB96812EE718E18B3 /* EXBluetooth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBluetooth; path = EXBluetooth.xcodeproj; sourceTree = ""; }; + 6E562C149ACFF3572AF76219136BAE6F /* EXCellular */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCellular; path = EXCellular.xcodeproj; sourceTree = ""; }; + 6FCCE9A29FCD2F955BD249B2E8FE64D6 /* React-RCTVibration */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTVibration"; path = "React-RCTVibration.xcodeproj"; sourceTree = ""; }; + 6FE9E6378CCA409045A0D6F7725BD635 /* React-RCTImage */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTImage"; path = "React-RCTImage.xcodeproj"; sourceTree = ""; }; + 72E97573157DD427D06035896E61A932 /* GTMAppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GTMAppAuth; path = GTMAppAuth.xcodeproj; sourceTree = ""; }; + 74FEDEFE688494CAE07748B5D758B147 /* EXBlur */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBlur; path = EXBlur.xcodeproj; sourceTree = ""; }; + 766836226A2B4B63203538724CCB4F1C /* EXAmplitude */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAmplitude; path = EXAmplitude.xcodeproj; sourceTree = ""; }; + 76D754AC0977B5323E742EEECB40AED4 /* EXStoreReview */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXStoreReview; path = EXStoreReview.xcodeproj; sourceTree = ""; }; + 790A2E685AC19C611733CE7F67102977 /* UMPermissionsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMPermissionsInterface; path = UMPermissionsInterface.xcodeproj; sourceTree = ""; }; 7BA510FA2B18C840471D62EB836D6A34 /* Pods-BareExpoTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BareExpoTests-acknowledgements.markdown"; sourceTree = ""; }; - 7C6CEDFBCA521989947F5B019C76054A /* React-RCTActionSheet */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTActionSheet"; path = "React-RCTActionSheet.xcodeproj"; sourceTree = ""; }; + 7C365CF21BA55DFDF477C4C9CE32DCA1 /* EXPrint */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXPrint; path = EXPrint.xcodeproj; sourceTree = ""; }; + 81D1A93D40939D17C69ACA87E0F091B9 /* Amplitude-iOS */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Amplitude-iOS"; path = "Amplitude-iOS.xcodeproj"; sourceTree = ""; }; + 83741058F1FBE8278A49685754C1020B /* React-RCTSettings */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTSettings"; path = "React-RCTSettings.xcodeproj"; sourceTree = ""; }; + 837FB515358617F85BDF99978EE71115 /* glog */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = glog; path = glog.xcodeproj; sourceTree = ""; }; 8465E2FC705BE47B5397BF4A39C8AC18 /* Pods-BareExpoTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BareExpoTests-dummy.m"; sourceTree = ""; }; - 86F0EA4A0FCDB3FC734AE64574A90EBC /* react-native-safe-area-context */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "react-native-safe-area-context"; path = "react-native-safe-area-context.xcodeproj"; sourceTree = ""; }; + 847FD5ED7B8C4325822B875EFAC72828 /* RCTTypeSafety */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTTypeSafety; path = RCTTypeSafety.xcodeproj; sourceTree = ""; }; + 84BC96E6F93CA7ACABFB696BC390AAE4 /* DoubleConversion */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DoubleConversion; path = DoubleConversion.xcodeproj; sourceTree = ""; }; + 85183E225D7A7272819751A43B77122A /* ZXingObjC */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ZXingObjC; path = ZXingObjC.xcodeproj; sourceTree = ""; }; 878E77864652C9881F9C85C3BC4CA6E7 /* libPods-BareExpoTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-BareExpoTests.a"; path = "libPods-BareExpoTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B3742C40E8B4801826442347325BBF /* EXLocalization */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLocalization; path = EXLocalization.xcodeproj; sourceTree = ""; }; - 8C472FA03A74CA155968F8B7216E490A /* EXSpeech */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSpeech; path = EXSpeech.xcodeproj; sourceTree = ""; }; - 8DD091FE677FB13DC171D90C021CA7DE /* GTMAppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GTMAppAuth; path = GTMAppAuth.xcodeproj; sourceTree = ""; }; - 93A314050AEE5C54490FF76731532B5D /* React-RCTAnimation */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTAnimation"; path = "React-RCTAnimation.xcodeproj"; sourceTree = ""; }; - 9530BB032E863145DD427DBC06A82F68 /* EXGoogleSignIn */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGoogleSignIn; path = EXGoogleSignIn.xcodeproj; sourceTree = ""; }; - 966D82943A84614F0D90E09EED82FC4A /* EXAmplitude */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAmplitude; path = EXAmplitude.xcodeproj; sourceTree = ""; }; - 9946A17BD11A68F7A944498FD73C8413 /* ZXingObjC */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ZXingObjC; path = ZXingObjC.xcodeproj; sourceTree = ""; }; - 9B3C09E1B51BE5C72B1178721DFB4736 /* EXSQLite */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSQLite; path = EXSQLite.xcodeproj; sourceTree = ""; }; + 8BB89C73D41B6306783F6127102D17EE /* UMConstantsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMConstantsInterface; path = UMConstantsInterface.xcodeproj; sourceTree = ""; }; + 951A59FA6D6F13FE2BC2DC148092885D /* EXLinearGradient */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLinearGradient; path = EXLinearGradient.xcodeproj; sourceTree = ""; }; + 99EC51DA27D3AF613938A01C65921965 /* UMCore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCore; path = UMCore.xcodeproj; sourceTree = ""; }; + 9CEAF6033593566F9D90D312481E1561 /* EXSegment */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSegment; path = EXSegment.xcodeproj; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9F278CA3578A1C7C742F5C39E58E8626 /* EXRandom */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXRandom; path = EXRandom.xcodeproj; sourceTree = ""; }; - 9F3B324040A71A156CE8681CBF0610AA /* EXUpdates */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXUpdates; path = EXUpdates.xcodeproj; sourceTree = ""; }; 9F3EED7C7CC54C74129840B0C037651C /* Pods-BareExpo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BareExpo-acknowledgements.markdown"; sourceTree = ""; }; - A14282E7B246C428EDC564624DBDD9BF /* UMBarCodeScannerInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMBarCodeScannerInterface; path = UMBarCodeScannerInterface.xcodeproj; sourceTree = ""; }; - A1A9EF9126D232C7848495ED0D34FC82 /* UMFileSystemInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMFileSystemInterface; path = UMFileSystemInterface.xcodeproj; sourceTree = ""; }; - A3F4A301606C753818F89B954CBABFFA /* React-CoreModules */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-CoreModules"; path = "React-CoreModules.xcodeproj"; sourceTree = ""; }; - A528590EDEA69FCB74BFA09B141B4DBF /* EXGL */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGL; path = EXGL.xcodeproj; sourceTree = ""; }; - A82D7F91B76D88E3B3001116B85C6F8F /* EXKeepAwake */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXKeepAwake; path = EXKeepAwake.xcodeproj; sourceTree = ""; }; - A90F97E439A7BC54338B0DC132FB389F /* EXLocalAuthentication */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLocalAuthentication; path = EXLocalAuthentication.xcodeproj; sourceTree = ""; }; - A9333E5CD08216B9D4D56A43F8AFFB5B /* EXDevice */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXDevice; path = EXDevice.xcodeproj; sourceTree = ""; }; - AF0568DC623CE5D3D2E159457E57B21F /* EXMediaLibrary */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXMediaLibrary; path = EXMediaLibrary.xcodeproj; sourceTree = ""; }; - AFBF976B0EF04C9912E08179B68D2308 /* EXBarCodeScanner */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBarCodeScanner; path = EXBarCodeScanner.xcodeproj; sourceTree = ""; }; - B16FF31EB7B2D5E60E6685477B72EBC5 /* EXFont */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXFont; path = EXFont.xcodeproj; sourceTree = ""; }; - B1BC6698202B367C7B3129780457D544 /* EXGL_CPP */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGL_CPP; path = EXGL_CPP.xcodeproj; sourceTree = ""; }; - B2F742EBD46D881CC735F4D4A4260119 /* Folly */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Folly; path = Folly.xcodeproj; sourceTree = ""; }; + 9FBF69DFB7386F17655AA92E47A91B88 /* EXLocalAuthentication */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLocalAuthentication; path = EXLocalAuthentication.xcodeproj; sourceTree = ""; }; + A0472A19A0663233A80B3D04DF83139C /* EXAppLoaderProvider */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAppLoaderProvider; path = EXAppLoaderProvider.xcodeproj; sourceTree = ""; }; + A0F40A7EF94F9CDB1C9EC3706EF31977 /* EXFileSystem */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXFileSystem; path = EXFileSystem.xcodeproj; sourceTree = ""; }; + A31EA7E16D8F9F37E83632B7A9BD49BD /* UMFontInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMFontInterface; path = UMFontInterface.xcodeproj; sourceTree = ""; }; + A32518B2BC57B6ACB06728AD31C6FED7 /* React-jsinspector */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsinspector"; path = "React-jsinspector.xcodeproj"; sourceTree = ""; }; + A5F35E9471A25BAFEB3AB53EDB2E48BD /* UMBarCodeScannerInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMBarCodeScannerInterface; path = UMBarCodeScannerInterface.xcodeproj; sourceTree = ""; }; + AC64B72943BF5A964B4BEA5D03352E8A /* React-Core */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-Core"; path = "React-Core.xcodeproj"; sourceTree = ""; }; + ACDF0A1622DDFFECE9C4DD356D1BA970 /* EXDevice */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXDevice; path = EXDevice.xcodeproj; sourceTree = ""; }; + AF9B03AFD3122203FA523C331045B557 /* EXErrorRecovery */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXErrorRecovery; path = EXErrorRecovery.xcodeproj; sourceTree = ""; }; + B399F6209661F0C9597B9B02C293119F /* EXPermissions */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXPermissions; path = EXPermissions.xcodeproj; sourceTree = ""; }; B54740B002D716FDD124C76801E0EAB3 /* Pods-BareExpoTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BareExpoTests-acknowledgements.plist"; sourceTree = ""; }; + B79AA8F0753060DE025621A58BF10081 /* EXSecureStore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSecureStore; path = EXSecureStore.xcodeproj; sourceTree = ""; }; + B79E739FDB18023D4C8E4264D5CE84D3 /* EXGL */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXGL; path = EXGL.xcodeproj; sourceTree = ""; }; B9129F18779266F08BA65232D729B5FC /* Pods-BareExpo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BareExpo-resources.sh"; sourceTree = ""; }; - B95E106A906DA6BC3B1AE32B1476EC96 /* React-RCTText */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTText"; path = "React-RCTText.xcodeproj"; sourceTree = ""; }; - BAD136761E20C0CF271C8994F81BE4E8 /* UMCameraInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMCameraInterface; path = UMCameraInterface.xcodeproj; sourceTree = ""; }; - BB09D5AC4BEBC2617D9D95C54475FA09 /* React */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React; path = React.xcodeproj; sourceTree = ""; }; - C099422E2DC2875E807A665C97BCC571 /* FBLazyVector */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = FBLazyVector; path = FBLazyVector.xcodeproj; sourceTree = ""; }; - C2EA603A6A2597676F274428E05872B9 /* React-jsiexecutor */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsiexecutor"; path = "React-jsiexecutor.xcodeproj"; sourceTree = ""; }; - C3F1268A122894A50E585D0D43F60664 /* React-RCTNetwork */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTNetwork"; path = "React-RCTNetwork.xcodeproj"; sourceTree = ""; }; + BFC20E8D25AC617CEF09AEE4F3B6447C /* EXUpdates */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXUpdates; path = EXUpdates.xcodeproj; sourceTree = ""; }; + C307D52AB4940565B4FE24E5B2BA7277 /* EXMediaLibrary */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXMediaLibrary; path = EXMediaLibrary.xcodeproj; sourceTree = ""; }; C42944AE78D3C85AE9277FE320D54C35 /* Pods-BareExpo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BareExpo.release.xcconfig"; sourceTree = ""; }; - C4691EC6027337FE88F7B6C142C79DA9 /* EXLinearGradient */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXLinearGradient; path = EXLinearGradient.xcodeproj; sourceTree = ""; }; + C48CFC9D9BAC60B4713D773CBCC18138 /* React-RCTActionSheet */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTActionSheet"; path = "React-RCTActionSheet.xcodeproj"; sourceTree = ""; }; C4A8AD09B0987CCC643BCC6FFC68B2AE /* Pods-BareExpoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BareExpoTests.debug.xcconfig"; sourceTree = ""; }; - D06CF6E8B5CE7D5A760E443475289B14 /* UMImageLoaderInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMImageLoaderInterface; path = UMImageLoaderInterface.xcodeproj; sourceTree = ""; }; + C82A773803E9590719BF9B2ADBDC8853 /* RNReanimated */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNReanimated; path = RNReanimated.xcodeproj; sourceTree = ""; }; + CF1C7256B0751DFBBBC3C32DA058F9B2 /* EXAV */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAV; path = EXAV.xcodeproj; sourceTree = ""; }; D090CDB16B158897ECDA29AE3E2FDBF6 /* Pods-BareExpo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BareExpo-dummy.m"; sourceTree = ""; }; + D0A15388E6A79D84E72CB78529279E0C /* React-CoreModules */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-CoreModules"; path = "React-CoreModules.xcodeproj"; sourceTree = ""; }; D1014EA3C6789E7FAA1DC562E34C204D /* libPods-BareExpo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-BareExpo.a"; path = "libPods-BareExpo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - D1D370A1C813FC6C49069D6F265F56E3 /* EXErrorRecovery */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXErrorRecovery; path = EXErrorRecovery.xcodeproj; sourceTree = ""; }; + D1A3C1892F717A0516FC6E06862425AD /* React-cxxreact */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-cxxreact"; path = "React-cxxreact.xcodeproj"; sourceTree = ""; }; + D295C7698687650B201A4E18B1A6CE87 /* React */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React; path = React.xcodeproj; sourceTree = ""; }; D48CF9AF6779F366D43DAFA00F78BE5E /* Pods-BareExpo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BareExpo-acknowledgements.plist"; sourceTree = ""; }; - D58517F1F49DD7F710C941D73B419B5C /* EXAppLoaderProvider */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAppLoaderProvider; path = EXAppLoaderProvider.xcodeproj; sourceTree = ""; }; - D5E45FC61A6D2D7E3F46F8A281EA7F64 /* UMReactNativeAdapter */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMReactNativeAdapter; path = UMReactNativeAdapter.xcodeproj; sourceTree = ""; }; - D7D345E8C3BC6E50CBED042829BBF090 /* EXSensors */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSensors; path = EXSensors.xcodeproj; sourceTree = ""; }; - E17942621B3C5C442DAEF9E85EE80964 /* GoogleSignIn */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GoogleSignIn; path = GoogleSignIn.xcodeproj; sourceTree = ""; }; - E3C83D9BB0BF020DE9E3EA402FF40418 /* EXDocumentPicker */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXDocumentPicker; path = EXDocumentPicker.xcodeproj; sourceTree = ""; }; - EC64490903CB102FA5D88F9FD8D4873B /* DoubleConversion */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DoubleConversion; path = DoubleConversion.xcodeproj; sourceTree = ""; }; - EC8B540ED755EDCB2AE686784D3AF479 /* EXApplication */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXApplication; path = EXApplication.xcodeproj; sourceTree = ""; }; - ED50116F92CAB9F1E06FE905363CE060 /* EXPermissions */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXPermissions; path = EXPermissions.xcodeproj; sourceTree = ""; }; - EF2B74AE23B4D085A4D41634852D9E79 /* EXSecureStore */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSecureStore; path = EXSecureStore.xcodeproj; sourceTree = ""; }; - F6C89811BEB495795C6F1B805FCF9133 /* GTMSessionFetcher */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GTMSessionFetcher; path = GTMSessionFetcher.xcodeproj; sourceTree = ""; }; - F93842B2AFB5431663D17D6C8B0DAD27 /* UMPermissionsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMPermissionsInterface; path = UMPermissionsInterface.xcodeproj; sourceTree = ""; }; - FC694360F93EB50AF01BD9AD3DDF6F63 /* React-RCTLinking */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTLinking"; path = "React-RCTLinking.xcodeproj"; sourceTree = ""; }; + D78B6B55B6F370CFD13934B2CC9B6119 /* EXDocumentPicker */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXDocumentPicker; path = EXDocumentPicker.xcodeproj; sourceTree = ""; }; + D88FC63D8F76640F60314E4A5077FD31 /* EXAppAuth */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXAppAuth; path = EXAppAuth.xcodeproj; sourceTree = ""; }; + D9159EDE5B081372F59C922A6F771D88 /* EXWebBrowser */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXWebBrowser; path = EXWebBrowser.xcodeproj; sourceTree = ""; }; + D918720DA8177424E16B7D398B1E42BA /* React-RCTNetwork */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-RCTNetwork"; path = "React-RCTNetwork.xcodeproj"; sourceTree = ""; }; + DD26F4B8BC160D314045C1E9FF99E1C0 /* UMFileSystemInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMFileSystemInterface; path = UMFileSystemInterface.xcodeproj; sourceTree = ""; }; + E35074979A21EA433E91AFF284E3AC50 /* EXSensors */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXSensors; path = EXSensors.xcodeproj; sourceTree = ""; }; + E3D4951BFB897802566871A47737F1EE /* EXCrypto */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXCrypto; path = EXCrypto.xcodeproj; sourceTree = ""; }; + E6C81641E33F90B0058BD7F47E6F95F4 /* boost-for-react-native */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "boost-for-react-native"; path = "boost-for-react-native.xcodeproj"; sourceTree = ""; }; + EBA46FF6FE79918F2108E6350176703C /* EXApplication */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXApplication; path = EXApplication.xcodeproj; sourceTree = ""; }; + F1BA3A37FBB21699CAA6831FD7EA7A4B /* EXBarCodeScanner */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXBarCodeScanner; path = EXBarCodeScanner.xcodeproj; sourceTree = ""; }; + F5378BC6DC876907C7D4762A994635E1 /* UMSensorsInterface */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UMSensorsInterface; path = UMSensorsInterface.xcodeproj; sourceTree = ""; }; + FA3F1AFA57847B7DE0AAEDF4186FC4BF /* React-jsi */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "React-jsi"; path = "React-jsi.xcodeproj"; sourceTree = ""; }; + FBDB34F0ECB442D367E68748ADA3820F /* EXImageManipulator */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = EXImageManipulator; path = EXImageManipulator.xcodeproj; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -782,7 +790,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DB7DC0C1E6C2D56F295B8748F348E613 /* Frameworks */ = { + EA79F5789FD7E159BC6D17FAB7102A55 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -792,27 +800,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3F99B2263C0408AD869FFB149189BBD1 /* Pods */ = { - isa = PBXGroup; - children = ( - 6790273ACF64FACB6F6C790F7465109B /* Amplitude-iOS */, - 3561DE58B3DAAE4AA0D0BC1C630862FA /* Analytics */, - 6FA7CD78D631158BDBE6D2A9C4FC19FB /* AppAuth */, - 06A760ACB1990444FA093A6D7A8AC2EB /* boost-for-react-native */, - EC64490903CB102FA5D88F9FD8D4873B /* DoubleConversion */, - B2F742EBD46D881CC735F4D4A4260119 /* Folly */, - 21907930CDED304581AE9F8EF737DFC3 /* glog */, - E17942621B3C5C442DAEF9E85EE80964 /* GoogleSignIn */, - 8DD091FE677FB13DC171D90C021CA7DE /* GTMAppAuth */, - F6C89811BEB495795C6F1B805FCF9133 /* GTMSessionFetcher */, - 86F0EA4A0FCDB3FC734AE64574A90EBC /* react-native-safe-area-context */, - 228AECF796357BD0C17A0250B493CF46 /* RNGestureHandler */, - 093F33B91AB6CCF24EC5B44C2168D6B7 /* RNReanimated */, - 9946A17BD11A68F7A944498FD73C8413 /* ZXingObjC */, - ); - name = Pods; - sourceTree = ""; - }; 47A0FFA7A01C9BA895E5664886E9B952 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -836,18 +823,125 @@ path = "Target Support Files/Pods-BareExpo"; sourceTree = ""; }; + 765BFFF755F3BFE5DF6F3E415809E0E2 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 766836226A2B4B63203538724CCB4F1C /* EXAmplitude */, + D88FC63D8F76640F60314E4A5077FD31 /* EXAppAuth */, + EBA46FF6FE79918F2108E6350176703C /* EXApplication */, + A0472A19A0663233A80B3D04DF83139C /* EXAppLoaderProvider */, + CF1C7256B0751DFBBBC3C32DA058F9B2 /* EXAV */, + F1BA3A37FBB21699CAA6831FD7EA7A4B /* EXBarCodeScanner */, + 67E8A05962A87D9D3E97F466C0588F3E /* EXBattery */, + 4A75B063423ACC708261B1E2E6A5AF72 /* EXBluetooth */, + 74FEDEFE688494CAE07748B5D758B147 /* EXBlur */, + 4830F218FE12E25D199C4BF46791F52C /* EXBrightness */, + 4F6D317BD66107DED81B141CC7C9862B /* EXCalendar */, + 6E562C149ACFF3572AF76219136BAE6F /* EXCellular */, + 1CEBDBC09F655F237DA82B43D4E56D1A /* EXConstants */, + 69B62F0A6A5AE0185AB31AF2B50E6C73 /* EXContacts */, + E3D4951BFB897802566871A47737F1EE /* EXCrypto */, + ACDF0A1622DDFFECE9C4DD356D1BA970 /* EXDevice */, + D78B6B55B6F370CFD13934B2CC9B6119 /* EXDocumentPicker */, + AF9B03AFD3122203FA523C331045B557 /* EXErrorRecovery */, + A0F40A7EF94F9CDB1C9EC3706EF31977 /* EXFileSystem */, + 31ED0F047A312EAA2BE054E15BB3DA57 /* EXFont */, + B79E739FDB18023D4C8E4264D5CE84D3 /* EXGL */, + 2B3EF7E45E25388E46088AEF724044E2 /* EXGL_CPP */, + 0E7C660C1D1A671A1C2C6E0A386E4F98 /* EXGoogleSignIn */, + 19518053F4B0ADB5DD067DBC654DCDC8 /* EXHaptics */, + FBDB34F0ECB442D367E68748ADA3820F /* EXImageManipulator */, + 24D571065DC8E7D78DE3D281B7F9665E /* EXImagePicker */, + 3F7A24830AA6A74FD093D740F10D7773 /* EXKeepAwake */, + 951A59FA6D6F13FE2BC2DC148092885D /* EXLinearGradient */, + 9FBF69DFB7386F17655AA92E47A91B88 /* EXLocalAuthentication */, + 3AC85EC6EA5A15DE1A14AC44693B3FAF /* EXLocalization */, + 4A8C2D314E95B84D433DB3EC5D0248A8 /* EXMailComposer */, + C307D52AB4940565B4FE24E5B2BA7277 /* EXMediaLibrary */, + 5E612F91AF7A9DFF650E744D5DDDE6BB /* EXNetwork */, + 5370504E9C2AB0A5A79DCDA80512DF63 /* EXNotifications */, + B399F6209661F0C9597B9B02C293119F /* EXPermissions */, + 7C365CF21BA55DFDF477C4C9CE32DCA1 /* EXPrint */, + 0DCFBB69843FF7B3B3F4DBFA9395897F /* EXRandom */, + B79AA8F0753060DE025621A58BF10081 /* EXSecureStore */, + 9CEAF6033593566F9D90D312481E1561 /* EXSegment */, + E35074979A21EA433E91AFF284E3AC50 /* EXSensors */, + 1291D1E0EF26BE30E64DFE7E772780FF /* EXSharing */, + 0F4A4147605A8FA472874292E84CA8AA /* EXSMS */, + 1682454010CE1DE95AE1F2B800003AE8 /* EXSpeech */, + 2D820764336141EB6A64FB5E39379B84 /* EXSQLite */, + 76D754AC0977B5323E742EEECB40AED4 /* EXStoreReview */, + BFC20E8D25AC617CEF09AEE4F3B6447C /* EXUpdates */, + D9159EDE5B081372F59C922A6F771D88 /* EXWebBrowser */, + 602F1AC40936205BAA0B2DB343047BC2 /* FBLazyVector */, + 5C904EB0F8D09A9D6A2CA1D9E5FB1A5E /* FBReactNativeSpec */, + 211D8213F75598D838AA142334A75A03 /* RCTRequired */, + 847FD5ED7B8C4325822B875EFAC72828 /* RCTTypeSafety */, + D295C7698687650B201A4E18B1A6CE87 /* React */, + AC64B72943BF5A964B4BEA5D03352E8A /* React-Core */, + D0A15388E6A79D84E72CB78529279E0C /* React-CoreModules */, + D1A3C1892F717A0516FC6E06862425AD /* React-cxxreact */, + FA3F1AFA57847B7DE0AAEDF4186FC4BF /* React-jsi */, + 5ED0F47567E19D563562378CB541F063 /* React-jsiexecutor */, + A32518B2BC57B6ACB06728AD31C6FED7 /* React-jsinspector */, + C48CFC9D9BAC60B4713D773CBCC18138 /* React-RCTActionSheet */, + 486D05376E4B939AAAA46292A4C1EDC5 /* React-RCTAnimation */, + 2DFD1D139E40516EB3C8592132C16563 /* React-RCTBlob */, + 6FE9E6378CCA409045A0D6F7725BD635 /* React-RCTImage */, + 539904AF85D455EEA0BC80314430F767 /* React-RCTLinking */, + D918720DA8177424E16B7D398B1E42BA /* React-RCTNetwork */, + 83741058F1FBE8278A49685754C1020B /* React-RCTSettings */, + 39600D89716D9EF152089FCE92F9611F /* React-RCTText */, + 6FCCE9A29FCD2F955BD249B2E8FE64D6 /* React-RCTVibration */, + 42DD6321E59344D440B1F51FE3CF79E7 /* ReactCommon */, + A5F35E9471A25BAFEB3AB53EDB2E48BD /* UMBarCodeScannerInterface */, + 283EB81A8B2631DC912F91F2E743D805 /* UMCameraInterface */, + 8BB89C73D41B6306783F6127102D17EE /* UMConstantsInterface */, + 99EC51DA27D3AF613938A01C65921965 /* UMCore */, + DD26F4B8BC160D314045C1E9FF99E1C0 /* UMFileSystemInterface */, + A31EA7E16D8F9F37E83632B7A9BD49BD /* UMFontInterface */, + 2FA4EA22672E5A6B552140467F83F0D5 /* UMImageLoaderInterface */, + 790A2E685AC19C611733CE7F67102977 /* UMPermissionsInterface */, + 20EFB8787523F1F8E82C44E6D2318625 /* UMReactNativeAdapter */, + F5378BC6DC876907C7D4762A994635E1 /* UMSensorsInterface */, + 154D415A4BF5B57E8E22F022EE88A1A2 /* Yoga */, + ); + name = "Development Pods"; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - F390F7E91E479D81DED26468230696EB /* Development Pods */, + 765BFFF755F3BFE5DF6F3E415809E0E2 /* Development Pods */, D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, - 3F99B2263C0408AD869FFB149189BBD1 /* Pods */, + CF4891EF1B4F2322C4C03D1D33013C8F /* Pods */, E71A1A9A54AF9481ED09CD84DBFA729C /* Products */, 47A0FFA7A01C9BA895E5664886E9B952 /* Targets Support Files */, ); sourceTree = ""; }; + CF4891EF1B4F2322C4C03D1D33013C8F /* Pods */ = { + isa = PBXGroup; + children = ( + 81D1A93D40939D17C69ACA87E0F091B9 /* Amplitude-iOS */, + 22B7962C5AC6F553566BDB321CDCBED7 /* Analytics */, + 1874C56666647F9C71C26C490DCD0921 /* AppAuth */, + E6C81641E33F90B0058BD7F47E6F95F4 /* boost-for-react-native */, + 84BC96E6F93CA7ACABFB696BC390AAE4 /* DoubleConversion */, + 3BA6FCAA80CA6709FC129B2F8F1455D9 /* Folly */, + 837FB515358617F85BDF99978EE71115 /* glog */, + 38C1D46D658188871C901CE039368D2B /* GoogleSignIn */, + 72E97573157DD427D06035896E61A932 /* GTMAppAuth */, + 4915DBB1FD2CAFEC6F31A56C0C6957F2 /* GTMSessionFetcher */, + 37D51A279F61ACA707D2DDB2B4775260 /* react-native-safe-area-context */, + 20C29A1EAED431974F1F9ADE24297AD8 /* RNGestureHandler */, + C82A773803E9590719BF9B2ADBDC8853 /* RNReanimated */, + 85183E225D7A7272819751A43B77122A /* ZXingObjC */, + ); + name = Pods; + sourceTree = ""; + }; D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -877,102 +971,17 @@ path = "Target Support Files/Pods-BareExpoTests"; sourceTree = ""; }; - F390F7E91E479D81DED26468230696EB /* Development Pods */ = { - isa = PBXGroup; - children = ( - 966D82943A84614F0D90E09EED82FC4A /* EXAmplitude */, - 384191FF16B8310DB2CA32CE12714F26 /* EXAppAuth */, - EC8B540ED755EDCB2AE686784D3AF479 /* EXApplication */, - D58517F1F49DD7F710C941D73B419B5C /* EXAppLoaderProvider */, - 621E66BDF9658FBAEB7835F073CC1D58 /* EXAV */, - AFBF976B0EF04C9912E08179B68D2308 /* EXBarCodeScanner */, - 6FF66503720CEADA5339CA295727D2E6 /* EXBattery */, - 7673391655AE15ABB96812EE718E18B3 /* EXBluetooth */, - 559D179071A592B620836CC4F14A9F63 /* EXBlur */, - 00D632F97A746F8FBEE5FD654C95A5D4 /* EXBrightness */, - 66E0036061F06985A735F972DA873D82 /* EXCalendar */, - 3A6F2FEF94FB5051D0E15E0E75E061CE /* EXCellular */, - 0F87C4C729C750646FF9170E107841D0 /* EXConstants */, - 6F0ED87952B752BF2F6950D2DAB51472 /* EXContacts */, - 3E8F53A4E4A9F6D8E7270A1D59C0414A /* EXCrypto */, - A9333E5CD08216B9D4D56A43F8AFFB5B /* EXDevice */, - E3C83D9BB0BF020DE9E3EA402FF40418 /* EXDocumentPicker */, - D1D370A1C813FC6C49069D6F265F56E3 /* EXErrorRecovery */, - 1EC4C5F6778FD0728D36B94A40185D7A /* EXFileSystem */, - B16FF31EB7B2D5E60E6685477B72EBC5 /* EXFont */, - A528590EDEA69FCB74BFA09B141B4DBF /* EXGL */, - B1BC6698202B367C7B3129780457D544 /* EXGL_CPP */, - 9530BB032E863145DD427DBC06A82F68 /* EXGoogleSignIn */, - 58F5BF4DBAF85B453DD79DA82B862E0A /* EXHaptics */, - 5F89074EFF9BBFF30A654696E06822C7 /* EXImageManipulator */, - 081775E5E1E22CD733CEC31DEC05391D /* EXImagePicker */, - A82D7F91B76D88E3B3001116B85C6F8F /* EXKeepAwake */, - C4691EC6027337FE88F7B6C142C79DA9 /* EXLinearGradient */, - A90F97E439A7BC54338B0DC132FB389F /* EXLocalAuthentication */, - 89B3742C40E8B4801826442347325BBF /* EXLocalization */, - 469C509D4699E1DC0DF43F06F3A21FD4 /* EXMailComposer */, - AF0568DC623CE5D3D2E159457E57B21F /* EXMediaLibrary */, - 63CC2109E824718DD6CF3ECF2951714F /* EXNetwork */, - ED50116F92CAB9F1E06FE905363CE060 /* EXPermissions */, - 4971CAC7D488A21F083090F5DF77441A /* EXPrint */, - 9F278CA3578A1C7C742F5C39E58E8626 /* EXRandom */, - EF2B74AE23B4D085A4D41634852D9E79 /* EXSecureStore */, - 0CCA7AB54711A1C565D9146E86AF6FE5 /* EXSegment */, - D7D345E8C3BC6E50CBED042829BBF090 /* EXSensors */, - 1CA025FC93211998774902CC4663DD61 /* EXSharing */, - 59558382C9C14CEDEC8ECC99462044AC /* EXSMS */, - 8C472FA03A74CA155968F8B7216E490A /* EXSpeech */, - 9B3C09E1B51BE5C72B1178721DFB4736 /* EXSQLite */, - 5C7101C48EADF48A3F01ADAD195A0608 /* EXStoreReview */, - 9F3B324040A71A156CE8681CBF0610AA /* EXUpdates */, - 1FBDB8F24C5539045D8AE87F927FB3EE /* EXWebBrowser */, - C099422E2DC2875E807A665C97BCC571 /* FBLazyVector */, - 7572990AACADFEEFE5EF8AF3A2415FD0 /* FBReactNativeSpec */, - 50C4358AD398837056C0C6E564E5FB45 /* RCTRequired */, - 73E1515109725296D25100C06DA91793 /* RCTTypeSafety */, - BB09D5AC4BEBC2617D9D95C54475FA09 /* React */, - 4B81D9E849F7B0FF699CF47FC7F2EC7B /* React-Core */, - A3F4A301606C753818F89B954CBABFFA /* React-CoreModules */, - 5C0692C4DCE5A6E01C6809F60A6FBB6E /* React-cxxreact */, - 01CFA74EFC65BCFDF41AE2DB0615EED8 /* React-jsi */, - C2EA603A6A2597676F274428E05872B9 /* React-jsiexecutor */, - 0143F693E54C76D9CEC9B89D39EA738C /* React-jsinspector */, - 7C6CEDFBCA521989947F5B019C76054A /* React-RCTActionSheet */, - 93A314050AEE5C54490FF76731532B5D /* React-RCTAnimation */, - 53B70B73EBA72F4DB54EFB1201B958D9 /* React-RCTBlob */, - 04AF6CFC908ABC897934A123721DCDC8 /* React-RCTImage */, - FC694360F93EB50AF01BD9AD3DDF6F63 /* React-RCTLinking */, - C3F1268A122894A50E585D0D43F60664 /* React-RCTNetwork */, - 00E9EF1B95C123998456AA100CE87025 /* React-RCTSettings */, - B95E106A906DA6BC3B1AE32B1476EC96 /* React-RCTText */, - 2AFEBA4AE1BF044913C3A1F0ABCD7BEF /* React-RCTVibration */, - 11A32ED6BFC7435B83A74B68227CF672 /* ReactCommon */, - A14282E7B246C428EDC564624DBDD9BF /* UMBarCodeScannerInterface */, - BAD136761E20C0CF271C8994F81BE4E8 /* UMCameraInterface */, - 24C2C1248498064540A1A0795384B075 /* UMConstantsInterface */, - 6F2506A46EAB2A974A4A198BF26B5D11 /* UMCore */, - A1A9EF9126D232C7848495ED0D34FC82 /* UMFileSystemInterface */, - 10773CD4E5B8A755D9E0D42FC649AEB4 /* UMFontInterface */, - D06CF6E8B5CE7D5A760E443475289B14 /* UMImageLoaderInterface */, - F93842B2AFB5431663D17D6C8B0DAD27 /* UMPermissionsInterface */, - D5E45FC61A6D2D7E3F46F8A281EA7F64 /* UMReactNativeAdapter */, - 4B8658D487323D6EEE125B5F57F06468 /* UMSensorsInterface */, - 068283BA3523101E0BA7F90CEB90A6A1 /* Yoga */, - ); - name = "Development Pods"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 8ED90DC5716F75FECF5D5B4BD8C3C21E /* Headers */ = { + 1CBFA6108973A78F755F58805BCCC094 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - FA3600A7F5008DE2BE1E3B6AA43CAA1C /* Headers */ = { + 8ED90DC5716F75FECF5D5B4BD8C3C21E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( @@ -1002,107 +1011,108 @@ }; C616BB9F650D110E835D02A3250F302E /* Pods-BareExpo */ = { isa = PBXNativeTarget; - buildConfigurationList = 19B0920102FB081C56D8699A0F9D676E /* Build configuration list for PBXNativeTarget "Pods-BareExpo" */; + buildConfigurationList = A832C04A5E806A099A7BB7DE00106985 /* Build configuration list for PBXNativeTarget "Pods-BareExpo" */; buildPhases = ( - FA3600A7F5008DE2BE1E3B6AA43CAA1C /* Headers */, - 0B99572B5B1932951237131C16FBB9C7 /* Sources */, - DB7DC0C1E6C2D56F295B8748F348E613 /* Frameworks */, + 1CBFA6108973A78F755F58805BCCC094 /* Headers */, + 2B5408C2A80FFB629A3932BF9BCC394E /* Sources */, + EA79F5789FD7E159BC6D17FAB7102A55 /* Frameworks */, ); buildRules = ( ); dependencies = ( - 91D2A06942280D2149E8D2FECE2139DA /* PBXTargetDependency */, - 68583D60CD1D2FCEE73CF16A926196A3 /* PBXTargetDependency */, - CB74FAEC6179ED8E6DA650BC436B0217 /* PBXTargetDependency */, - 5CC4BF5204B9D14211D9845D3CCE8B3A /* PBXTargetDependency */, - 49ED00B0339E6859EE2CF1B4112EBA9C /* PBXTargetDependency */, - 216CEB250607CD8D1847439AA9943219 /* PBXTargetDependency */, - EB510BB4F1A396F8FBC810E5DE644C4A /* PBXTargetDependency */, - 3B41B5F91EC84A9F522A725288F03622 /* PBXTargetDependency */, - E69875FB639872DAE546EF4B38A99FFC /* PBXTargetDependency */, - 0B3198B72438B14E12C3547AEFF35817 /* PBXTargetDependency */, - 5E5513B0C5190451B739B75885958F81 /* PBXTargetDependency */, - 3C1825C8E667A847B094BC84710EB57D /* PBXTargetDependency */, - 7ED59F0C6BB5C3C97A81252A98FDD60D /* PBXTargetDependency */, - CFEB7B078D667D898DCC8EEEF1FC5C82 /* PBXTargetDependency */, - 835E57D62A25653590E6A4879FE2E498 /* PBXTargetDependency */, - 0C6704A85B88110C459780D3DC0D42AE /* PBXTargetDependency */, - CC0B2B3947F5D1DB5CCBEC92CDE90B59 /* PBXTargetDependency */, - 57D398309C4C6FD51F9130573985A66F /* PBXTargetDependency */, - 3ECE96F17B686C020335F76E3191E00C /* PBXTargetDependency */, - 45148C8779E18C0083EC9DE6AF0CD38E /* PBXTargetDependency */, - 5310F632D43BB2D1B1B6F890ED3F0885 /* PBXTargetDependency */, - D13E8EC0261A514C204BE1AF5FCE1A71 /* PBXTargetDependency */, - 6B4B82E9706935B9950B575B6C1B42B3 /* PBXTargetDependency */, - EAFDA9B9134F1DF606BD4C18A97A874A /* PBXTargetDependency */, - 94930F6A17DE516441EAB3E4B56FDE83 /* PBXTargetDependency */, - 7AEE79031110CDCCD4AC9582EE18DBF1 /* PBXTargetDependency */, - AF61AC42B51AAD8083082E9E97A532D6 /* PBXTargetDependency */, - 24B0592F7CE999C10F5252F040275E53 /* PBXTargetDependency */, - D95A8BE51BA7A624286CB26082A825D7 /* PBXTargetDependency */, - 919D9299543E75927B76412AF77C67EB /* PBXTargetDependency */, - 76648E6385C38D92D9919DD8BEFB72FA /* PBXTargetDependency */, - 91231C8705F62ADF08EF987BC7F7F23A /* PBXTargetDependency */, - 76FC85DADC17FF90C5FDD5EBC9DB22F8 /* PBXTargetDependency */, - 162A14750937C65A2A4729155712F26E /* PBXTargetDependency */, - 62DBCD1EAB8D4CDB7E9A7CC0D50DBF17 /* PBXTargetDependency */, - C7AE23F84AE918C528379534C668DCE0 /* PBXTargetDependency */, - 26D2DAA1BEB626B4F3074DA792E9E049 /* PBXTargetDependency */, - BF03A3699E84F70F58A4C068CE723367 /* PBXTargetDependency */, - 8D73DF6AB515BDCAAA2E924F15FD7543 /* PBXTargetDependency */, - 88ABB33EF0314C0E1DE20E898CE4A48A /* PBXTargetDependency */, - 4B0B0B6F3B87CDE371502EF81AF50391 /* PBXTargetDependency */, - BC84B0B805D0DF23F0B5D1160056B9A8 /* PBXTargetDependency */, - 69FD5C53F5ECA3ED4DEC576EC605C19A /* PBXTargetDependency */, - B74039FCB994BF9585D0D4215D0875C8 /* PBXTargetDependency */, - FC734C17AB4E1E840D10ADA1901A3113 /* PBXTargetDependency */, - 424DBC0AAC3F2A89B819DB3A1BE2BD7E /* PBXTargetDependency */, - 86A336B574906E89C02F69D66AC2808D /* PBXTargetDependency */, - 85BB7A1710A8F651EDD241F7D71D9490 /* PBXTargetDependency */, - 9C1FA1598D376386D6CD15F13B05F844 /* PBXTargetDependency */, - A72A154D15AD1504DEE8CE49645A6D8E /* PBXTargetDependency */, - 254CD38753A6118FF2B524C09C120314 /* PBXTargetDependency */, - 412783A91C9AF4D6972DFA2F62A8C1A1 /* PBXTargetDependency */, - B48E006DA8F8AAD53D57E6AFE04AFD17 /* PBXTargetDependency */, - 983CF6E21DB008E9A79C819012FBC053 /* PBXTargetDependency */, - 06E7A26C669DC0234C327B2516735C98 /* PBXTargetDependency */, - C3DC6DBE2445FFE60812CAC637B5864A /* PBXTargetDependency */, - 067EEBB3B5DDD40A466FBB4557C0F507 /* PBXTargetDependency */, - C2ECFA6910CED7EFD2A5A498D869E980 /* PBXTargetDependency */, - 8B21978C9FB81332E24D4A9F14A03B76 /* PBXTargetDependency */, - 4C1B6D1DAD6D319DF2CD230DBC3D0A5C /* PBXTargetDependency */, - 856A79330ECD4101A00DA78356547395 /* PBXTargetDependency */, - 47096324E65A4400F049734DD6E59F2B /* PBXTargetDependency */, - 46F8894ECF5069E01E4352102610933F /* PBXTargetDependency */, - 37D3D1A9C752C5DCC821B584FF3A1207 /* PBXTargetDependency */, - FB8B0A16B9643FB2D121C43BE8B77BCE /* PBXTargetDependency */, - 53034382723F052DDE13043CAE339AD1 /* PBXTargetDependency */, - 4C7C9F601F826720D3382337E1A187B8 /* PBXTargetDependency */, - F67EDF6A0F61A98853459D1B6B6F30CB /* PBXTargetDependency */, - 535FEE6DEE208FC493B372D9576C8AC2 /* PBXTargetDependency */, - AB63AA75C19598CA9C832401B5B9B047 /* PBXTargetDependency */, - BEC0646C92263C5E750B29FD6901140F /* PBXTargetDependency */, - C3C71EE9BA9918D7266A6FFBE2175E03 /* PBXTargetDependency */, - 87B2B4711BCBD138FCB4F284EA4C8BC6 /* PBXTargetDependency */, - 0E3EDD0C0CAB8AC18DE1EB33B5A1A82E /* PBXTargetDependency */, - 4F80E27CCDD9788CB333ACE8F8A59297 /* PBXTargetDependency */, - ADB4BFD566AFDD1299060706572125FE /* PBXTargetDependency */, - 6DA363B8D5958C02C2899867D87A3604 /* PBXTargetDependency */, - 3D13AD9A803C789A67D93CB50870AE39 /* PBXTargetDependency */, - 8761BD1357846AC44DF8B0AD3BC395E4 /* PBXTargetDependency */, - EFDD1908CE86282341ED19473B7AE71C /* PBXTargetDependency */, - 4F9388F4DEB1B74534B3754E88705B26 /* PBXTargetDependency */, - 66C28A13D97C9C346092B072029BA58F /* PBXTargetDependency */, - 52B54ADE77A4B8F029D40C7F6EC7D27B /* PBXTargetDependency */, - 282F7AE82F5459CBCAF3B846755E8ADD /* PBXTargetDependency */, - F0DEEDCF04A5A943D216CA78725B1A59 /* PBXTargetDependency */, - DC62D20C43EFDA514ADDD1CA3E5A3612 /* PBXTargetDependency */, - FFF415525CCA9E6451D7DC64BF8E9558 /* PBXTargetDependency */, - 6213BDDA0827311C7C0F66457FF159F6 /* PBXTargetDependency */, - 9F74AAB317F546683493B1AA32B41061 /* PBXTargetDependency */, - CB54F2A88C91D4157C8371E3352C28DB /* PBXTargetDependency */, - 26CB9F470F7056BE615723902FE526BA /* PBXTargetDependency */, - A9CF24640E6BAC3911BFD39EC8991A9B /* PBXTargetDependency */, + 38AC68B3FC23B2F0783BA90C8E8426A6 /* PBXTargetDependency */, + D1C4ACAFAA72572F8F61F24DA1BBB93D /* PBXTargetDependency */, + 929A5F7FDCDD25EEBCB3E07A03C103CE /* PBXTargetDependency */, + 6B2F38A52325C62E2E89240590C61640 /* PBXTargetDependency */, + AA83F07E10C8CA91A174A07FCA4D8A6E /* PBXTargetDependency */, + 0BB959489706C32955C028ED3E946475 /* PBXTargetDependency */, + 97AD5E1C8C6461A410568E27E8298EE4 /* PBXTargetDependency */, + 98155535013FAB952B26FD59EA592733 /* PBXTargetDependency */, + 9A7EE76FE7B8451A3ABBEC321F37522A /* PBXTargetDependency */, + EA540322798F361FD75AB353A1C9E425 /* PBXTargetDependency */, + E1C4A34F07DB6233F3BF2D2194A30469 /* PBXTargetDependency */, + 529586BDD1A1BC5077323A1A95E70047 /* PBXTargetDependency */, + F011689EA3A1147252210457C97FA573 /* PBXTargetDependency */, + 7D284C4B2E5DB73EE5067247B058C3CB /* PBXTargetDependency */, + 1CC9860D756C501FBBDAD340ACD45301 /* PBXTargetDependency */, + E95C2A53C42B0C4B2A3DD8ED22515054 /* PBXTargetDependency */, + CC4024177BE3EF3FE61A9A3B3C018F1E /* PBXTargetDependency */, + C46368AB770EF37967821926E021655B /* PBXTargetDependency */, + B9F37584BD5F5DF521EEAF7DA2550C50 /* PBXTargetDependency */, + 94545BA4E14CACC60668DBF5F7A7FB41 /* PBXTargetDependency */, + F906514B0D6BCE2CBA379DD64D057DCA /* PBXTargetDependency */, + 7647F7896697657A08CB008CF8A1907E /* PBXTargetDependency */, + 1D21B4C455565DD8A6BED621DE7852F4 /* PBXTargetDependency */, + C73F214F338AF6934EC8B8210F1E4518 /* PBXTargetDependency */, + D9D6522A7F9C1E1C6F2DD5914631FAA9 /* PBXTargetDependency */, + 978A0C95E2F96A89F932C532B6F90256 /* PBXTargetDependency */, + 0FD68F4C7B38830F185FF274592003CC /* PBXTargetDependency */, + F37D811CFA93B6AE8DED6C44168D5F40 /* PBXTargetDependency */, + 84CC68EC049927C17EDEC11A282DB112 /* PBXTargetDependency */, + E50E2CACBAD5824E8F506F867D29E7F9 /* PBXTargetDependency */, + 3474A83F853C1621D4A60C85FB3B5555 /* PBXTargetDependency */, + F4D8474538222F1E4389329EA94E9A58 /* PBXTargetDependency */, + D2B61A644452D29E76D78C61565A3682 /* PBXTargetDependency */, + 30FA6F8FEFB0B4CF0650B24C14A071BE /* PBXTargetDependency */, + 15DBA299E33DACCA73D322741CD10812 /* PBXTargetDependency */, + 7C7133F5DE20EAE4D0A7861E6297321B /* PBXTargetDependency */, + 214598C7CB40021BF5A857C6899DBC29 /* PBXTargetDependency */, + 65E138FF098B57693C6289FC8C4FB9BA /* PBXTargetDependency */, + 3F0A7DF614313C493013438828985700 /* PBXTargetDependency */, + 8AD5472941BC778BC00CE66106DE52BE /* PBXTargetDependency */, + B53F9B180CF395A111802CF7D02CAAEF /* PBXTargetDependency */, + 0C11EB1F53B1C1874325CDEFC8F0CE37 /* PBXTargetDependency */, + BE769D0B980A5DB4845F947D415BA555 /* PBXTargetDependency */, + 08ADE63BAC33643606FD43457B45E5AF /* PBXTargetDependency */, + CC8E5348F1E30D61CA0DCA945DD4F365 /* PBXTargetDependency */, + 2EDB4B27A23329ACB4E760E9B4F61516 /* PBXTargetDependency */, + C387DF4A58B28C4DA207FB0AD9E42348 /* PBXTargetDependency */, + EF8F66AA6D6C124FA84615C4FC2FE394 /* PBXTargetDependency */, + F66B89EB7E24031640FD65D48062E982 /* PBXTargetDependency */, + 439838C4889B2AC4B55C3EBD64C0D1D6 /* PBXTargetDependency */, + 2AD5C55817C25E13E7BDA9C4625EBAC9 /* PBXTargetDependency */, + 29485F9ADE7BEC342392EAFC37CEB122 /* PBXTargetDependency */, + A7CCF6BB887BB5FA23764FFAA0F8C15F /* PBXTargetDependency */, + FEA444976F0D70F22B23ABC76FB5ABCF /* PBXTargetDependency */, + CA003B374ECABE4FCC0797795E0D7A24 /* PBXTargetDependency */, + FAB2907B370386C8A8D74F88C0AC18CD /* PBXTargetDependency */, + 469C038162F5AB1A532A73582DF196DF /* PBXTargetDependency */, + 63F7DF6FD6F44A626F748AC7E74C8310 /* PBXTargetDependency */, + A5D29CA2E6979DE225FF023B09BAB672 /* PBXTargetDependency */, + 41346F8DADB81886E3845AE9D8BFFD5C /* PBXTargetDependency */, + D1BF93DBD12BD38D63F3C1834F35A85D /* PBXTargetDependency */, + D4AE12762722C68043841E0A82895AB1 /* PBXTargetDependency */, + 6A29C5D7AE3EEA2B80C70D4B284EC068 /* PBXTargetDependency */, + 839B3A3DB5D6EC00BF184CDFE1BC89CB /* PBXTargetDependency */, + 150BF162EFB5B752D10D91E63C0792C3 /* PBXTargetDependency */, + 2E5716BCB8093BF6EC9D011E331AE1BA /* PBXTargetDependency */, + 3A2107C795E6C2F491520ECC5B9FDDDC /* PBXTargetDependency */, + D8B65332F6F04283C4A524E41A644C7E /* PBXTargetDependency */, + F4B4B447B2FCD3B2D60B4FAEBC041A1A /* PBXTargetDependency */, + BE534E2808AAB9F13F983B27B7A9294C /* PBXTargetDependency */, + 335EDC9B2B75B9E606F6B609C6CF3DF2 /* PBXTargetDependency */, + 14308070B74D3F97AE842E84369D5F7E /* PBXTargetDependency */, + E8551290A5DA862706D76E9756856FAF /* PBXTargetDependency */, + 402F4143BE5D6B40C7649098BDE34D42 /* PBXTargetDependency */, + CB630A8A25286F4E88724177E5CA654A /* PBXTargetDependency */, + EDDEA0F9453E294ED1F1FA31E51F40F6 /* PBXTargetDependency */, + BFC95FCE89B2927EF2E1EDD9629A6B85 /* PBXTargetDependency */, + 64D73D2C44ADEFA6EA63B9F52985BD4B /* PBXTargetDependency */, + A3FBC5EB5E34437E8B39D57FA12EDDD7 /* PBXTargetDependency */, + 54D849C80B8ED34AB176E1A25AB7F3F5 /* PBXTargetDependency */, + D8085D697FDF15F9ACD35A8F667C1335 /* PBXTargetDependency */, + 3A05B4CC399D864775EF6991303E9DB6 /* PBXTargetDependency */, + 001B7F5232F9201BBE63BBB72E3A2811 /* PBXTargetDependency */, + C996CD5E48EBD344EBD3F9B7EBFF161E /* PBXTargetDependency */, + 76495F4A164E644E0B9375BC4450908A /* PBXTargetDependency */, + C848DF48C5C46DCEE964DB9F7110C0CA /* PBXTargetDependency */, + 4967CB1496D4EDB15B54699271507559 /* PBXTargetDependency */, + 811B6D1BDCD74FBF733001D3D5F6DE7E /* PBXTargetDependency */, + 5812922982B864443AB44DF437ADD3C6 /* PBXTargetDependency */, + 770F0514FB5D96E957F38260390B16C3 /* PBXTargetDependency */, + A1E081118605689BEEB1687205A58BD5 /* PBXTargetDependency */, + F1F886C878767FC61B02C70AFED07CAE /* PBXTargetDependency */, + 0BA494B2300DAFF1DD2703CA6A4E7A33 /* PBXTargetDependency */, ); name = "Pods-BareExpo"; productName = "Pods-BareExpo"; @@ -1131,280 +1141,283 @@ projectDirPath = ""; projectReferences = ( { - ProjectRef = 6790273ACF64FACB6F6C790F7465109B /* Amplitude-iOS */; + ProjectRef = 5370504E9C2AB0A5A79DCDA80512DF63 /* EXNotifications */; + }, + { + ProjectRef = 1874C56666647F9C71C26C490DCD0921 /* AppAuth */; }, { - ProjectRef = 3561DE58B3DAAE4AA0D0BC1C630862FA /* Analytics */; + ProjectRef = CF1C7256B0751DFBBBC3C32DA058F9B2 /* EXAV */; }, { - ProjectRef = 6FA7CD78D631158BDBE6D2A9C4FC19FB /* AppAuth */; + ProjectRef = 24D571065DC8E7D78DE3D281B7F9665E /* EXImagePicker */; }, { - ProjectRef = EC64490903CB102FA5D88F9FD8D4873B /* DoubleConversion */; + ProjectRef = 790A2E685AC19C611733CE7F67102977 /* UMPermissionsInterface */; }, { - ProjectRef = 621E66BDF9658FBAEB7835F073CC1D58 /* EXAV */; + ProjectRef = 81D1A93D40939D17C69ACA87E0F091B9 /* Amplitude-iOS */; }, { - ProjectRef = 966D82943A84614F0D90E09EED82FC4A /* EXAmplitude */; + ProjectRef = 22B7962C5AC6F553566BDB321CDCBED7 /* Analytics */; }, { - ProjectRef = 384191FF16B8310DB2CA32CE12714F26 /* EXAppAuth */; + ProjectRef = 84BC96E6F93CA7ACABFB696BC390AAE4 /* DoubleConversion */; }, { - ProjectRef = D58517F1F49DD7F710C941D73B419B5C /* EXAppLoaderProvider */; + ProjectRef = 766836226A2B4B63203538724CCB4F1C /* EXAmplitude */; }, { - ProjectRef = EC8B540ED755EDCB2AE686784D3AF479 /* EXApplication */; + ProjectRef = D88FC63D8F76640F60314E4A5077FD31 /* EXAppAuth */; }, { - ProjectRef = AFBF976B0EF04C9912E08179B68D2308 /* EXBarCodeScanner */; + ProjectRef = A0472A19A0663233A80B3D04DF83139C /* EXAppLoaderProvider */; }, { - ProjectRef = 6FF66503720CEADA5339CA295727D2E6 /* EXBattery */; + ProjectRef = EBA46FF6FE79918F2108E6350176703C /* EXApplication */; }, { - ProjectRef = 7673391655AE15ABB96812EE718E18B3 /* EXBluetooth */; + ProjectRef = F1BA3A37FBB21699CAA6831FD7EA7A4B /* EXBarCodeScanner */; }, { - ProjectRef = 559D179071A592B620836CC4F14A9F63 /* EXBlur */; + ProjectRef = 67E8A05962A87D9D3E97F466C0588F3E /* EXBattery */; }, { - ProjectRef = 00D632F97A746F8FBEE5FD654C95A5D4 /* EXBrightness */; + ProjectRef = 4A75B063423ACC708261B1E2E6A5AF72 /* EXBluetooth */; }, { - ProjectRef = 66E0036061F06985A735F972DA873D82 /* EXCalendar */; + ProjectRef = 74FEDEFE688494CAE07748B5D758B147 /* EXBlur */; }, { - ProjectRef = 3A6F2FEF94FB5051D0E15E0E75E061CE /* EXCellular */; + ProjectRef = 4830F218FE12E25D199C4BF46791F52C /* EXBrightness */; }, { - ProjectRef = 0F87C4C729C750646FF9170E107841D0 /* EXConstants */; + ProjectRef = 4F6D317BD66107DED81B141CC7C9862B /* EXCalendar */; }, { - ProjectRef = 6F0ED87952B752BF2F6950D2DAB51472 /* EXContacts */; + ProjectRef = 6E562C149ACFF3572AF76219136BAE6F /* EXCellular */; }, { - ProjectRef = 3E8F53A4E4A9F6D8E7270A1D59C0414A /* EXCrypto */; + ProjectRef = 1CEBDBC09F655F237DA82B43D4E56D1A /* EXConstants */; }, { - ProjectRef = A9333E5CD08216B9D4D56A43F8AFFB5B /* EXDevice */; + ProjectRef = 69B62F0A6A5AE0185AB31AF2B50E6C73 /* EXContacts */; }, { - ProjectRef = E3C83D9BB0BF020DE9E3EA402FF40418 /* EXDocumentPicker */; + ProjectRef = E3D4951BFB897802566871A47737F1EE /* EXCrypto */; }, { - ProjectRef = D1D370A1C813FC6C49069D6F265F56E3 /* EXErrorRecovery */; + ProjectRef = ACDF0A1622DDFFECE9C4DD356D1BA970 /* EXDevice */; }, { - ProjectRef = 1EC4C5F6778FD0728D36B94A40185D7A /* EXFileSystem */; + ProjectRef = D78B6B55B6F370CFD13934B2CC9B6119 /* EXDocumentPicker */; }, { - ProjectRef = B16FF31EB7B2D5E60E6685477B72EBC5 /* EXFont */; + ProjectRef = AF9B03AFD3122203FA523C331045B557 /* EXErrorRecovery */; }, { - ProjectRef = A528590EDEA69FCB74BFA09B141B4DBF /* EXGL */; + ProjectRef = A0F40A7EF94F9CDB1C9EC3706EF31977 /* EXFileSystem */; }, { - ProjectRef = B1BC6698202B367C7B3129780457D544 /* EXGL_CPP */; + ProjectRef = 31ED0F047A312EAA2BE054E15BB3DA57 /* EXFont */; }, { - ProjectRef = 9530BB032E863145DD427DBC06A82F68 /* EXGoogleSignIn */; + ProjectRef = B79E739FDB18023D4C8E4264D5CE84D3 /* EXGL */; }, { - ProjectRef = 58F5BF4DBAF85B453DD79DA82B862E0A /* EXHaptics */; + ProjectRef = 2B3EF7E45E25388E46088AEF724044E2 /* EXGL_CPP */; }, { - ProjectRef = 5F89074EFF9BBFF30A654696E06822C7 /* EXImageManipulator */; + ProjectRef = 0E7C660C1D1A671A1C2C6E0A386E4F98 /* EXGoogleSignIn */; }, { - ProjectRef = 081775E5E1E22CD733CEC31DEC05391D /* EXImagePicker */; + ProjectRef = 19518053F4B0ADB5DD067DBC654DCDC8 /* EXHaptics */; }, { - ProjectRef = A82D7F91B76D88E3B3001116B85C6F8F /* EXKeepAwake */; + ProjectRef = FBDB34F0ECB442D367E68748ADA3820F /* EXImageManipulator */; }, { - ProjectRef = C4691EC6027337FE88F7B6C142C79DA9 /* EXLinearGradient */; + ProjectRef = 3F7A24830AA6A74FD093D740F10D7773 /* EXKeepAwake */; }, { - ProjectRef = A90F97E439A7BC54338B0DC132FB389F /* EXLocalAuthentication */; + ProjectRef = 951A59FA6D6F13FE2BC2DC148092885D /* EXLinearGradient */; }, { - ProjectRef = 89B3742C40E8B4801826442347325BBF /* EXLocalization */; + ProjectRef = 9FBF69DFB7386F17655AA92E47A91B88 /* EXLocalAuthentication */; }, { - ProjectRef = 469C509D4699E1DC0DF43F06F3A21FD4 /* EXMailComposer */; + ProjectRef = 3AC85EC6EA5A15DE1A14AC44693B3FAF /* EXLocalization */; }, { - ProjectRef = AF0568DC623CE5D3D2E159457E57B21F /* EXMediaLibrary */; + ProjectRef = 4A8C2D314E95B84D433DB3EC5D0248A8 /* EXMailComposer */; }, { - ProjectRef = 63CC2109E824718DD6CF3ECF2951714F /* EXNetwork */; + ProjectRef = C307D52AB4940565B4FE24E5B2BA7277 /* EXMediaLibrary */; }, { - ProjectRef = ED50116F92CAB9F1E06FE905363CE060 /* EXPermissions */; + ProjectRef = 5E612F91AF7A9DFF650E744D5DDDE6BB /* EXNetwork */; }, { - ProjectRef = 4971CAC7D488A21F083090F5DF77441A /* EXPrint */; + ProjectRef = B399F6209661F0C9597B9B02C293119F /* EXPermissions */; }, { - ProjectRef = 9F278CA3578A1C7C742F5C39E58E8626 /* EXRandom */; + ProjectRef = 7C365CF21BA55DFDF477C4C9CE32DCA1 /* EXPrint */; }, { - ProjectRef = 59558382C9C14CEDEC8ECC99462044AC /* EXSMS */; + ProjectRef = 0DCFBB69843FF7B3B3F4DBFA9395897F /* EXRandom */; }, { - ProjectRef = 9B3C09E1B51BE5C72B1178721DFB4736 /* EXSQLite */; + ProjectRef = 0F4A4147605A8FA472874292E84CA8AA /* EXSMS */; }, { - ProjectRef = EF2B74AE23B4D085A4D41634852D9E79 /* EXSecureStore */; + ProjectRef = 2D820764336141EB6A64FB5E39379B84 /* EXSQLite */; }, { - ProjectRef = 0CCA7AB54711A1C565D9146E86AF6FE5 /* EXSegment */; + ProjectRef = B79AA8F0753060DE025621A58BF10081 /* EXSecureStore */; }, { - ProjectRef = D7D345E8C3BC6E50CBED042829BBF090 /* EXSensors */; + ProjectRef = 9CEAF6033593566F9D90D312481E1561 /* EXSegment */; }, { - ProjectRef = 1CA025FC93211998774902CC4663DD61 /* EXSharing */; + ProjectRef = E35074979A21EA433E91AFF284E3AC50 /* EXSensors */; }, { - ProjectRef = 8C472FA03A74CA155968F8B7216E490A /* EXSpeech */; + ProjectRef = 1291D1E0EF26BE30E64DFE7E772780FF /* EXSharing */; }, { - ProjectRef = 5C7101C48EADF48A3F01ADAD195A0608 /* EXStoreReview */; + ProjectRef = 1682454010CE1DE95AE1F2B800003AE8 /* EXSpeech */; }, { - ProjectRef = 9F3B324040A71A156CE8681CBF0610AA /* EXUpdates */; + ProjectRef = 76D754AC0977B5323E742EEECB40AED4 /* EXStoreReview */; }, { - ProjectRef = 1FBDB8F24C5539045D8AE87F927FB3EE /* EXWebBrowser */; + ProjectRef = BFC20E8D25AC617CEF09AEE4F3B6447C /* EXUpdates */; }, { - ProjectRef = C099422E2DC2875E807A665C97BCC571 /* FBLazyVector */; + ProjectRef = D9159EDE5B081372F59C922A6F771D88 /* EXWebBrowser */; }, { - ProjectRef = 7572990AACADFEEFE5EF8AF3A2415FD0 /* FBReactNativeSpec */; + ProjectRef = 602F1AC40936205BAA0B2DB343047BC2 /* FBLazyVector */; }, { - ProjectRef = B2F742EBD46D881CC735F4D4A4260119 /* Folly */; + ProjectRef = 5C904EB0F8D09A9D6A2CA1D9E5FB1A5E /* FBReactNativeSpec */; }, { - ProjectRef = 8DD091FE677FB13DC171D90C021CA7DE /* GTMAppAuth */; + ProjectRef = 3BA6FCAA80CA6709FC129B2F8F1455D9 /* Folly */; }, { - ProjectRef = F6C89811BEB495795C6F1B805FCF9133 /* GTMSessionFetcher */; + ProjectRef = 72E97573157DD427D06035896E61A932 /* GTMAppAuth */; }, { - ProjectRef = E17942621B3C5C442DAEF9E85EE80964 /* GoogleSignIn */; + ProjectRef = 4915DBB1FD2CAFEC6F31A56C0C6957F2 /* GTMSessionFetcher */; }, { - ProjectRef = 50C4358AD398837056C0C6E564E5FB45 /* RCTRequired */; + ProjectRef = 38C1D46D658188871C901CE039368D2B /* GoogleSignIn */; }, { - ProjectRef = 73E1515109725296D25100C06DA91793 /* RCTTypeSafety */; + ProjectRef = 211D8213F75598D838AA142334A75A03 /* RCTRequired */; }, { - ProjectRef = 228AECF796357BD0C17A0250B493CF46 /* RNGestureHandler */; + ProjectRef = 847FD5ED7B8C4325822B875EFAC72828 /* RCTTypeSafety */; }, { - ProjectRef = 093F33B91AB6CCF24EC5B44C2168D6B7 /* RNReanimated */; + ProjectRef = 20C29A1EAED431974F1F9ADE24297AD8 /* RNGestureHandler */; }, { - ProjectRef = BB09D5AC4BEBC2617D9D95C54475FA09 /* React */; + ProjectRef = C82A773803E9590719BF9B2ADBDC8853 /* RNReanimated */; }, { - ProjectRef = 4B81D9E849F7B0FF699CF47FC7F2EC7B /* React-Core */; + ProjectRef = D295C7698687650B201A4E18B1A6CE87 /* React */; }, { - ProjectRef = A3F4A301606C753818F89B954CBABFFA /* React-CoreModules */; + ProjectRef = AC64B72943BF5A964B4BEA5D03352E8A /* React-Core */; }, { - ProjectRef = 7C6CEDFBCA521989947F5B019C76054A /* React-RCTActionSheet */; + ProjectRef = D0A15388E6A79D84E72CB78529279E0C /* React-CoreModules */; }, { - ProjectRef = 93A314050AEE5C54490FF76731532B5D /* React-RCTAnimation */; + ProjectRef = C48CFC9D9BAC60B4713D773CBCC18138 /* React-RCTActionSheet */; }, { - ProjectRef = 53B70B73EBA72F4DB54EFB1201B958D9 /* React-RCTBlob */; + ProjectRef = 486D05376E4B939AAAA46292A4C1EDC5 /* React-RCTAnimation */; }, { - ProjectRef = 04AF6CFC908ABC897934A123721DCDC8 /* React-RCTImage */; + ProjectRef = 2DFD1D139E40516EB3C8592132C16563 /* React-RCTBlob */; }, { - ProjectRef = FC694360F93EB50AF01BD9AD3DDF6F63 /* React-RCTLinking */; + ProjectRef = 6FE9E6378CCA409045A0D6F7725BD635 /* React-RCTImage */; }, { - ProjectRef = C3F1268A122894A50E585D0D43F60664 /* React-RCTNetwork */; + ProjectRef = 539904AF85D455EEA0BC80314430F767 /* React-RCTLinking */; }, { - ProjectRef = 00E9EF1B95C123998456AA100CE87025 /* React-RCTSettings */; + ProjectRef = D918720DA8177424E16B7D398B1E42BA /* React-RCTNetwork */; }, { - ProjectRef = B95E106A906DA6BC3B1AE32B1476EC96 /* React-RCTText */; + ProjectRef = 83741058F1FBE8278A49685754C1020B /* React-RCTSettings */; }, { - ProjectRef = 2AFEBA4AE1BF044913C3A1F0ABCD7BEF /* React-RCTVibration */; + ProjectRef = 39600D89716D9EF152089FCE92F9611F /* React-RCTText */; }, { - ProjectRef = 5C0692C4DCE5A6E01C6809F60A6FBB6E /* React-cxxreact */; + ProjectRef = 6FCCE9A29FCD2F955BD249B2E8FE64D6 /* React-RCTVibration */; }, { - ProjectRef = 01CFA74EFC65BCFDF41AE2DB0615EED8 /* React-jsi */; + ProjectRef = D1A3C1892F717A0516FC6E06862425AD /* React-cxxreact */; }, { - ProjectRef = C2EA603A6A2597676F274428E05872B9 /* React-jsiexecutor */; + ProjectRef = FA3F1AFA57847B7DE0AAEDF4186FC4BF /* React-jsi */; }, { - ProjectRef = 0143F693E54C76D9CEC9B89D39EA738C /* React-jsinspector */; + ProjectRef = 5ED0F47567E19D563562378CB541F063 /* React-jsiexecutor */; }, { - ProjectRef = 11A32ED6BFC7435B83A74B68227CF672 /* ReactCommon */; + ProjectRef = A32518B2BC57B6ACB06728AD31C6FED7 /* React-jsinspector */; }, { - ProjectRef = A14282E7B246C428EDC564624DBDD9BF /* UMBarCodeScannerInterface */; + ProjectRef = 42DD6321E59344D440B1F51FE3CF79E7 /* ReactCommon */; }, { - ProjectRef = BAD136761E20C0CF271C8994F81BE4E8 /* UMCameraInterface */; + ProjectRef = A5F35E9471A25BAFEB3AB53EDB2E48BD /* UMBarCodeScannerInterface */; }, { - ProjectRef = 24C2C1248498064540A1A0795384B075 /* UMConstantsInterface */; + ProjectRef = 283EB81A8B2631DC912F91F2E743D805 /* UMCameraInterface */; }, { - ProjectRef = 6F2506A46EAB2A974A4A198BF26B5D11 /* UMCore */; + ProjectRef = 8BB89C73D41B6306783F6127102D17EE /* UMConstantsInterface */; }, { - ProjectRef = A1A9EF9126D232C7848495ED0D34FC82 /* UMFileSystemInterface */; + ProjectRef = 99EC51DA27D3AF613938A01C65921965 /* UMCore */; }, { - ProjectRef = 10773CD4E5B8A755D9E0D42FC649AEB4 /* UMFontInterface */; + ProjectRef = DD26F4B8BC160D314045C1E9FF99E1C0 /* UMFileSystemInterface */; }, { - ProjectRef = D06CF6E8B5CE7D5A760E443475289B14 /* UMImageLoaderInterface */; + ProjectRef = A31EA7E16D8F9F37E83632B7A9BD49BD /* UMFontInterface */; }, { - ProjectRef = F93842B2AFB5431663D17D6C8B0DAD27 /* UMPermissionsInterface */; + ProjectRef = 2FA4EA22672E5A6B552140467F83F0D5 /* UMImageLoaderInterface */; }, { - ProjectRef = D5E45FC61A6D2D7E3F46F8A281EA7F64 /* UMReactNativeAdapter */; + ProjectRef = 20EFB8787523F1F8E82C44E6D2318625 /* UMReactNativeAdapter */; }, { - ProjectRef = 4B8658D487323D6EEE125B5F57F06468 /* UMSensorsInterface */; + ProjectRef = F5378BC6DC876907C7D4762A994635E1 /* UMSensorsInterface */; }, { - ProjectRef = 068283BA3523101E0BA7F90CEB90A6A1 /* Yoga */; + ProjectRef = 154D415A4BF5B57E8E22F022EE88A1A2 /* Yoga */; }, { - ProjectRef = 9946A17BD11A68F7A944498FD73C8413 /* ZXingObjC */; + ProjectRef = 85183E225D7A7272819751A43B77122A /* ZXingObjC */; }, { - ProjectRef = 06A760ACB1990444FA093A6D7A8AC2EB /* boost-for-react-native */; + ProjectRef = E6C81641E33F90B0058BD7F47E6F95F4 /* boost-for-react-native */; }, { - ProjectRef = 21907930CDED304581AE9F8EF737DFC3 /* glog */; + ProjectRef = 837FB515358617F85BDF99978EE71115 /* glog */; }, { - ProjectRef = 86F0EA4A0FCDB3FC734AE64574A90EBC /* react-native-safe-area-context */; + ProjectRef = 37D51A279F61ACA707D2DDB2B4775260 /* react-native-safe-area-context */; }, ); projectRoot = ""; @@ -1416,11 +1429,11 @@ /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 0B99572B5B1932951237131C16FBB9C7 /* Sources */ = { + 2B5408C2A80FFB629A3932BF9BCC394E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 27B74A7EF0716B4AF7ECCB2F8E04A0B3 /* Pods-BareExpo-dummy.m in Sources */, + F2F714CCB8A26BEEAF45A7BC332B8802 /* Pods-BareExpo-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1435,498 +1448,480 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 067EEBB3B5DDD40A466FBB4557C0F507 /* PBXTargetDependency */ = { + 001B7F5232F9201BBE63BBB72E3A2811 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RCTRequired; - targetProxy = 7FC8F2D1B333FC5EADC4FBA1AB7EBFB5 /* PBXContainerItemProxy */; + name = UMFileSystemInterface; + targetProxy = 0B8C5F00B0B111D1DB9CAAE8560EF8DA /* PBXContainerItemProxy */; }; - 06E7A26C669DC0234C327B2516735C98 /* PBXTargetDependency */ = { + 08ADE63BAC33643606FD43457B45E5AF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GTMSessionFetcher; - targetProxy = C0D1C19DEA5D365061FF4508B4800EF2 /* PBXContainerItemProxy */; + name = EXSecureStore; + targetProxy = 5C939B02FA3137B5DF8CDE1F7841A5EA /* PBXContainerItemProxy */; }; - 0B3198B72438B14E12C3547AEFF35817 /* PBXTargetDependency */ = { + 0BA494B2300DAFF1DD2703CA6A4E7A33 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXBarCodeScanner; - targetProxy = AD6B10B33B18CA4A347E896D47BF322A /* PBXContainerItemProxy */; + name = "react-native-safe-area-context"; + targetProxy = 5986255D885BB7F771FE7C2C0E2BD5E3 /* PBXContainerItemProxy */; }; - 0C6704A85B88110C459780D3DC0D42AE /* PBXTargetDependency */ = { + 0BB959489706C32955C028ED3E946475 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXCellular; - targetProxy = 747EAA46A036A88E6C075D7CAC73D253 /* PBXContainerItemProxy */; + name = EXAmplitude; + targetProxy = DCF29BC56D0890AC4130BF00F0C9D8DD /* PBXContainerItemProxy */; }; - 0E3EDD0C0CAB8AC18DE1EB33B5A1A82E /* PBXTargetDependency */ = { + 0C11EB1F53B1C1874325CDEFC8F0CE37 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-jsi"; - targetProxy = DF4AEE3244EB84A881866AE1F00F702A /* PBXContainerItemProxy */; + name = EXSMS; + targetProxy = 06963D9ACFF76386269904DEB96637B5 /* PBXContainerItemProxy */; }; - 162A14750937C65A2A4729155712F26E /* PBXTargetDependency */ = { + 0FD68F4C7B38830F185FF274592003CC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXLocalization; - targetProxy = 2310E33AFE5DCF99B3982C7E4D4D7BDD /* PBXContainerItemProxy */; + name = EXGoogleSignIn; + targetProxy = 78B92CED29A733A14982F6CF0A7DFEFC /* PBXContainerItemProxy */; }; - 216CEB250607CD8D1847439AA9943219 /* PBXTargetDependency */ = { + 14308070B74D3F97AE842E84369D5F7E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXAmplitude; - targetProxy = D7FFDD3F5095036FF7AF5F5D29EFB1BE /* PBXContainerItemProxy */; + name = "React-RCTText"; + targetProxy = 762C229920508A7C1071A62F613FE744 /* PBXContainerItemProxy */; }; - 24B0592F7CE999C10F5252F040275E53 /* PBXTargetDependency */ = { + 150BF162EFB5B752D10D91E63C0792C3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXHaptics; - targetProxy = 2F6A828F617177C24C91AFE67336840B /* PBXContainerItemProxy */; + name = "React-RCTActionSheet"; + targetProxy = 88E8AAB58D90D69B73E53CB1039AD148 /* PBXContainerItemProxy */; }; - 254CD38753A6118FF2B524C09C120314 /* PBXTargetDependency */ = { + 15DBA299E33DACCA73D322741CD10812 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBLazyVector; - targetProxy = 84CBD0CEF3538AC641BB40C36876BD81 /* PBXContainerItemProxy */; + name = EXMailComposer; + targetProxy = E51836B09C2FC93BC074CCA4B3AD62CC /* PBXContainerItemProxy */; }; - 26CB9F470F7056BE615723902FE526BA /* PBXTargetDependency */ = { + 1CC9860D756C501FBBDAD340ACD45301 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = glog; - targetProxy = BC8167D94C315BAC5226405FC6608AA7 /* PBXContainerItemProxy */; + name = EXCalendar; + targetProxy = AE5C3FC5B1E65980DAD50948DCF5C6D4 /* PBXContainerItemProxy */; }; - 26D2DAA1BEB626B4F3074DA792E9E049 /* PBXTargetDependency */ = { + 1D21B4C455565DD8A6BED621DE7852F4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = EXFileSystem; + targetProxy = 2886FB9B4B7F2B85BCE556DBA40F64E1 /* PBXContainerItemProxy */; + }; + 214598C7CB40021BF5A857C6899DBC29 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EXNetwork; - targetProxy = EDE74689F85B5DC963E8E16C1B164F4E /* PBXContainerItemProxy */; + targetProxy = F610086B8A99E86BD49AC94781366EDE /* PBXContainerItemProxy */; }; - 282F7AE82F5459CBCAF3B846755E8ADD /* PBXTargetDependency */ = { + 29485F9ADE7BEC342392EAFC37CEB122 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMImageLoaderInterface; - targetProxy = B302FD2BB02B0AAD96BDC1C6DB19E566 /* PBXContainerItemProxy */; + name = FBLazyVector; + targetProxy = 5A4A2A9AC0BEE1DF43937DF2E89B2C90 /* PBXContainerItemProxy */; + }; + 2AD5C55817C25E13E7BDA9C4625EBAC9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = EXWebBrowser; + targetProxy = D043C6D69D8E8DBE9A2A6B5904D80A4B /* PBXContainerItemProxy */; }; - 37D3D1A9C752C5DCC821B584FF3A1207 /* PBXTargetDependency */ = { + 2E5716BCB8093BF6EC9D011E331AE1BA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTActionSheet"; - targetProxy = 35855868F9E27821A58D859456185065 /* PBXContainerItemProxy */; + name = "React-RCTAnimation"; + targetProxy = 9EAC0AFB4D6D6D4B4E2D72A086562D4B /* PBXContainerItemProxy */; }; - 3B41B5F91EC84A9F522A725288F03622 /* PBXTargetDependency */ = { + 2EDB4B27A23329ACB4E760E9B4F61516 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXAppLoaderProvider; - targetProxy = A8F91F7C4377813388AE4D2DDB3F6CA4 /* PBXContainerItemProxy */; + name = EXSensors; + targetProxy = 9B3387B09458A77915E4FECED561E332 /* PBXContainerItemProxy */; }; - 3C1825C8E667A847B094BC84710EB57D /* PBXTargetDependency */ = { + 30FA6F8FEFB0B4CF0650B24C14A071BE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXBluetooth; - targetProxy = DDFE0FA34D9552D9D2E63BB7DDC37FB3 /* PBXContainerItemProxy */; + name = EXLocalization; + targetProxy = 2D6B7FE0D400077A830A889D5F2E3BF6 /* PBXContainerItemProxy */; }; - 3D13AD9A803C789A67D93CB50870AE39 /* PBXTargetDependency */ = { + 335EDC9B2B75B9E606F6B609C6CF3DF2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMBarCodeScannerInterface; - targetProxy = 05B0119097CB972CC8342F1A43F98833 /* PBXContainerItemProxy */; + name = "React-RCTSettings"; + targetProxy = 071C80A0F327B444E7A3951CDF5D81F4 /* PBXContainerItemProxy */; }; - 3ECE96F17B686C020335F76E3191E00C /* PBXTargetDependency */ = { + 3474A83F853C1621D4A60C85FB3B5555 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXCrypto; - targetProxy = BAD1DF73985CE89817BFA6C0543F3D03 /* PBXContainerItemProxy */; + name = EXKeepAwake; + targetProxy = 17C369DA24A77B5DFF1F57381D6566B6 /* PBXContainerItemProxy */; }; - 412783A91C9AF4D6972DFA2F62A8C1A1 /* PBXTargetDependency */ = { + 38AC68B3FC23B2F0783BA90C8E8426A6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FBReactNativeSpec; - targetProxy = 65CCF35240ECB03F58B9E1E002B5E477 /* PBXContainerItemProxy */; + name = "Amplitude-iOS"; + targetProxy = 33EA9FDC3E1504E6D2321C306A5A70A2 /* PBXContainerItemProxy */; }; - 424DBC0AAC3F2A89B819DB3A1BE2BD7E /* PBXTargetDependency */ = { + 3A05B4CC399D864775EF6991303E9DB6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSharing; - targetProxy = 8E0663814249A4ADFF8E7A4A5345A03A /* PBXContainerItemProxy */; + name = UMCore; + targetProxy = 3877B90A6B5F0B1026CCF6519797BC8B /* PBXContainerItemProxy */; }; - 45148C8779E18C0083EC9DE6AF0CD38E /* PBXTargetDependency */ = { + 3A2107C795E6C2F491520ECC5B9FDDDC /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXDevice; - targetProxy = A2F13C125416EB21F8FAEE2465DAC2AB /* PBXContainerItemProxy */; + name = "React-RCTBlob"; + targetProxy = 7811002A80AC1E7EAF4C8894ABE73D57 /* PBXContainerItemProxy */; }; - 46F8894ECF5069E01E4352102610933F /* PBXTargetDependency */ = { + 3F0A7DF614313C493013438828985700 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-CoreModules"; - targetProxy = 865D575A281702845E263A55EB18538C /* PBXContainerItemProxy */; + name = EXPermissions; + targetProxy = 270D963B83EE8B8579C8857BFCD46219 /* PBXContainerItemProxy */; }; - 47096324E65A4400F049734DD6E59F2B /* PBXTargetDependency */ = { + 402F4143BE5D6B40C7649098BDE34D42 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-Core"; - targetProxy = 431AF7D2922ED0E18BFF9D7C0FA1633D /* PBXContainerItemProxy */; + name = "React-cxxreact"; + targetProxy = BCF48DD07D2F4C863C70A03EA55F39F7 /* PBXContainerItemProxy */; }; - 49ED00B0339E6859EE2CF1B4112EBA9C /* PBXTargetDependency */ = { + 41346F8DADB81886E3845AE9D8BFFD5C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXAV; - targetProxy = 7EF30E0E4FFCDBEEAF279262F6874A60 /* PBXContainerItemProxy */; + name = RNGestureHandler; + targetProxy = 22F148F91BD9CC2DB52F7F801629B509 /* PBXContainerItemProxy */; }; - 4B0B0B6F3B87CDE371502EF81AF50391 /* PBXTargetDependency */ = { + 439838C4889B2AC4B55C3EBD64C0D1D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSMS; - targetProxy = 9BDC84B84E26F07933C0332937E97893 /* PBXContainerItemProxy */; + name = EXUpdates; + targetProxy = 754D4A6FA047092156B7BFE15CF5CE82 /* PBXContainerItemProxy */; }; - 4C1B6D1DAD6D319DF2CD230DBC3D0A5C /* PBXTargetDependency */ = { + 469C038162F5AB1A532A73582DF196DF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RNReanimated; - targetProxy = 04D4A9C49B1150F6E441E4B21B87FE46 /* PBXContainerItemProxy */; + name = GoogleSignIn; + targetProxy = 458E74C7A2B3BCEB0678B44712A07B95 /* PBXContainerItemProxy */; }; - 4C7C9F601F826720D3382337E1A187B8 /* PBXTargetDependency */ = { + 4967CB1496D4EDB15B54699271507559 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTImage"; - targetProxy = 07AE4300B905F05CED560E1C5437466E /* PBXContainerItemProxy */; + name = UMReactNativeAdapter; + targetProxy = FCCD606F996CBBAAF838FA6301625D42 /* PBXContainerItemProxy */; }; - 4F80E27CCDD9788CB333ACE8F8A59297 /* PBXTargetDependency */ = { + 529586BDD1A1BC5077323A1A95E70047 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-jsiexecutor"; - targetProxy = C793E8E284B01FE1C42765785C913284 /* PBXContainerItemProxy */; + name = EXBluetooth; + targetProxy = B0AF012459FB8FBA764ECFBCAF75AEFF /* PBXContainerItemProxy */; }; - 4F9388F4DEB1B74534B3754E88705B26 /* PBXTargetDependency */ = { + 54D849C80B8ED34AB176E1A25AB7F3F5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMCore; - targetProxy = 5C9524D6AB93120FF7D58A9461D45112 /* PBXContainerItemProxy */; + name = UMCameraInterface; + targetProxy = B8313E58D931E0DF5AAF44180C29A885 /* PBXContainerItemProxy */; }; - 52B54ADE77A4B8F029D40C7F6EC7D27B /* PBXTargetDependency */ = { + 5812922982B864443AB44DF437ADD3C6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMFontInterface; - targetProxy = A4861781D8FFCA47636C2B2572BBA817 /* PBXContainerItemProxy */; + name = Yoga; + targetProxy = 32EB6A244E8E2B57AA237ACBA3AFE442 /* PBXContainerItemProxy */; }; - 53034382723F052DDE13043CAE339AD1 /* PBXTargetDependency */ = { + 63F7DF6FD6F44A626F748AC7E74C8310 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTBlob"; - targetProxy = C6775EA6E67262174AE3F8EB9BC04527 /* PBXContainerItemProxy */; + name = RCTRequired; + targetProxy = A1E5C22EA8DDC7C8B2374E152A49DDF8 /* PBXContainerItemProxy */; }; - 5310F632D43BB2D1B1B6F890ED3F0885 /* PBXTargetDependency */ = { + 64D73D2C44ADEFA6EA63B9F52985BD4B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXDocumentPicker; - targetProxy = A75B4DE316B3C94CC37B4A662123569C /* PBXContainerItemProxy */; + name = ReactCommon; + targetProxy = 9E57EB6A3151AA92814D09FFBB8D1788 /* PBXContainerItemProxy */; }; - 535FEE6DEE208FC493B372D9576C8AC2 /* PBXTargetDependency */ = { + 65E138FF098B57693C6289FC8C4FB9BA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTNetwork"; - targetProxy = F7CA9DF8CB84759BCCD92D51371A60EE /* PBXContainerItemProxy */; + name = EXNotifications; + targetProxy = DF962C651115BD29A1B59BB3CB77A30D /* PBXContainerItemProxy */; }; - 57D398309C4C6FD51F9130573985A66F /* PBXTargetDependency */ = { + 6A29C5D7AE3EEA2B80C70D4B284EC068 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXContacts; - targetProxy = E22601FB7D527CB7700F5EF31658A6BD /* PBXContainerItemProxy */; + name = "React-Core"; + targetProxy = 29A2F824BAAC6D5862899640DB847035 /* PBXContainerItemProxy */; }; - 5CC4BF5204B9D14211D9845D3CCE8B3A /* PBXTargetDependency */ = { + 6B2F38A52325C62E2E89240590C61640 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = DoubleConversion; - targetProxy = 3B6AAB8218C95833AC4ECBF0FCFC644F /* PBXContainerItemProxy */; - }; - 5E5513B0C5190451B739B75885958F81 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = EXBattery; - targetProxy = 3C1A537234950AB8ECD1F34B075F0F28 /* PBXContainerItemProxy */; + targetProxy = D264A1CBF2E9FEA332EC92EB30758B6A /* PBXContainerItemProxy */; }; - 6213BDDA0827311C7C0F66457FF159F6 /* PBXTargetDependency */ = { + 7647F7896697657A08CB008CF8A1907E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Yoga; - targetProxy = DC0A99BF800318FF2591A3C3BF67AA2A /* PBXContainerItemProxy */; + name = EXErrorRecovery; + targetProxy = 9A6F2C6B72B62171B236644CDFA5E17C /* PBXContainerItemProxy */; }; - 62DBCD1EAB8D4CDB7E9A7CC0D50DBF17 /* PBXTargetDependency */ = { + 76495F4A164E644E0B9375BC4450908A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXMailComposer; - targetProxy = 834482237C0D29D3B0A986E0108F44E8 /* PBXContainerItemProxy */; + name = UMImageLoaderInterface; + targetProxy = 70734B1E9EA0F936F6E3A313F90C657C /* PBXContainerItemProxy */; }; - 66C28A13D97C9C346092B072029BA58F /* PBXTargetDependency */ = { + 770F0514FB5D96E957F38260390B16C3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMFileSystemInterface; - targetProxy = 0353DEE60CB234F82C58A10CDC031E88 /* PBXContainerItemProxy */; + name = ZXingObjC; + targetProxy = C44BFA7EDE6D662FB3341FE30CCE61A1 /* PBXContainerItemProxy */; }; - 68583D60CD1D2FCEE73CF16A926196A3 /* PBXTargetDependency */ = { + 7C7133F5DE20EAE4D0A7861E6297321B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Analytics; - targetProxy = 8A898395EFE24E3518D6ACE4807A4410 /* PBXContainerItemProxy */; + name = EXMediaLibrary; + targetProxy = 56F4DE4682B3525F826E75C5B6982250 /* PBXContainerItemProxy */; }; - 69FD5C53F5ECA3ED4DEC576EC605C19A /* PBXTargetDependency */ = { + 7D284C4B2E5DB73EE5067247B058C3CB /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSecureStore; - targetProxy = 1E3E312EFD96A12407172E96E9390F77 /* PBXContainerItemProxy */; + name = EXBrightness; + targetProxy = C4D1D3FD3BAD1607F4A843AEA84F1910 /* PBXContainerItemProxy */; }; - 6B4B82E9706935B9950B575B6C1B42B3 /* PBXTargetDependency */ = { + 811B6D1BDCD74FBF733001D3D5F6DE7E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXFileSystem; - targetProxy = 9AF5A7B953E92F6D2EFF76EFFDE4DE59 /* PBXContainerItemProxy */; + name = UMSensorsInterface; + targetProxy = 9D76DE94DE8A9BBDB566D04BDBAD1044 /* PBXContainerItemProxy */; }; - 6DA363B8D5958C02C2899867D87A3604 /* PBXTargetDependency */ = { + 839B3A3DB5D6EC00BF184CDFE1BC89CB /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = ReactCommon; - targetProxy = C7B8E4638B3FEEE41A30B79BCD5A66A2 /* PBXContainerItemProxy */; + name = "React-CoreModules"; + targetProxy = 56D4B2E5F7422F637672FED6B1CF986F /* PBXContainerItemProxy */; }; - 76648E6385C38D92D9919DD8BEFB72FA /* PBXTargetDependency */ = { + 84CC68EC049927C17EDEC11A282DB112 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXKeepAwake; - targetProxy = F6613DD846BED619D89CA5871B5D76BE /* PBXContainerItemProxy */; + name = EXImageManipulator; + targetProxy = D84005DE0A7FC1C2180D6DC48F158195 /* PBXContainerItemProxy */; }; - 76FC85DADC17FF90C5FDD5EBC9DB22F8 /* PBXTargetDependency */ = { + 8AD5472941BC778BC00CE66106DE52BE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXLocalAuthentication; - targetProxy = B060D0AFB1E0CC3F9EFAB39BBB472BDE /* PBXContainerItemProxy */; + name = EXPrint; + targetProxy = B43AF8ADB4ABED542A191F0C92CDA58E /* PBXContainerItemProxy */; }; - 7AEE79031110CDCCD4AC9582EE18DBF1 /* PBXTargetDependency */ = { + 929A5F7FDCDD25EEBCB3E07A03C103CE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXGL_CPP; - targetProxy = 39B15604EA16A09A49DA569249C7AA83 /* PBXContainerItemProxy */; + name = AppAuth; + targetProxy = 15EBFE0C5D680BC678D2BAEE2AA7EB17 /* PBXContainerItemProxy */; }; - 7ED59F0C6BB5C3C97A81252A98FDD60D /* PBXTargetDependency */ = { + 94545BA4E14CACC60668DBF5F7A7FB41 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXBlur; - targetProxy = 138B551B7760FEF12E9588FB05659D94 /* PBXContainerItemProxy */; + name = EXDevice; + targetProxy = B616A6DBE11835E3828477A080007882 /* PBXContainerItemProxy */; }; - 835E57D62A25653590E6A4879FE2E498 /* PBXTargetDependency */ = { + 978A0C95E2F96A89F932C532B6F90256 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXCalendar; - targetProxy = 0D95C376406A62ADA46606B0D3771DE2 /* PBXContainerItemProxy */; + name = EXGL_CPP; + targetProxy = A0702A3F3987D834E5CB524D7582BC42 /* PBXContainerItemProxy */; }; - 856A79330ECD4101A00DA78356547395 /* PBXTargetDependency */ = { + 97AD5E1C8C6461A410568E27E8298EE4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = React; - targetProxy = BC28539A09791D00B0BBE33A1BFCC04F /* PBXContainerItemProxy */; + name = EXAppAuth; + targetProxy = 5886A4134F2FA5B8753778E853BA19BA /* PBXContainerItemProxy */; }; - 85BB7A1710A8F651EDD241F7D71D9490 /* PBXTargetDependency */ = { + 98155535013FAB952B26FD59EA592733 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXStoreReview; - targetProxy = 9B902F5A4F54D64F86DDBD98FFC44F69 /* PBXContainerItemProxy */; + name = EXAppLoaderProvider; + targetProxy = ED027510CF7496DCB9D74BD29EBBE262 /* PBXContainerItemProxy */; }; - 86A336B574906E89C02F69D66AC2808D /* PBXTargetDependency */ = { + 9A7EE76FE7B8451A3ABBEC321F37522A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSpeech; - targetProxy = 9B46D48EFD5EF68D89130936A94F0CD3 /* PBXContainerItemProxy */; + name = EXApplication; + targetProxy = E80BDFD8FD707172EE3568836C8E214F /* PBXContainerItemProxy */; }; - 8761BD1357846AC44DF8B0AD3BC395E4 /* PBXTargetDependency */ = { + A1E081118605689BEEB1687205A58BD5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMCameraInterface; - targetProxy = B4151C4687EFC1E5E85C4622E62BABAA /* PBXContainerItemProxy */; + name = "boost-for-react-native"; + targetProxy = EFCF51AE8DE666A1A23D98409FEEA1AA /* PBXContainerItemProxy */; }; - 87B2B4711BCBD138FCB4F284EA4C8BC6 /* PBXTargetDependency */ = { + A3FBC5EB5E34437E8B39D57FA12EDDD7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-cxxreact"; - targetProxy = D1E465D8EE4E1BB41A4F686819B41C3F /* PBXContainerItemProxy */; + name = UMBarCodeScannerInterface; + targetProxy = BE305DBB61F72B252077F23B9000886B /* PBXContainerItemProxy */; }; - 88ABB33EF0314C0E1DE20E898CE4A48A /* PBXTargetDependency */ = { + A5D29CA2E6979DE225FF023B09BAB672 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXRandom; - targetProxy = B621C005B2348C73A36A9F050EF3AAEC /* PBXContainerItemProxy */; + name = RCTTypeSafety; + targetProxy = 5B3A54C1CC98D54A8BF01EC39A0CCE9A /* PBXContainerItemProxy */; }; - 8B21978C9FB81332E24D4A9F14A03B76 /* PBXTargetDependency */ = { + A7CCF6BB887BB5FA23764FFAA0F8C15F /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RNGestureHandler; - targetProxy = 0FAD10CD5AEBC9229D69C5193AA1996D /* PBXContainerItemProxy */; + name = FBReactNativeSpec; + targetProxy = 395309C6928642091FF420CF2575E3AF /* PBXContainerItemProxy */; }; - 8D73DF6AB515BDCAAA2E924F15FD7543 /* PBXTargetDependency */ = { + AA83F07E10C8CA91A174A07FCA4D8A6E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXPrint; - targetProxy = ECE72C945FEE79C19347B366A6114888 /* PBXContainerItemProxy */; + name = EXAV; + targetProxy = E4F13EAE7D0B938A6C9D9ADE3128ED84 /* PBXContainerItemProxy */; }; - 91231C8705F62ADF08EF987BC7F7F23A /* PBXTargetDependency */ = { + B53F9B180CF395A111802CF7D02CAAEF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXLinearGradient; - targetProxy = 72CCD3670C80EA569EAE6696701FE495 /* PBXContainerItemProxy */; + name = EXRandom; + targetProxy = 7A966DD2F28C59FB519D21A29DAC0C3E /* PBXContainerItemProxy */; }; - 919D9299543E75927B76412AF77C67EB /* PBXTargetDependency */ = { + B9F37584BD5F5DF521EEAF7DA2550C50 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXImagePicker; - targetProxy = B142D18C098B8F928A3B28E83EE06A70 /* PBXContainerItemProxy */; + name = EXCrypto; + targetProxy = 2D3F02A4EF58120647F70AD3648877C9 /* PBXContainerItemProxy */; }; - 91D2A06942280D2149E8D2FECE2139DA /* PBXTargetDependency */ = { + BE534E2808AAB9F13F983B27B7A9294C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Amplitude-iOS"; - targetProxy = 67D78E6479226F565CE530FAD81A8B39 /* PBXContainerItemProxy */; + name = "React-RCTNetwork"; + targetProxy = 89C1B83344DFB9F8757ED973FEFD75D8 /* PBXContainerItemProxy */; }; - 94930F6A17DE516441EAB3E4B56FDE83 /* PBXTargetDependency */ = { + BE769D0B980A5DB4845F947D415BA555 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXGL; - targetProxy = 0E638FE83654AAA0102A8CC346914D53 /* PBXContainerItemProxy */; + name = EXSQLite; + targetProxy = 9412205B3F0255BC6427D1FE79F93D4D /* PBXContainerItemProxy */; }; - 983CF6E21DB008E9A79C819012FBC053 /* PBXTargetDependency */ = { + BFC95FCE89B2927EF2E1EDD9629A6B85 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GTMAppAuth; - targetProxy = 415E5BEBE0E75178ADED5451DEB88B6F /* PBXContainerItemProxy */; + name = "React-jsinspector"; + targetProxy = 1818CAC700E350A246DD8A1AD3C332F3 /* PBXContainerItemProxy */; }; - 9C1FA1598D376386D6CD15F13B05F844 /* PBXTargetDependency */ = { + C387DF4A58B28C4DA207FB0AD9E42348 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXUpdates; - targetProxy = E6029B48C29AAF21C67710BD18B592A9 /* PBXContainerItemProxy */; + name = EXSharing; + targetProxy = 299C7D8FCEEE584A590BCFE9CBC14FBF /* PBXContainerItemProxy */; }; - 9F74AAB317F546683493B1AA32B41061 /* PBXTargetDependency */ = { + C46368AB770EF37967821926E021655B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = ZXingObjC; - targetProxy = 10F882494F1E53F051D53F1647C0F700 /* PBXContainerItemProxy */; + name = EXContacts; + targetProxy = 2C46490A97F4F656FDE29AFC58990241 /* PBXContainerItemProxy */; }; - A72A154D15AD1504DEE8CE49645A6D8E /* PBXTargetDependency */ = { + C73F214F338AF6934EC8B8210F1E4518 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXWebBrowser; - targetProxy = BA9CC7508F551A390E71FA7366A4BB7B /* PBXContainerItemProxy */; + name = EXFont; + targetProxy = CAF99F2177FE1B7C7F23798B15E0A5A7 /* PBXContainerItemProxy */; }; - A9CF24640E6BAC3911BFD39EC8991A9B /* PBXTargetDependency */ = { + C848DF48C5C46DCEE964DB9F7110C0CA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "react-native-safe-area-context"; - targetProxy = 64A6C9CE2FB3DF3B12C572FCB9448BD0 /* PBXContainerItemProxy */; + name = UMPermissionsInterface; + targetProxy = 30088EFDAAB1E9DE2384E33382C74BDE /* PBXContainerItemProxy */; }; - AB63AA75C19598CA9C832401B5B9B047 /* PBXTargetDependency */ = { + C996CD5E48EBD344EBD3F9B7EBFF161E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTSettings"; - targetProxy = F891AEC19213E84B0E931017A9DD68A3 /* PBXContainerItemProxy */; + name = UMFontInterface; + targetProxy = 496ADDE86A2DCEA1811894FEDE15246A /* PBXContainerItemProxy */; }; - ADB4BFD566AFDD1299060706572125FE /* PBXTargetDependency */ = { + CA003B374ECABE4FCC0797795E0D7A24 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-jsinspector"; - targetProxy = 01523E2DE8178E06D1C82D6E3664203C /* PBXContainerItemProxy */; + name = GTMAppAuth; + targetProxy = A45DAF1200969FEA0AAE45BA94FBE32D /* PBXContainerItemProxy */; }; - AF61AC42B51AAD8083082E9E97A532D6 /* PBXTargetDependency */ = { + CB630A8A25286F4E88724177E5CA654A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXGoogleSignIn; - targetProxy = EB26241BADD0FC63FCBA5916C92149FB /* PBXContainerItemProxy */; + name = "React-jsi"; + targetProxy = 0465DF8591EAA0DA3C033AC54D14FF18 /* PBXContainerItemProxy */; }; - B48E006DA8F8AAD53D57E6AFE04AFD17 /* PBXTargetDependency */ = { + CC4024177BE3EF3FE61A9A3B3C018F1E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Folly; - targetProxy = 4FE18B2D19C547E0FF873FCE071D4A0D /* PBXContainerItemProxy */; + name = EXConstants; + targetProxy = 3A3442214292971BCE3FB68A3F07763B /* PBXContainerItemProxy */; }; - B74039FCB994BF9585D0D4215D0875C8 /* PBXTargetDependency */ = { + CC8E5348F1E30D61CA0DCA945DD4F365 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = EXSegment; - targetProxy = 54275ED60E349E7388A578FD6CAC77C9 /* PBXContainerItemProxy */; + targetProxy = D27C7DF1BFAE9F9C2D7274FCF3D08D5F /* PBXContainerItemProxy */; }; - BC84B0B805D0DF23F0B5D1160056B9A8 /* PBXTargetDependency */ = { + D1BF93DBD12BD38D63F3C1834F35A85D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSQLite; - targetProxy = 748CA12AEE04BEF5A766A071E198A2F3 /* PBXContainerItemProxy */; + name = RNReanimated; + targetProxy = 7582E2C1BD5F25FFE26C1115879B20E1 /* PBXContainerItemProxy */; }; - BEC0646C92263C5E750B29FD6901140F /* PBXTargetDependency */ = { + D1C4ACAFAA72572F8F61F24DA1BBB93D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTText"; - targetProxy = C58FA3752529C35AD98AF55942791482 /* PBXContainerItemProxy */; + name = Analytics; + targetProxy = CB6007B65E78188B3DBC7B7B0B53EE7C /* PBXContainerItemProxy */; }; - BF03A3699E84F70F58A4C068CE723367 /* PBXTargetDependency */ = { + D2B61A644452D29E76D78C61565A3682 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXPermissions; - targetProxy = 0DE728E47B2336653C2DCDC120B4DBEF /* PBXContainerItemProxy */; + name = EXLocalAuthentication; + targetProxy = 4ADB525BF5F77FDD2CEEF68E2C4F36C3 /* PBXContainerItemProxy */; }; - C2ECFA6910CED7EFD2A5A498D869E980 /* PBXTargetDependency */ = { + D4AE12762722C68043841E0A82895AB1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = RCTTypeSafety; - targetProxy = BF01986E6376555F8A81956D27CEE244 /* PBXContainerItemProxy */; + name = React; + targetProxy = 227262230BCEBE33778709618CB70E9B /* PBXContainerItemProxy */; }; - C3C71EE9BA9918D7266A6FFBE2175E03 /* PBXTargetDependency */ = { + D8085D697FDF15F9ACD35A8F667C1335 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTVibration"; - targetProxy = 284686AE181AFB3CF7D3966FEBB9063D /* PBXContainerItemProxy */; + name = UMConstantsInterface; + targetProxy = EF8186F7500A8E201AC45D09194C7997 /* PBXContainerItemProxy */; }; - C3DC6DBE2445FFE60812CAC637B5864A /* PBXTargetDependency */ = { + D8B65332F6F04283C4A524E41A644C7E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = GoogleSignIn; - targetProxy = EC0BE966E103A871BD282F4BEAD88408 /* PBXContainerItemProxy */; + name = "React-RCTImage"; + targetProxy = 6FD2484E117822D91CEF929D743CB84F /* PBXContainerItemProxy */; }; - C7AE23F84AE918C528379534C668DCE0 /* PBXTargetDependency */ = { + D99886342357C6B0C1EC9E10BD60A6CA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXMediaLibrary; - targetProxy = 838268DE1B4CA8F37523351A20B732E7 /* PBXContainerItemProxy */; + name = "Pods-BareExpo"; + target = C616BB9F650D110E835D02A3250F302E /* Pods-BareExpo */; + targetProxy = 70227CF8F6B2D08A40EC88165F2BAEE8 /* PBXContainerItemProxy */; }; - CB54F2A88C91D4157C8371E3352C28DB /* PBXTargetDependency */ = { + D9D6522A7F9C1E1C6F2DD5914631FAA9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "boost-for-react-native"; - targetProxy = 4D5B404E23A828F7AA99BBBA54EFDA9B /* PBXContainerItemProxy */; + name = EXGL; + targetProxy = A7F2BAC3294F187AAFAFAC16F66D2F77 /* PBXContainerItemProxy */; }; - CB74FAEC6179ED8E6DA650BC436B0217 /* PBXTargetDependency */ = { + E1C4A34F07DB6233F3BF2D2194A30469 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = AppAuth; - targetProxy = A58BD843AD668DFD173903AEB86893D7 /* PBXContainerItemProxy */; + name = EXBattery; + targetProxy = 8339A31787E72B0335048723E34B17A0 /* PBXContainerItemProxy */; }; - CC0B2B3947F5D1DB5CCBEC92CDE90B59 /* PBXTargetDependency */ = { + E50E2CACBAD5824E8F506F867D29E7F9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXConstants; - targetProxy = 275C89C48B89E482C6C0A093E8672536 /* PBXContainerItemProxy */; + name = EXImagePicker; + targetProxy = 22549EA770513D61589580CBFFB1E807 /* PBXContainerItemProxy */; }; - CFEB7B078D667D898DCC8EEEF1FC5C82 /* PBXTargetDependency */ = { + E8551290A5DA862706D76E9756856FAF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXBrightness; - targetProxy = 603B6A8FFFCAC287D8B39746D674B792 /* PBXContainerItemProxy */; + name = "React-RCTVibration"; + targetProxy = 238E361F058A96459D5F16A251E0920F /* PBXContainerItemProxy */; }; - D13E8EC0261A514C204BE1AF5FCE1A71 /* PBXTargetDependency */ = { + E95C2A53C42B0C4B2A3DD8ED22515054 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXErrorRecovery; - targetProxy = 8B6BE6262BA49516FE8E6F4D75224DD0 /* PBXContainerItemProxy */; + name = EXCellular; + targetProxy = 1090EB79679288E70162A4CE7209B308 /* PBXContainerItemProxy */; }; - D95A8BE51BA7A624286CB26082A825D7 /* PBXTargetDependency */ = { + EA540322798F361FD75AB353A1C9E425 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXImageManipulator; - targetProxy = 1CD7699E779B7207306C3A18AE7958E9 /* PBXContainerItemProxy */; + name = EXBarCodeScanner; + targetProxy = 0DC15D8582D6A9B17EA3D24BF2A5F567 /* PBXContainerItemProxy */; }; - D99886342357C6B0C1EC9E10BD60A6CA /* PBXTargetDependency */ = { + EDDEA0F9453E294ED1F1FA31E51F40F6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-BareExpo"; - target = C616BB9F650D110E835D02A3250F302E /* Pods-BareExpo */; - targetProxy = 70227CF8F6B2D08A40EC88165F2BAEE8 /* PBXContainerItemProxy */; + name = "React-jsiexecutor"; + targetProxy = BF42B9CC2019D0F91470CE826F220F28 /* PBXContainerItemProxy */; }; - DC62D20C43EFDA514ADDD1CA3E5A3612 /* PBXTargetDependency */ = { + EF8F66AA6D6C124FA84615C4FC2FE394 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMReactNativeAdapter; - targetProxy = 326C844A787822153322EEB5212C6F27 /* PBXContainerItemProxy */; + name = EXSpeech; + targetProxy = 1A08C035C5D4A09AC05CCB509F8F6D9F /* PBXContainerItemProxy */; }; - E69875FB639872DAE546EF4B38A99FFC /* PBXTargetDependency */ = { + F011689EA3A1147252210457C97FA573 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXApplication; - targetProxy = 3E4F5A1B13CBDC95AFB48D68224FBDEA /* PBXContainerItemProxy */; + name = EXBlur; + targetProxy = B22CA872137DE382F4D19A1808237607 /* PBXContainerItemProxy */; }; - EAFDA9B9134F1DF606BD4C18A97A874A /* PBXTargetDependency */ = { + F1F886C878767FC61B02C70AFED07CAE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXFont; - targetProxy = A8B0AE310D7DFFEE773B7F31A8FC8DC7 /* PBXContainerItemProxy */; + name = glog; + targetProxy = 586B05268C91474689F61A15ED902913 /* PBXContainerItemProxy */; }; - EB510BB4F1A396F8FBC810E5DE644C4A /* PBXTargetDependency */ = { + F37D811CFA93B6AE8DED6C44168D5F40 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXAppAuth; - targetProxy = 9C3E3E2A9F7E24D3111FB14B5EE4B00D /* PBXContainerItemProxy */; + name = EXHaptics; + targetProxy = CC0A1C43A4C49CE5036AF9D65AE0A094 /* PBXContainerItemProxy */; }; - EFDD1908CE86282341ED19473B7AE71C /* PBXTargetDependency */ = { + F4B4B447B2FCD3B2D60B4FAEBC041A1A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMConstantsInterface; - targetProxy = B3B22FDA90847B607B6AB701065D65BE /* PBXContainerItemProxy */; + name = "React-RCTLinking"; + targetProxy = 1C05065DBB3562956F366E93DDEBF6E4 /* PBXContainerItemProxy */; }; - F0DEEDCF04A5A943D216CA78725B1A59 /* PBXTargetDependency */ = { + F4D8474538222F1E4389329EA94E9A58 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMPermissionsInterface; - targetProxy = F5B574F9DB6077B85805505D38AC81FA /* PBXContainerItemProxy */; + name = EXLinearGradient; + targetProxy = BC67C44FE17DD6A19F9E8B7CA1B8C21C /* PBXContainerItemProxy */; }; - F67EDF6A0F61A98853459D1B6B6F30CB /* PBXTargetDependency */ = { + F66B89EB7E24031640FD65D48062E982 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTLinking"; - targetProxy = 179551060FF9EA6024A9C9F7CEF0B4BA /* PBXContainerItemProxy */; + name = EXStoreReview; + targetProxy = FF9E7C648C79FC370E36E22D87203385 /* PBXContainerItemProxy */; }; - FB8B0A16B9643FB2D121C43BE8B77BCE /* PBXTargetDependency */ = { + F906514B0D6BCE2CBA379DD64D057DCA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "React-RCTAnimation"; - targetProxy = B3DFA936118F40EC72787C517C5197ED /* PBXContainerItemProxy */; + name = EXDocumentPicker; + targetProxy = 5E64C90BB3D6B2D2266FA06EF57FEDE3 /* PBXContainerItemProxy */; }; - FC734C17AB4E1E840D10ADA1901A3113 /* PBXTargetDependency */ = { + FAB2907B370386C8A8D74F88C0AC18CD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = EXSensors; - targetProxy = 6D82ECC6C79E6BD8C4D55A0CF63A4D21 /* PBXContainerItemProxy */; + name = GTMSessionFetcher; + targetProxy = AAFC45B81AD9B7003B656D494849C5BC /* PBXContainerItemProxy */; }; - FFF415525CCA9E6451D7DC64BF8E9558 /* PBXTargetDependency */ = { + FEA444976F0D70F22B23ABC76FB5ABCF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = UMSensorsInterface; - targetProxy = E49E09ABFFD95C08AE12CE1C82C5B1C2 /* PBXContainerItemProxy */; + name = Folly; + targetProxy = 436B61B79E4477585A4EDB1DDA6D1502 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 186C5EE56BC105165FB5B73F0A23654C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C42944AE78D3C85AE9277FE320D54C35 /* Pods-BareExpo.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - MACH_O_TYPE = staticlib; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; 196DFA3E4A09A28224918543529A1885 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1991,6 +1986,29 @@ }; name = Debug; }; + 34C6D7723CE1A4F8E9221BA053103146 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C42944AE78D3C85AE9277FE320D54C35 /* Pods-BareExpo.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; 6252BAC8F776E655D51C48A49BF6EFB2 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0B584D0632E15581F96D24B9C3B042D7 /* Pods-BareExpoTests.release.xcconfig */; @@ -2014,6 +2032,28 @@ }; name = Release; }; + ABF374522C8F86ACD391A735DEFDAE88 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6D02C945BC67559AFEB7B446AD8A35E6 /* Pods-BareExpo.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2096,45 +2136,23 @@ }; name = Debug; }; - F68AA0ABC81AD6B6A5764E8A14B679A8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6D02C945BC67559AFEB7B446AD8A35E6 /* Pods-BareExpo.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - MACH_O_TYPE = staticlib; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 19B0920102FB081C56D8699A0F9D676E /* Build configuration list for PBXNativeTarget "Pods-BareExpo" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - F68AA0ABC81AD6B6A5764E8A14B679A8 /* Debug */, - 186C5EE56BC105165FB5B73F0A23654C /* Release */, + 196DFA3E4A09A28224918543529A1885 /* Debug */, + B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + A832C04A5E806A099A7BB7DE00106985 /* Build configuration list for PBXNativeTarget "Pods-BareExpo" */ = { isa = XCConfigurationList; buildConfigurations = ( - 196DFA3E4A09A28224918543529A1885 /* Debug */, - B01D14FDC83DCF9D4BE53066BEA96D05 /* Release */, + ABF374522C8F86ACD391A735DEFDAE88 /* Debug */, + 34C6D7723CE1A4F8E9221BA053103146 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-dummy.m b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-dummy.m new file mode 100644 index 0000000000000..08241e6161207 --- /dev/null +++ b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_EXNotifications : NSObject +@end +@implementation PodsDummy_EXNotifications +@end diff --git a/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-prefix.pch b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-prefix.pch new file mode 100644 index 0000000000000..beb2a2441835a --- /dev/null +++ b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications.xcconfig b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications.xcconfig new file mode 100644 index 0000000000000..ccffcfd1675ec --- /dev/null +++ b/apps/bare-expo/ios/Pods/Target Support Files/EXNotifications/EXNotifications.xcconfig @@ -0,0 +1,10 @@ +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EXNotifications" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EXNotifications" "${PODS_ROOT}/Headers/Public/UMCore" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../../packages/expo-notifications/ios +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.debug.xcconfig b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.debug.xcconfig index 323d5db107207..e22d98e458a6f 100644 --- a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.debug.xcconfig +++ b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.debug.xcconfig @@ -1,9 +1,9 @@ FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleSignIn/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_ONED ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_PDF417 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" -LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Amplitude-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/Analytics" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAmplitude" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXApplication" "${PODS_CONFIGURATION_BUILD_DIR}/EXBarCodeScanner" "${PODS_CONFIGURATION_BUILD_DIR}/EXBattery" "${PODS_CONFIGURATION_BUILD_DIR}/EXBluetooth" "${PODS_CONFIGURATION_BUILD_DIR}/EXBlur" "${PODS_CONFIGURATION_BUILD_DIR}/EXBrightness" "${PODS_CONFIGURATION_BUILD_DIR}/EXCalendar" "${PODS_CONFIGURATION_BUILD_DIR}/EXCellular" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXContacts" "${PODS_CONFIGURATION_BUILD_DIR}/EXCrypto" "${PODS_CONFIGURATION_BUILD_DIR}/EXDevice" "${PODS_CONFIGURATION_BUILD_DIR}/EXDocumentPicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXErrorRecovery" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXFont" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL_CPP" "${PODS_CONFIGURATION_BUILD_DIR}/EXGoogleSignIn" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageManipulator" "${PODS_CONFIGURATION_BUILD_DIR}/EXImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLinearGradient" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/EXMailComposer" "${PODS_CONFIGURATION_BUILD_DIR}/EXMediaLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/EXNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXPrint" "${PODS_CONFIGURATION_BUILD_DIR}/EXRandom" "${PODS_CONFIGURATION_BUILD_DIR}/EXSMS" "${PODS_CONFIGURATION_BUILD_DIR}/EXSQLite" "${PODS_CONFIGURATION_BUILD_DIR}/EXSecureStore" "${PODS_CONFIGURATION_BUILD_DIR}/EXSegment" "${PODS_CONFIGURATION_BUILD_DIR}/EXSensors" "${PODS_CONFIGURATION_BUILD_DIR}/EXSharing" "${PODS_CONFIGURATION_BUILD_DIR}/EXSpeech" "${PODS_CONFIGURATION_BUILD_DIR}/EXStoreReview" "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/ZXingObjC" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXNotifications" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Amplitude-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/Analytics" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAmplitude" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXApplication" "${PODS_CONFIGURATION_BUILD_DIR}/EXBarCodeScanner" "${PODS_CONFIGURATION_BUILD_DIR}/EXBattery" "${PODS_CONFIGURATION_BUILD_DIR}/EXBluetooth" "${PODS_CONFIGURATION_BUILD_DIR}/EXBlur" "${PODS_CONFIGURATION_BUILD_DIR}/EXBrightness" "${PODS_CONFIGURATION_BUILD_DIR}/EXCalendar" "${PODS_CONFIGURATION_BUILD_DIR}/EXCellular" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXContacts" "${PODS_CONFIGURATION_BUILD_DIR}/EXCrypto" "${PODS_CONFIGURATION_BUILD_DIR}/EXDevice" "${PODS_CONFIGURATION_BUILD_DIR}/EXDocumentPicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXErrorRecovery" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXFont" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL_CPP" "${PODS_CONFIGURATION_BUILD_DIR}/EXGoogleSignIn" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageManipulator" "${PODS_CONFIGURATION_BUILD_DIR}/EXImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLinearGradient" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/EXMailComposer" "${PODS_CONFIGURATION_BUILD_DIR}/EXMediaLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/EXNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXPrint" "${PODS_CONFIGURATION_BUILD_DIR}/EXRandom" "${PODS_CONFIGURATION_BUILD_DIR}/EXSMS" "${PODS_CONFIGURATION_BUILD_DIR}/EXSQLite" "${PODS_CONFIGURATION_BUILD_DIR}/EXSecureStore" "${PODS_CONFIGURATION_BUILD_DIR}/EXSegment" "${PODS_CONFIGURATION_BUILD_DIR}/EXSensors" "${PODS_CONFIGURATION_BUILD_DIR}/EXSharing" "${PODS_CONFIGURATION_BUILD_DIR}/EXSpeech" "${PODS_CONFIGURATION_BUILD_DIR}/EXStoreReview" "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/ZXingObjC" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context" OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Amplitude-iOS" -isystem "${PODS_ROOT}/Headers/Public/Analytics" -isystem "${PODS_ROOT}/Headers/Public/AppAuth" -isystem "${PODS_ROOT}/Headers/Public/DoubleConversion" -isystem "${PODS_ROOT}/Headers/Public/FBLazyVector" -isystem "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" -isystem "${PODS_ROOT}/Headers/Public/RCTRequired" -isystem "${PODS_ROOT}/Headers/Public/RCTTypeSafety" -isystem "${PODS_ROOT}/Headers/Public/React-Core" -isystem "${PODS_ROOT}/Headers/Public/React-cxxreact" -isystem "${PODS_ROOT}/Headers/Public/React-jsi" -isystem "${PODS_ROOT}/Headers/Public/React-jsiexecutor" -isystem "${PODS_ROOT}/Headers/Public/React-jsinspector" -isystem "${PODS_ROOT}/Headers/Public/ReactCommon" -isystem "${PODS_ROOT}/Headers/Public/Yoga" -isystem "${PODS_ROOT}/Headers/Public/glog" -isystem "${PODS_ROOT}/Headers/Public/GTMAppAuth" -isystem "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" -isystem "${PODS_ROOT}/Headers/Public/RNGestureHandler" -isystem "${PODS_ROOT}/Headers/Public/React-RCTBlob" -isystem "${PODS_ROOT}/Headers/Public/React-RCTText" -isystem "${PODS_ROOT}/Headers/Public/RNReanimated" -isystem "${PODS_ROOT}/Headers/Public/ZXingObjC" -isystem "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" -iframework "${PODS_ROOT}/GoogleSignIn/Frameworks" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Amplitude-iOS" -l"Analytics" -l"AppAuth" -l"DoubleConversion" -l"EXAV" -l"EXAmplitude" -l"EXAppAuth" -l"EXAppLoaderProvider" -l"EXApplication" -l"EXBarCodeScanner" -l"EXBattery" -l"EXBluetooth" -l"EXBlur" -l"EXBrightness" -l"EXCalendar" -l"EXCellular" -l"EXConstants" -l"EXContacts" -l"EXCrypto" -l"EXDevice" -l"EXDocumentPicker" -l"EXErrorRecovery" -l"EXFileSystem" -l"EXFont" -l"EXGL" -l"EXGL_CPP" -l"EXGoogleSignIn" -l"EXHaptics" -l"EXImageManipulator" -l"EXImagePicker" -l"EXKeepAwake" -l"EXLinearGradient" -l"EXLocalAuthentication" -l"EXLocalization" -l"EXMailComposer" -l"EXMediaLibrary" -l"EXNetwork" -l"EXPermissions" -l"EXPrint" -l"EXRandom" -l"EXSMS" -l"EXSQLite" -l"EXSecureStore" -l"EXSegment" -l"EXSensors" -l"EXSharing" -l"EXSpeech" -l"EXStoreReview" -l"EXUpdates" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"Folly" -l"GTMAppAuth" -l"GTMSessionFetcher" -l"RCTTypeSafety" -l"RNGestureHandler" -l"RNReanimated" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"ZXingObjC" -l"glog" -l"react-native-safe-area-context" -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "GoogleSignIn" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AuthenticationServices" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Amplitude-iOS" -l"Analytics" -l"AppAuth" -l"DoubleConversion" -l"EXAV" -l"EXAmplitude" -l"EXAppAuth" -l"EXAppLoaderProvider" -l"EXApplication" -l"EXBarCodeScanner" -l"EXBattery" -l"EXBluetooth" -l"EXBlur" -l"EXBrightness" -l"EXCalendar" -l"EXCellular" -l"EXConstants" -l"EXContacts" -l"EXCrypto" -l"EXDevice" -l"EXDocumentPicker" -l"EXErrorRecovery" -l"EXFileSystem" -l"EXFont" -l"EXGL" -l"EXGL_CPP" -l"EXGoogleSignIn" -l"EXHaptics" -l"EXImageManipulator" -l"EXImagePicker" -l"EXKeepAwake" -l"EXLinearGradient" -l"EXLocalAuthentication" -l"EXLocalization" -l"EXMailComposer" -l"EXMediaLibrary" -l"EXNetwork" -l"EXNotifications" -l"EXPermissions" -l"EXPrint" -l"EXRandom" -l"EXSMS" -l"EXSQLite" -l"EXSecureStore" -l"EXSegment" -l"EXSensors" -l"EXSharing" -l"EXSpeech" -l"EXStoreReview" -l"EXUpdates" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"Folly" -l"GTMAppAuth" -l"GTMSessionFetcher" -l"RCTTypeSafety" -l"RNGestureHandler" -l"RNReanimated" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"ZXingObjC" -l"glog" -l"react-native-safe-area-context" -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "GoogleSignIn" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AuthenticationServices" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.release.xcconfig b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.release.xcconfig index 323d5db107207..e22d98e458a6f 100644 --- a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.release.xcconfig +++ b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpo/Pods-BareExpo.release.xcconfig @@ -1,9 +1,9 @@ FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleSignIn/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_ONED ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_PDF417 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" -LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Amplitude-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/Analytics" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAmplitude" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXApplication" "${PODS_CONFIGURATION_BUILD_DIR}/EXBarCodeScanner" "${PODS_CONFIGURATION_BUILD_DIR}/EXBattery" "${PODS_CONFIGURATION_BUILD_DIR}/EXBluetooth" "${PODS_CONFIGURATION_BUILD_DIR}/EXBlur" "${PODS_CONFIGURATION_BUILD_DIR}/EXBrightness" "${PODS_CONFIGURATION_BUILD_DIR}/EXCalendar" "${PODS_CONFIGURATION_BUILD_DIR}/EXCellular" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXContacts" "${PODS_CONFIGURATION_BUILD_DIR}/EXCrypto" "${PODS_CONFIGURATION_BUILD_DIR}/EXDevice" "${PODS_CONFIGURATION_BUILD_DIR}/EXDocumentPicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXErrorRecovery" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXFont" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL_CPP" "${PODS_CONFIGURATION_BUILD_DIR}/EXGoogleSignIn" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageManipulator" "${PODS_CONFIGURATION_BUILD_DIR}/EXImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLinearGradient" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/EXMailComposer" "${PODS_CONFIGURATION_BUILD_DIR}/EXMediaLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/EXNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXPrint" "${PODS_CONFIGURATION_BUILD_DIR}/EXRandom" "${PODS_CONFIGURATION_BUILD_DIR}/EXSMS" "${PODS_CONFIGURATION_BUILD_DIR}/EXSQLite" "${PODS_CONFIGURATION_BUILD_DIR}/EXSecureStore" "${PODS_CONFIGURATION_BUILD_DIR}/EXSegment" "${PODS_CONFIGURATION_BUILD_DIR}/EXSensors" "${PODS_CONFIGURATION_BUILD_DIR}/EXSharing" "${PODS_CONFIGURATION_BUILD_DIR}/EXSpeech" "${PODS_CONFIGURATION_BUILD_DIR}/EXStoreReview" "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/ZXingObjC" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXNotifications" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Amplitude-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/Analytics" "${PODS_CONFIGURATION_BUILD_DIR}/AppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/DoubleConversion" "${PODS_CONFIGURATION_BUILD_DIR}/EXAV" "${PODS_CONFIGURATION_BUILD_DIR}/EXAmplitude" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/EXAppLoaderProvider" "${PODS_CONFIGURATION_BUILD_DIR}/EXApplication" "${PODS_CONFIGURATION_BUILD_DIR}/EXBarCodeScanner" "${PODS_CONFIGURATION_BUILD_DIR}/EXBattery" "${PODS_CONFIGURATION_BUILD_DIR}/EXBluetooth" "${PODS_CONFIGURATION_BUILD_DIR}/EXBlur" "${PODS_CONFIGURATION_BUILD_DIR}/EXBrightness" "${PODS_CONFIGURATION_BUILD_DIR}/EXCalendar" "${PODS_CONFIGURATION_BUILD_DIR}/EXCellular" "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants" "${PODS_CONFIGURATION_BUILD_DIR}/EXContacts" "${PODS_CONFIGURATION_BUILD_DIR}/EXCrypto" "${PODS_CONFIGURATION_BUILD_DIR}/EXDevice" "${PODS_CONFIGURATION_BUILD_DIR}/EXDocumentPicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXErrorRecovery" "${PODS_CONFIGURATION_BUILD_DIR}/EXFileSystem" "${PODS_CONFIGURATION_BUILD_DIR}/EXFont" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL" "${PODS_CONFIGURATION_BUILD_DIR}/EXGL_CPP" "${PODS_CONFIGURATION_BUILD_DIR}/EXGoogleSignIn" "${PODS_CONFIGURATION_BUILD_DIR}/EXHaptics" "${PODS_CONFIGURATION_BUILD_DIR}/EXImageManipulator" "${PODS_CONFIGURATION_BUILD_DIR}/EXImagePicker" "${PODS_CONFIGURATION_BUILD_DIR}/EXKeepAwake" "${PODS_CONFIGURATION_BUILD_DIR}/EXLinearGradient" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalAuthentication" "${PODS_CONFIGURATION_BUILD_DIR}/EXLocalization" "${PODS_CONFIGURATION_BUILD_DIR}/EXMailComposer" "${PODS_CONFIGURATION_BUILD_DIR}/EXMediaLibrary" "${PODS_CONFIGURATION_BUILD_DIR}/EXNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/EXNotifications" "${PODS_CONFIGURATION_BUILD_DIR}/EXPermissions" "${PODS_CONFIGURATION_BUILD_DIR}/EXPrint" "${PODS_CONFIGURATION_BUILD_DIR}/EXRandom" "${PODS_CONFIGURATION_BUILD_DIR}/EXSMS" "${PODS_CONFIGURATION_BUILD_DIR}/EXSQLite" "${PODS_CONFIGURATION_BUILD_DIR}/EXSecureStore" "${PODS_CONFIGURATION_BUILD_DIR}/EXSegment" "${PODS_CONFIGURATION_BUILD_DIR}/EXSensors" "${PODS_CONFIGURATION_BUILD_DIR}/EXSharing" "${PODS_CONFIGURATION_BUILD_DIR}/EXSpeech" "${PODS_CONFIGURATION_BUILD_DIR}/EXStoreReview" "${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates" "${PODS_CONFIGURATION_BUILD_DIR}/EXWebBrowser" "${PODS_CONFIGURATION_BUILD_DIR}/FBReactNativeSpec" "${PODS_CONFIGURATION_BUILD_DIR}/Folly" "${PODS_CONFIGURATION_BUILD_DIR}/GTMAppAuth" "${PODS_CONFIGURATION_BUILD_DIR}/GTMSessionFetcher" "${PODS_CONFIGURATION_BUILD_DIR}/RCTTypeSafety" "${PODS_CONFIGURATION_BUILD_DIR}/RNGestureHandler" "${PODS_CONFIGURATION_BUILD_DIR}/RNReanimated" "${PODS_CONFIGURATION_BUILD_DIR}/React-Core" "${PODS_CONFIGURATION_BUILD_DIR}/React-CoreModules" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTActionSheet" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTAnimation" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTBlob" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTImage" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTLinking" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTNetwork" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTSettings" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTText" "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTVibration" "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsi" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsiexecutor" "${PODS_CONFIGURATION_BUILD_DIR}/React-jsinspector" "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon" "${PODS_CONFIGURATION_BUILD_DIR}/UMCore" "${PODS_CONFIGURATION_BUILD_DIR}/UMPermissionsInterface" "${PODS_CONFIGURATION_BUILD_DIR}/UMReactNativeAdapter" "${PODS_CONFIGURATION_BUILD_DIR}/Yoga" "${PODS_CONFIGURATION_BUILD_DIR}/ZXingObjC" "${PODS_CONFIGURATION_BUILD_DIR}/glog" "${PODS_CONFIGURATION_BUILD_DIR}/react-native-safe-area-context" OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Amplitude-iOS" -isystem "${PODS_ROOT}/Headers/Public/Analytics" -isystem "${PODS_ROOT}/Headers/Public/AppAuth" -isystem "${PODS_ROOT}/Headers/Public/DoubleConversion" -isystem "${PODS_ROOT}/Headers/Public/FBLazyVector" -isystem "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" -isystem "${PODS_ROOT}/Headers/Public/RCTRequired" -isystem "${PODS_ROOT}/Headers/Public/RCTTypeSafety" -isystem "${PODS_ROOT}/Headers/Public/React-Core" -isystem "${PODS_ROOT}/Headers/Public/React-cxxreact" -isystem "${PODS_ROOT}/Headers/Public/React-jsi" -isystem "${PODS_ROOT}/Headers/Public/React-jsiexecutor" -isystem "${PODS_ROOT}/Headers/Public/React-jsinspector" -isystem "${PODS_ROOT}/Headers/Public/ReactCommon" -isystem "${PODS_ROOT}/Headers/Public/Yoga" -isystem "${PODS_ROOT}/Headers/Public/glog" -isystem "${PODS_ROOT}/Headers/Public/GTMAppAuth" -isystem "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" -isystem "${PODS_ROOT}/Headers/Public/RNGestureHandler" -isystem "${PODS_ROOT}/Headers/Public/React-RCTBlob" -isystem "${PODS_ROOT}/Headers/Public/React-RCTText" -isystem "${PODS_ROOT}/Headers/Public/RNReanimated" -isystem "${PODS_ROOT}/Headers/Public/ZXingObjC" -isystem "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" -iframework "${PODS_ROOT}/GoogleSignIn/Frameworks" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Amplitude-iOS" -l"Analytics" -l"AppAuth" -l"DoubleConversion" -l"EXAV" -l"EXAmplitude" -l"EXAppAuth" -l"EXAppLoaderProvider" -l"EXApplication" -l"EXBarCodeScanner" -l"EXBattery" -l"EXBluetooth" -l"EXBlur" -l"EXBrightness" -l"EXCalendar" -l"EXCellular" -l"EXConstants" -l"EXContacts" -l"EXCrypto" -l"EXDevice" -l"EXDocumentPicker" -l"EXErrorRecovery" -l"EXFileSystem" -l"EXFont" -l"EXGL" -l"EXGL_CPP" -l"EXGoogleSignIn" -l"EXHaptics" -l"EXImageManipulator" -l"EXImagePicker" -l"EXKeepAwake" -l"EXLinearGradient" -l"EXLocalAuthentication" -l"EXLocalization" -l"EXMailComposer" -l"EXMediaLibrary" -l"EXNetwork" -l"EXPermissions" -l"EXPrint" -l"EXRandom" -l"EXSMS" -l"EXSQLite" -l"EXSecureStore" -l"EXSegment" -l"EXSensors" -l"EXSharing" -l"EXSpeech" -l"EXStoreReview" -l"EXUpdates" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"Folly" -l"GTMAppAuth" -l"GTMSessionFetcher" -l"RCTTypeSafety" -l"RNGestureHandler" -l"RNReanimated" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"ZXingObjC" -l"glog" -l"react-native-safe-area-context" -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "GoogleSignIn" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AuthenticationServices" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Amplitude-iOS" -l"Analytics" -l"AppAuth" -l"DoubleConversion" -l"EXAV" -l"EXAmplitude" -l"EXAppAuth" -l"EXAppLoaderProvider" -l"EXApplication" -l"EXBarCodeScanner" -l"EXBattery" -l"EXBluetooth" -l"EXBlur" -l"EXBrightness" -l"EXCalendar" -l"EXCellular" -l"EXConstants" -l"EXContacts" -l"EXCrypto" -l"EXDevice" -l"EXDocumentPicker" -l"EXErrorRecovery" -l"EXFileSystem" -l"EXFont" -l"EXGL" -l"EXGL_CPP" -l"EXGoogleSignIn" -l"EXHaptics" -l"EXImageManipulator" -l"EXImagePicker" -l"EXKeepAwake" -l"EXLinearGradient" -l"EXLocalAuthentication" -l"EXLocalization" -l"EXMailComposer" -l"EXMediaLibrary" -l"EXNetwork" -l"EXNotifications" -l"EXPermissions" -l"EXPrint" -l"EXRandom" -l"EXSMS" -l"EXSQLite" -l"EXSecureStore" -l"EXSegment" -l"EXSensors" -l"EXSharing" -l"EXSpeech" -l"EXStoreReview" -l"EXUpdates" -l"EXWebBrowser" -l"FBReactNativeSpec" -l"Folly" -l"GTMAppAuth" -l"GTMSessionFetcher" -l"RCTTypeSafety" -l"RNGestureHandler" -l"RNReanimated" -l"React-Core" -l"React-CoreModules" -l"React-RCTActionSheet" -l"React-RCTAnimation" -l"React-RCTBlob" -l"React-RCTImage" -l"React-RCTLinking" -l"React-RCTNetwork" -l"React-RCTSettings" -l"React-RCTText" -l"React-RCTVibration" -l"React-cxxreact" -l"React-jsi" -l"React-jsiexecutor" -l"React-jsinspector" -l"ReactCommon" -l"UMCore" -l"UMPermissionsInterface" -l"UMReactNativeAdapter" -l"Yoga" -l"ZXingObjC" -l"glog" -l"react-native-safe-area-context" -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "GoogleSignIn" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AuthenticationServices" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.debug.xcconfig b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.debug.xcconfig index 72fa95c67ecc7..1f48d1cd49dde 100644 --- a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.debug.xcconfig +++ b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.debug.xcconfig @@ -1,6 +1,6 @@ FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleSignIn/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_ONED ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_PDF417 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXNotifications" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" OTHER_LDFLAGS = $(inherited) -ObjC -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.release.xcconfig b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.release.xcconfig index 72fa95c67ecc7..1f48d1cd49dde 100644 --- a/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.release.xcconfig +++ b/apps/bare-expo/ios/Pods/Target Support Files/Pods-BareExpoTests/Pods-BareExpoTests.release.xcconfig @@ -1,6 +1,6 @@ FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/GoogleSignIn/Frameworks" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_ONED ZXINGOBJC_USE_SUBSPECS ZXINGOBJC_PDF417 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Amplitude-iOS" "${PODS_ROOT}/Headers/Public/Analytics" "${PODS_ROOT}/Headers/Public/AppAuth" "${PODS_ROOT}/Headers/Public/DoubleConversion" "${PODS_ROOT}/Headers/Public/EXAV" "${PODS_ROOT}/Headers/Public/EXAmplitude" "${PODS_ROOT}/Headers/Public/EXAppAuth" "${PODS_ROOT}/Headers/Public/EXAppLoaderProvider" "${PODS_ROOT}/Headers/Public/EXApplication" "${PODS_ROOT}/Headers/Public/EXBarCodeScanner" "${PODS_ROOT}/Headers/Public/EXBattery" "${PODS_ROOT}/Headers/Public/EXBluetooth" "${PODS_ROOT}/Headers/Public/EXBlur" "${PODS_ROOT}/Headers/Public/EXBrightness" "${PODS_ROOT}/Headers/Public/EXCalendar" "${PODS_ROOT}/Headers/Public/EXCellular" "${PODS_ROOT}/Headers/Public/EXConstants" "${PODS_ROOT}/Headers/Public/EXContacts" "${PODS_ROOT}/Headers/Public/EXCrypto" "${PODS_ROOT}/Headers/Public/EXDevice" "${PODS_ROOT}/Headers/Public/EXDocumentPicker" "${PODS_ROOT}/Headers/Public/EXErrorRecovery" "${PODS_ROOT}/Headers/Public/EXFileSystem" "${PODS_ROOT}/Headers/Public/EXFont" "${PODS_ROOT}/Headers/Public/EXGL" "${PODS_ROOT}/Headers/Public/EXGL_CPP" "${PODS_ROOT}/Headers/Public/EXGoogleSignIn" "${PODS_ROOT}/Headers/Public/EXHaptics" "${PODS_ROOT}/Headers/Public/EXImageManipulator" "${PODS_ROOT}/Headers/Public/EXImagePicker" "${PODS_ROOT}/Headers/Public/EXKeepAwake" "${PODS_ROOT}/Headers/Public/EXLinearGradient" "${PODS_ROOT}/Headers/Public/EXLocalAuthentication" "${PODS_ROOT}/Headers/Public/EXLocalization" "${PODS_ROOT}/Headers/Public/EXMailComposer" "${PODS_ROOT}/Headers/Public/EXMediaLibrary" "${PODS_ROOT}/Headers/Public/EXNetwork" "${PODS_ROOT}/Headers/Public/EXNotifications" "${PODS_ROOT}/Headers/Public/EXPermissions" "${PODS_ROOT}/Headers/Public/EXPrint" "${PODS_ROOT}/Headers/Public/EXRandom" "${PODS_ROOT}/Headers/Public/EXSMS" "${PODS_ROOT}/Headers/Public/EXSQLite" "${PODS_ROOT}/Headers/Public/EXSecureStore" "${PODS_ROOT}/Headers/Public/EXSegment" "${PODS_ROOT}/Headers/Public/EXSensors" "${PODS_ROOT}/Headers/Public/EXSharing" "${PODS_ROOT}/Headers/Public/EXSpeech" "${PODS_ROOT}/Headers/Public/EXStoreReview" "${PODS_ROOT}/Headers/Public/EXUpdates" "${PODS_ROOT}/Headers/Public/EXWebBrowser" "${PODS_ROOT}/Headers/Public/FBLazyVector" "${PODS_ROOT}/Headers/Public/FBReactNativeSpec" "${PODS_ROOT}/Headers/Public/GTMAppAuth" "${PODS_ROOT}/Headers/Public/GTMSessionFetcher" "${PODS_ROOT}/Headers/Public/RCTRequired" "${PODS_ROOT}/Headers/Public/RCTTypeSafety" "${PODS_ROOT}/Headers/Public/RNGestureHandler" "${PODS_ROOT}/Headers/Public/RNReanimated" "${PODS_ROOT}/Headers/Public/React-Core" "${PODS_ROOT}/Headers/Public/React-RCTBlob" "${PODS_ROOT}/Headers/Public/React-RCTText" "${PODS_ROOT}/Headers/Public/React-cxxreact" "${PODS_ROOT}/Headers/Public/React-jsi" "${PODS_ROOT}/Headers/Public/React-jsiexecutor" "${PODS_ROOT}/Headers/Public/React-jsinspector" "${PODS_ROOT}/Headers/Public/ReactCommon" "${PODS_ROOT}/Headers/Public/UMBarCodeScannerInterface" "${PODS_ROOT}/Headers/Public/UMCameraInterface" "${PODS_ROOT}/Headers/Public/UMConstantsInterface" "${PODS_ROOT}/Headers/Public/UMCore" "${PODS_ROOT}/Headers/Public/UMFileSystemInterface" "${PODS_ROOT}/Headers/Public/UMFontInterface" "${PODS_ROOT}/Headers/Public/UMImageLoaderInterface" "${PODS_ROOT}/Headers/Public/UMPermissionsInterface" "${PODS_ROOT}/Headers/Public/UMReactNativeAdapter" "${PODS_ROOT}/Headers/Public/UMSensorsInterface" "${PODS_ROOT}/Headers/Public/Yoga" "${PODS_ROOT}/Headers/Public/ZXingObjC" "${PODS_ROOT}/Headers/Public/glog" "${PODS_ROOT}/Headers/Public/react-native-safe-area-context" "$(PODS_ROOT)/Headers/Private/React-Core" OTHER_LDFLAGS = $(inherited) -ObjC -l"sqlite3.0" -l"stdc++" -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreMedia" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "Foundation" -framework "ImageIO" -framework "JavaScriptCore" -framework "LocalAuthentication" -framework "QuartzCore" -framework "SafariServices" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" -framework "UIKit" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/apps/bare-expo/package.json b/apps/bare-expo/package.json index 0f86c4418d1d6..fc46916e4f1da 100644 --- a/apps/bare-expo/package.json +++ b/apps/bare-expo/package.json @@ -84,6 +84,7 @@ "@babel/runtime": "^7.5.5", "@react-navigation/web": "2.0.0-alpha.0", "expo": "~36.0.0", + "expo-notifications": "~1.0.0", "expo-yarn-workspaces": "^1.2.1", "react": "16.9.0", "react-dom": "16.9.0", diff --git a/apps/test-suite/TestUtils.js b/apps/test-suite/TestUtils.js index f2908f4c28713..d0fed84b1963c 100644 --- a/apps/test-suite/TestUtils.js +++ b/apps/test-suite/TestUtils.js @@ -64,7 +64,8 @@ export function getTestModules() { require('./tests/Localization'), require('./tests/SecureStore'), require('./tests/SMS'), - require('./tests/StoreReview') + require('./tests/StoreReview'), + require('./tests/NewNotifications') ); return modules; } @@ -73,7 +74,8 @@ export function getTestModules() { modules.push( require('./tests/Contacts'), // require('./tests/SVG'), - require('./tests/Localization') + require('./tests/Localization'), + optionalRequire(() => require('./tests/NewNotifications')) ); if (browserSupportsWebGL()) { @@ -102,7 +104,8 @@ export function getTestModules() { optionalRequire(() => require('./tests/Payments')), optionalRequire(() => require('./tests/AdMobInterstitial')), optionalRequire(() => require('./tests/AdMobRewarded')), - optionalRequire(() => require('./tests/FBBannerAd')) + optionalRequire(() => require('./tests/FBBannerAd')), + optionalRequire(() => require('./tests/NewNotifications')) ); if (!isDeviceFarm()) { diff --git a/apps/test-suite/package.json b/apps/test-suite/package.json index 867387170c4b4..62955a098fc94 100644 --- a/apps/test-suite/package.json +++ b/apps/test-suite/package.json @@ -36,6 +36,7 @@ "expo-location": "~8.0.0", "expo-media-library": "~8.0.0", "expo-network": "~2.0.0", + "expo-notifications": "~1.0.0", "expo-permissions": "~8.0.0", "expo-random": "~8.0.0", "expo-secure-store": "~8.0.0", @@ -66,4 +67,4 @@ "not ie <= 11", "not op_mini all" ] -} \ No newline at end of file +} diff --git a/apps/test-suite/tests/NewNotifications.js b/apps/test-suite/tests/NewNotifications.js new file mode 100644 index 0000000000000..0c4353b3a9abb --- /dev/null +++ b/apps/test-suite/tests/NewNotifications.js @@ -0,0 +1,58 @@ +'use strict'; + +import { Platform } from '@unimodules/core'; +import * as Notifications from 'expo-notifications'; + +import * as TestUtils from '../TestUtils'; +import { waitFor } from './helpers'; + +export const name = 'expo-notifications'; + +export async function test(t) { + const shouldSkipTestsRequiringPermissions = await TestUtils.shouldSkipTestsRequiringPermissionsAsync(); + const describeWithPermissions = shouldSkipTestsRequiringPermissions ? t.xdescribe : t.describe; + + describeWithPermissions('expo-notifications', () => { + t.describe('getDevicePushTokenAsync', () => { + let subscription = null; + let tokenFromEvent = null; + let tokenFromMethodCall = null; + + t.beforeAll(() => { + subscription = Notifications.addTokenListener(newEvent => { + tokenFromEvent = newEvent; + }); + }); + + t.afterAll(() => { + if (subscription) { + subscription.remove(); + subscription = null; + } + }); + + if (Platform.OS === 'android' || Platform.OS === 'ios') { + t.it('resolves with a string', async () => { + const devicePushToken = await Notifications.getDevicePushTokenAsync(); + t.expect(typeof devicePushToken.data).toBe('string'); + tokenFromMethodCall = devicePushToken; + }); + } + + if (Platform.OS === 'web') { + t.it('resolves with an object', async () => { + const devicePushToken = await Notifications.getDevicePushTokenAsync(); + t.expect(typeof devicePushToken.data).toBe('object'); + tokenFromMethodCall = devicePushToken; + }); + } + + t.it('emits an event with token (or not, if getDevicePushTokenAsync failed)', async () => { + // It would be better to do `if (!tokenFromMethodCall) { pending(); } else { ... }` + // but `t.pending()` still doesn't work. + await waitFor(500); + t.expect(tokenFromEvent).toEqual(tokenFromMethodCall); + }); + }); + }); +} diff --git a/ios/Podfile b/ios/Podfile index 6d3cad557a227..74a2782cb61a3 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -26,6 +26,7 @@ target 'Exponent' do 'expo-module-template', 'expo-bluetooth', 'expo-in-app-purchases', + 'expo-notifications', 'expo-payments-stripe', 'expo-updates', ], diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 8100a06dec459..4252ef976db37 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3630,6 +3630,6 @@ SPEC CHECKSUMS: yogaABI35_0_0: ba82ada0c3a58619049128d51d6de437638fe1a1 ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb -PODFILE CHECKSUM: 37a9208bd80b8a86a3898fd1e0c3062bd08fe8f3 +PODFILE CHECKSUM: 3a66eabee75c5532809ccfc3eca4e6b72c440b0b COCOAPODS: 1.8.4 diff --git a/ios/Pods/Manifest.lock b/ios/Pods/Manifest.lock index 8100a06dec459..4252ef976db37 100644 --- a/ios/Pods/Manifest.lock +++ b/ios/Pods/Manifest.lock @@ -3630,6 +3630,6 @@ SPEC CHECKSUMS: yogaABI35_0_0: ba82ada0c3a58619049128d51d6de437638fe1a1 ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb -PODFILE CHECKSUM: 37a9208bd80b8a86a3898fd1e0c3062bd08fe8f3 +PODFILE CHECKSUM: 3a66eabee75c5532809ccfc3eca4e6b72c440b0b COCOAPODS: 1.8.4 diff --git a/packages/expo-notifications/.eslintrc.js b/packages/expo-notifications/.eslintrc.js new file mode 100644 index 0000000000000..2720197860feb --- /dev/null +++ b/packages/expo-notifications/.eslintrc.js @@ -0,0 +1,2 @@ +// @generated by expo-module-scripts +module.exports = require('expo-module-scripts/eslintrc.base.js'); diff --git a/packages/expo-notifications/.npmignore b/packages/expo-notifications/.npmignore new file mode 100644 index 0000000000000..35d6f21144a89 --- /dev/null +++ b/packages/expo-notifications/.npmignore @@ -0,0 +1,2 @@ +# @generated by expo-module-scripts +babel.config.js diff --git a/packages/expo-notifications/README.md b/packages/expo-notifications/README.md new file mode 100644 index 0000000000000..b93b80f76c64e --- /dev/null +++ b/packages/expo-notifications/README.md @@ -0,0 +1 @@ +# expo-notifications diff --git a/packages/expo-notifications/android/.gitignore b/packages/expo-notifications/android/.gitignore new file mode 100644 index 0000000000000..099ccc86a0da7 --- /dev/null +++ b/packages/expo-notifications/android/.gitignore @@ -0,0 +1,269 @@ + +# Created by https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio + +### Android ### +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/dictionaries +.idea/libraries + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +### Android Patch ### +gen-external-apklibs + +### AndroidStudio ### +# Covers files to be ignored for android development using Android Studio. + +# Built application files + +# Files for the ART/Dalvik VM + +# Java class files + +# Generated files + +# Gradle files +.gradle + +# Signing files +.signing/ + +# Local configuration file (sdk path, etc) + +# Proguard folder generated by Eclipse + +# Log Files + +# Android Studio +/*/build/ +/*/local.properties +/*/out +/*/*/build +/*/*/production +*.ipr +*~ +*.swp + +# Android Patch + +# External native build folder generated in Android Studio 2.2 and later + +# NDK +obj/ + +# IntelliJ IDEA +*.iws +/out/ + +# User-specific configurations +.idea/libraries/ +.idea/.name +.idea/compiler.xml +.idea/copyright/profiles_settings.xml +.idea/encodings.xml +.idea/misc.xml +.idea/modules.xml +.idea/scopes/scope_settings.xml +.idea/vcs.xml +.idea/jsLibraryMappings.xml +.idea/datasources.xml +.idea/dataSources.ids +.idea/sqlDataSources.xml +.idea/dynamic.xml +.idea/uiDesigner.xml + +# OS-specific files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Legacy Eclipse project files +.classpath +.project +.cproject +.settings/ + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.war +*.ear + +# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml) +hs_err_pid* + +## Plugin-specific files: + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Mongo Explorer plugin +.idea/mongoSettings.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### AndroidStudio Patch ### + +!/gradle/wrapper/gradle-wrapper.jar + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# CMake +cmake-build-debug/ + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: + +## Plugin-specific files: + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin +.idea/replstate.xml + +# Ruby plugin and RubyMine +/.rakeTasks + +# Crashlytics plugin (for Android Studio and IntelliJ) + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Java ### +# Compiled class file + +# Log file + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) + +# Package Files # +*.jar +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml + +### Maven ### +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) +!/.mvn/wrapper/maven-wrapper.jar + +### Gradle ### +**/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + + +# End of https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio diff --git a/packages/expo-notifications/android/build.gradle b/packages/expo-notifications/android/build.gradle new file mode 100644 index 0000000000000..a5616ceb75066 --- /dev/null +++ b/packages/expo-notifications/android/build.gradle @@ -0,0 +1,72 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.1' + } +} + +apply plugin: 'com.android.library' +apply plugin: 'maven' + +group = 'host.exp.exponent' +version = '1.0.0' + +def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +} + +// Upload android library to maven with javadoc and android sources +configurations { + deployerJars +} + +// Creating sources with comments +task androidSourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.srcDirs +} + +// Put the androidSources and javadoc to the artifacts +artifacts { + archives androidSourcesJar +} + +uploadArchives { + repositories { + mavenDeployer { + configuration = configurations.deployerJars + repository(url: mavenLocal().url) + } + } +} + +android { + compileSdkVersion safeExtGet("compileSdkVersion", 28) + + defaultConfig { + minSdkVersion safeExtGet("minSdkVersion", 21) + targetSdkVersion safeExtGet("targetSdkVersion", 28) + versionCode 1 + versionName '1.0.0' + } + lintOptions { + abortOnError false + } +} + +if (new File(rootProject.projectDir.parentFile, 'package.json').exists()) { + apply from: project(":unimodules-core").file("../unimodules-core.gradle") +} else { + throw new GradleException( + '\'unimodules-core.gradle\' was not found in the usual Flutter or React Native dependency locations. ' + + 'This package can only be used in such projects. Are you sure you\'ve installed the dependencies properly?') +} + +dependencies { + unimodule 'unimodules-core' + api 'com.google.firebase:firebase-messaging:20.1.0' +} diff --git a/packages/expo-notifications/android/src/main/AndroidManifest.xml b/packages/expo-notifications/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000..f3c35c3ad930e --- /dev/null +++ b/packages/expo-notifications/android/src/main/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/NotificationsPackage.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/NotificationsPackage.java new file mode 100644 index 0000000000000..585510d802c49 --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/NotificationsPackage.java @@ -0,0 +1,25 @@ +package expo.modules.notifications; + +import android.content.Context; + +import org.unimodules.core.BasePackage; +import org.unimodules.core.ExportedModule; +import org.unimodules.core.interfaces.SingletonModule; + +import java.util.Collections; +import java.util.List; + +import expo.modules.notifications.tokens.PushTokenManager; +import expo.modules.notifications.tokens.PushTokenModule; + +public class NotificationsPackage extends BasePackage { + @Override + public List createExportedModules(Context context) { + return Collections.singletonList((ExportedModule) new PushTokenModule(context)); + } + + @Override + public List createSingletonModules(Context context) { + return Collections.singletonList((SingletonModule) new PushTokenManager()); + } +} diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/FirebaseTokenListenerService.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/FirebaseTokenListenerService.java new file mode 100644 index 0000000000000..c515330e7d9e5 --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/FirebaseTokenListenerService.java @@ -0,0 +1,69 @@ +package expo.modules.notifications.tokens; + +import com.google.firebase.messaging.FirebaseMessagingService; + +import java.lang.ref.WeakReference; +import java.util.WeakHashMap; + +import androidx.annotation.NonNull; + +/** + * Subclass of FirebaseMessagingService responsible for dispatching new tokens. + */ +public class FirebaseTokenListenerService extends FirebaseMessagingService { + // Unfortunately we cannot save state between instances of a service other way + // than by static properties. Fortunately, using weak references we can + // be somehow sure instances of PushTokenListeners won't be leaked by this component. + + /** + * We store this value to be able to inform new listeners of last known token. + */ + private static String sLastToken = null; + + /** + * A weak map of listeners -> reference. Used to check quickly whether given listener + * is already registered and to iterate over when notifying of new token. + */ + private static WeakHashMap> sListenersReferences = new WeakHashMap<>(); + + /** + * Used only by {@link PushTokenManager} instances. If you look for a place to register + * your listener, use {@link PushTokenManager} singleton module. + *

+ * Purposefully the argument is expected to be a {@link PushTokenManager} and just a listener. + *

+ * This class doesn't hold strong references to listeners, so you need to own your listeners. + * + * @param listener A listener instance to be informed of new push device tokens. + */ + static void addListener(PushTokenManager listener) { + // Checks whether this listener has already been registered + if (!sListenersReferences.containsKey(listener)) { + WeakReference listenerReference = new WeakReference<>(listener); + sListenersReferences.put(listener, listenerReference); + // Since it's a new listener and we know of a last valid token, let's let them know. + if (sLastToken != null) { + listener.onNewToken(sLastToken); + } + } + } + + /** + * Called on new token, dispatches it to {@link FirebaseTokenListenerService#sListenersReferences}. + * + * @param token New device push token. + */ + @Override + public void onNewToken(@NonNull String token) { + super.onNewToken(token); + + for (WeakReference listenerReference : sListenersReferences.values()) { + PushTokenManager listener = listenerReference.get(); + if (listener != null) { + listener.onNewToken(token); + } + } + + sLastToken = token; + } +} diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java new file mode 100644 index 0000000000000..00e2257d5c072 --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenManager.java @@ -0,0 +1,86 @@ +package expo.modules.notifications.tokens; + +import org.unimodules.core.interfaces.SingletonModule; + +import java.lang.ref.WeakReference; +import java.util.Collection; +import java.util.HashSet; +import java.util.WeakHashMap; + +import expo.modules.notifications.tokens.interfaces.PushTokenListener; + +public class PushTokenManager implements SingletonModule, expo.modules.notifications.tokens.interfaces.PushTokenManager { + private static final String SINGLETON_NAME = "PushTokenManager"; + + /** + * We store this value to be able to inform new listeners of last known token. + */ + private String mLastToken; + + /** + * A weak map of listeners -> reference. Used to check quickly whether given listener + * is already registered and to iterate over on new token. + */ + private WeakHashMap> mListenerReferenceMap; + + public PushTokenManager() { + mListenerReferenceMap = new WeakHashMap<>(); + + // Registers this singleton instance in static FirebaseTokenListenerService listeners collection. + // Since it doesn't hold strong reference to the object this should be safe. + FirebaseTokenListenerService.addListener(this); + } + + @Override + public String getName() { + return SINGLETON_NAME; + } + + /** + * Registers a {@link PushTokenListener} by adding a {@link WeakReference} to + * the {@link PushTokenManager#mListenerReferenceMap} map. + * + * @param listener Listener to be notified of new device push tokens. + */ + @Override + public void addListener(PushTokenListener listener) { + // Check if the listener is already registered + if (!mListenerReferenceMap.containsKey(listener)) { + WeakReference listenerReference = new WeakReference<>(listener); + mListenerReferenceMap.put(listener, listenerReference); + // Since it's a new listener and we know of a last valid value, let's let them know. + if (mLastToken != null) { + listener.onNewToken(mLastToken); + } + } + } + + /** + * Unregisters a {@link PushTokenListener} by removing the {@link WeakReference} to the listener + * from the {@link PushTokenManager#mListenerReferenceMap} map. + * + * @param listener Listener previously registered with {@link PushTokenManager#addListener(PushTokenListener)}. + */ + @Override + public void removeListener(PushTokenListener listener) { + mListenerReferenceMap.remove(listener); + } + + /** + * Used by {@link FirebaseTokenListenerService} to notify of new tokens. + * Calls {@link PushTokenListener#onNewToken(String)} on all values + * of {@link PushTokenManager#mListenerReferenceMap}. + * + * @param token New device push token. + */ + void onNewToken(String token) { + for (WeakReference listenerReference : mListenerReferenceMap.values()) { + PushTokenListener listener = listenerReference.get(); + if (listener != null) { + listener.onNewToken(token); + } + } + + mLastToken = token; + } +} diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.java new file mode 100644 index 0000000000000..10d39d5b5ac6a --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/PushTokenModule.java @@ -0,0 +1,99 @@ +package expo.modules.notifications.tokens; + +import android.content.Context; +import android.os.Bundle; + +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.iid.FirebaseInstanceId; +import com.google.firebase.iid.InstanceIdResult; + +import org.unimodules.core.ExportedModule; +import org.unimodules.core.ModuleRegistry; +import org.unimodules.core.Promise; +import org.unimodules.core.interfaces.ExpoMethod; +import org.unimodules.core.interfaces.services.EventEmitter; + +import androidx.annotation.NonNull; +import expo.modules.notifications.tokens.interfaces.PushTokenListener; +import expo.modules.notifications.tokens.interfaces.PushTokenManager; + +public class PushTokenModule extends ExportedModule implements PushTokenListener { + private final static String EXPORTED_NAME = "ExpoPushTokenManager"; + + private final static String NEW_TOKEN_EVENT_NAME = "onDevicePushToken"; + private final static String NEW_TOKEN_EVENT_TOKEN_KEY = "devicePushToken"; + + private final static String REGISTRATION_FAIL_CODE = "E_REGISTRATION_FAILED"; + + private PushTokenManager mPushTokenManager; + private EventEmitter mEventEmitter; + + public PushTokenModule(Context context) { + super(context); + } + + @Override + public String getName() { + return EXPORTED_NAME; + } + + + @Override + public void onCreate(ModuleRegistry moduleRegistry) { + // Register the module as a listener in PushTokenManager singleton module. + // Deregistration happens in onDestroy callback. + mPushTokenManager = moduleRegistry.getSingletonModule("PushTokenManager", PushTokenManager.class); + mPushTokenManager.addListener(this); + + mEventEmitter = moduleRegistry.getModule(EventEmitter.class); + } + + @Override + public void onDestroy() { + mPushTokenManager.removeListener(this); + } + + /** + * Fetches Firebase push token and resolves the promise. + * + * @param promise Promise to be resolved with the token. + */ + @ExpoMethod + public void getDevicePushTokenAsync(final Promise promise) { + FirebaseInstanceId.getInstance().getInstanceId() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (!task.isSuccessful() || task.getResult() == null) { + if (task.getException() == null) { + promise.reject(REGISTRATION_FAIL_CODE, "Fetching the token failed."); + } else { + promise.reject(REGISTRATION_FAIL_CODE, "Fetching the token failed: " + task.getException().getMessage(), task.getException()); + } + return; + } + + String token = task.getResult().getToken(); + + promise.resolve(token); + onNewToken(token); + } + }); + } + + /** + * Callback called when {@link PushTokenManager} gets notified of a new token. + * Emits a {@link PushTokenModule#NEW_TOKEN_EVENT_NAME} event. + * + * @param token New push token. + */ + @Override + public void onNewToken(String token) { + if (mEventEmitter != null) { + Bundle eventBody = new Bundle(); + eventBody.putString(NEW_TOKEN_EVENT_TOKEN_KEY, token); + mEventEmitter.emit(NEW_TOKEN_EVENT_NAME, eventBody); + } + } +} diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java new file mode 100644 index 0000000000000..6fadc2fb3afdf --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenListener.java @@ -0,0 +1,14 @@ +package expo.modules.notifications.tokens.interfaces; + +/** + * Interface used to register in {@link PushTokenManager} + * and be notified of new device push tokens. + */ +public interface PushTokenListener { + /** + * Callback called when new push token is generated. + * + * @param token New push token + */ + void onNewToken(String token); +} diff --git a/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java new file mode 100644 index 0000000000000..c39987f0c5645 --- /dev/null +++ b/packages/expo-notifications/android/src/main/java/expo/modules/notifications/tokens/interfaces/PushTokenManager.java @@ -0,0 +1,22 @@ +package expo.modules.notifications.tokens.interfaces; + +/** + * Interface of a singleton module responsible + * for dispatching new push token information to listeners. + */ +public interface PushTokenManager { + /** + * Registers a {@link PushTokenListener}. + * + * @param listener Listener to be notified of new device push tokens. + */ + void addListener(PushTokenListener listener); + + /** + * Unregisters a {@link PushTokenListener}. + * + * @param listener Listener previously registered + * with {@link PushTokenManager#addListener(PushTokenListener)}. + */ + void removeListener(PushTokenListener listener); +} diff --git a/packages/expo-notifications/babel.config.js b/packages/expo-notifications/babel.config.js new file mode 100644 index 0000000000000..68c7d3192262e --- /dev/null +++ b/packages/expo-notifications/babel.config.js @@ -0,0 +1,2 @@ +// @generated by expo-module-scripts +module.exports = require('expo-module-scripts/babel.config.base'); diff --git a/packages/expo-notifications/build/PushTokenManager.d.ts b/packages/expo-notifications/build/PushTokenManager.d.ts new file mode 100644 index 0000000000000..a3fa8fa236837 --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.d.ts @@ -0,0 +1,6 @@ +import { ProxyNativeModule } from '@unimodules/core'; +export interface PushTokenManagerModule extends ProxyNativeModule { + getDevicePushTokenAsync: () => Promise; +} +declare const _default: PushTokenManagerModule; +export default _default; diff --git a/packages/expo-notifications/build/PushTokenManager.js b/packages/expo-notifications/build/PushTokenManager.js new file mode 100644 index 0000000000000..0a483ffd90809 --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.js @@ -0,0 +1,3 @@ +import { NativeModulesProxy } from '@unimodules/core'; +export default NativeModulesProxy.ExpoPushTokenManager; +//# sourceMappingURL=PushTokenManager.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/PushTokenManager.js.map b/packages/expo-notifications/build/PushTokenManager.js.map new file mode 100644 index 0000000000000..a6448c1db57c6 --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PushTokenManager.js","sourceRoot":"","sources":["../src/PushTokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC;AAMzE,eAAgB,kBAAkB,CAAC,oBAAsD,CAAC","sourcesContent":["import { NativeModulesProxy, ProxyNativeModule } from '@unimodules/core';\n\nexport interface PushTokenManagerModule extends ProxyNativeModule {\n getDevicePushTokenAsync: () => Promise;\n}\n\nexport default (NativeModulesProxy.ExpoPushTokenManager as any) as PushTokenManagerModule;\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/build/PushTokenManager.web.d.ts b/packages/expo-notifications/build/PushTokenManager.web.d.ts new file mode 100644 index 0000000000000..d87c48512f1ad --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.web.d.ts @@ -0,0 +1,2 @@ +declare const _default: {}; +export default _default; diff --git a/packages/expo-notifications/build/PushTokenManager.web.js b/packages/expo-notifications/build/PushTokenManager.web.js new file mode 100644 index 0000000000000..7f3bc873d8e03 --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.web.js @@ -0,0 +1,3 @@ +// mock +export default {}; +//# sourceMappingURL=PushTokenManager.web.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/PushTokenManager.web.js.map b/packages/expo-notifications/build/PushTokenManager.web.js.map new file mode 100644 index 0000000000000..96255ad408f63 --- /dev/null +++ b/packages/expo-notifications/build/PushTokenManager.web.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PushTokenManager.web.js","sourceRoot":"","sources":["../src/PushTokenManager.web.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,eAAe,EAAE,CAAC","sourcesContent":["// mock\nexport default {};\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/build/TokenEmitter.d.ts b/packages/expo-notifications/build/TokenEmitter.d.ts new file mode 100644 index 0000000000000..cf71b2a43cecf --- /dev/null +++ b/packages/expo-notifications/build/TokenEmitter.d.ts @@ -0,0 +1,6 @@ +import { Subscription } from '@unimodules/core'; +import { DevicePushToken } from './getDevicePushTokenAsync'; +export declare type TokenListener = (token: DevicePushToken) => void; +export declare function addTokenListener(listener: TokenListener): Subscription; +export declare function removeTokenSubscription(subscription: Subscription): void; +export declare function removeAllTokenListeners(): void; diff --git a/packages/expo-notifications/build/TokenEmitter.js b/packages/expo-notifications/build/TokenEmitter.js new file mode 100644 index 0000000000000..6765d45a7967e --- /dev/null +++ b/packages/expo-notifications/build/TokenEmitter.js @@ -0,0 +1,18 @@ +import { EventEmitter, Platform } from '@unimodules/core'; +import PushTokenManager from './PushTokenManager'; +// Web uses SyntheticEventEmitter +const tokenEmitter = new EventEmitter(PushTokenManager); +const newTokenEventName = 'onDevicePushToken'; +export function addTokenListener(listener) { + const wrappingListener = ({ devicePushToken }) => + // @ts-ignore: TS can't decide what Platform.OS is. + listener({ data: devicePushToken, type: Platform.OS }); + return tokenEmitter.addListener(newTokenEventName, wrappingListener); +} +export function removeTokenSubscription(subscription) { + tokenEmitter.removeSubscription(subscription); +} +export function removeAllTokenListeners() { + tokenEmitter.removeAllListeners(newTokenEventName); +} +//# sourceMappingURL=TokenEmitter.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/TokenEmitter.js.map b/packages/expo-notifications/build/TokenEmitter.js.map new file mode 100644 index 0000000000000..8b812c8579290 --- /dev/null +++ b/packages/expo-notifications/build/TokenEmitter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TokenEmitter.js","sourceRoot":"","sources":["../src/TokenEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAIlD,iCAAiC;AACjC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,MAAM,gBAAgB,GAAG,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;IAC/C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,YAAY,CAAC,WAAW,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAA0B;IAChE,YAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,YAAY,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;AACrD,CAAC","sourcesContent":["import { EventEmitter, Subscription, Platform } from '@unimodules/core';\nimport { DevicePushToken } from './getDevicePushTokenAsync';\nimport PushTokenManager from './PushTokenManager';\n\nexport type TokenListener = (token: DevicePushToken) => void;\n\n// Web uses SyntheticEventEmitter\nconst tokenEmitter = new EventEmitter(PushTokenManager);\nconst newTokenEventName = 'onDevicePushToken';\n\nexport function addTokenListener(listener: TokenListener): Subscription {\n const wrappingListener = ({ devicePushToken }) =>\n // @ts-ignore: TS can't decide what Platform.OS is.\n listener({ data: devicePushToken, type: Platform.OS });\n return tokenEmitter.addListener(newTokenEventName, wrappingListener);\n}\n\nexport function removeTokenSubscription(subscription: Subscription) {\n tokenEmitter.removeSubscription(subscription);\n}\n\nexport function removeAllTokenListeners() {\n tokenEmitter.removeAllListeners(newTokenEventName);\n}\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.d.ts b/packages/expo-notifications/build/getDevicePushTokenAsync.d.ts new file mode 100644 index 0000000000000..2b3ee4a87bc57 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.d.ts @@ -0,0 +1,23 @@ +import { Platform } from '@unimodules/core'; +export interface NativeDevicePushToken { + type: 'ios' | 'android'; + data: string; +} +export interface WebDevicePushToken { + type: 'web'; + data: { + endpoint: string; + keys: { + p256dh: string; + auth: string; + }; + }; +} +declare type ExplicitlySupportedDevicePushToken = NativeDevicePushToken | WebDevicePushToken; +declare type ImplicitlySupportedDevicePushToken = { + type: Exclude; + data: any; +}; +export declare type DevicePushToken = ExplicitlySupportedDevicePushToken | ImplicitlySupportedDevicePushToken; +export default function getDevicePushTokenAsync(): Promise; +export {}; diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.js b/packages/expo-notifications/build/getDevicePushTokenAsync.js new file mode 100644 index 0000000000000..49256a69e41b4 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.js @@ -0,0 +1,11 @@ +import { UnavailabilityError, Platform } from '@unimodules/core'; +import PushTokenManager from './PushTokenManager'; +export default async function getDevicePushTokenAsync() { + if (!PushTokenManager.getDevicePushTokenAsync) { + throw new UnavailabilityError('ExpoNotifications', 'getDevicePushTokenAsync'); + } + const devicePushToken = await PushTokenManager.getDevicePushTokenAsync(); + // @ts-ignore: TS thinks Platform.OS could be anything and can't decide what type is it + return { type: Platform.OS, data: devicePushToken }; +} +//# sourceMappingURL=getDevicePushTokenAsync.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.js.map b/packages/expo-notifications/build/getDevicePushTokenAsync.js.map new file mode 100644 index 0000000000000..516e35708d176 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getDevicePushTokenAsync.js","sourceRoot":"","sources":["../src/getDevicePushTokenAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AA6BlD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB;IACnD,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,EAAE;QAC7C,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;KAC/E;IAED,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,EAAE,CAAC;IAEzE,uFAAuF;IACvF,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AACtD,CAAC","sourcesContent":["import { UnavailabilityError, Platform } from '@unimodules/core';\n\nimport PushTokenManager from './PushTokenManager';\n\nexport interface NativeDevicePushToken {\n type: 'ios' | 'android';\n data: string;\n}\n\nexport interface WebDevicePushToken {\n type: 'web';\n data: {\n endpoint: string;\n keys: {\n p256dh: string;\n auth: string;\n };\n };\n}\n\ntype ExplicitlySupportedDevicePushToken = NativeDevicePushToken | WebDevicePushToken;\n\ntype ImplicitlySupportedDevicePushToken = {\n type: Exclude;\n data: any;\n};\n\nexport type DevicePushToken =\n | ExplicitlySupportedDevicePushToken\n | ImplicitlySupportedDevicePushToken;\n\nexport default async function getDevicePushTokenAsync(): Promise {\n if (!PushTokenManager.getDevicePushTokenAsync) {\n throw new UnavailabilityError('ExpoNotifications', 'getDevicePushTokenAsync');\n }\n\n const devicePushToken = await PushTokenManager.getDevicePushTokenAsync();\n\n // @ts-ignore: TS thinks Platform.OS could be anything and can't decide what type is it\n return { type: Platform.OS, data: devicePushToken };\n}\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.web.d.ts b/packages/expo-notifications/build/getDevicePushTokenAsync.web.d.ts new file mode 100644 index 0000000000000..c6cac11a1a5e5 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.web.d.ts @@ -0,0 +1,2 @@ +import { DevicePushToken } from './getDevicePushTokenAsync'; +export default function getDevicePushTokenAsync(): Promise; diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.web.js b/packages/expo-notifications/build/getDevicePushTokenAsync.web.js new file mode 100644 index 0000000000000..d2fb49ac698d0 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.web.js @@ -0,0 +1,79 @@ +import { CodedError, Platform, SyntheticPlatformEmitter } from '@unimodules/core'; +import Constants from 'expo-constants'; +export default async function getDevicePushTokenAsync() { + const data = await _subscribeUserToPushAsync(); + SyntheticPlatformEmitter.emit('onDevicePushToken', { devicePushToken: data }); + return { type: Platform.OS, data }; +} +function guardPermission() { + if (!('Notification' in window)) { + throw new Error('The Notification API is not available on this device.'); + } + if (!navigator.serviceWorker) { + throw new Error('Notifications cannot be used because the service worker API is not supported on this device. This might also happen because your web page does not support HTTPS.'); + } + if (Notification.permission !== 'granted') { + throw new Error('Cannot use Notifications without permissions. Please request permissions with `expo-permissions`'); + } +} +async function _subscribeUserToPushAsync() { + if (!Constants.manifest.notification || !Constants.manifest.notification.vapidPublicKey) { + throw new CodedError('E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG', 'You must provide `notification.vapidPublicKey` in `app.json` to use push notifications on web. Learn more: https://docs.expo.io/versions/latest/guides/using-vapid/.'); + } + if (!Constants.manifest.notification || !Constants.manifest.notification.serviceWorkerPath) { + throw new CodedError('E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG', 'You must provide `notification.serviceWorkerPath` in `app.json` to use push notifications on web. Please provide path to the service worker that will handle notifications.'); + } + guardPermission(); + let registration = null; + try { + registration = await navigator.serviceWorker.register(Constants.manifest.notification.serviceWorkerPath); + } + catch (error) { + throw new Error(`Notifications might not be working because the service worker (${Constants.manifest.notification.serviceWorkerPath}) couldn't be registered: ${error}`); + } + await navigator.serviceWorker.ready; + if (!registration.active) { + throw new Error('Notifications might not be working because the service worker API is not active.'); + } + const subscribeOptions = { + userVisibleOnly: true, + applicationServerKey: _urlBase64ToUint8Array(Constants.manifest.notification.vapidPublicKey), + }; + let pushSubscription = null; + try { + pushSubscription = await registration.pushManager.subscribe(subscribeOptions); + } + catch (error) { + throw new CodedError('E_NOTIFICATIONS_PUSH_WEB_TOKEN_REGISTRATION_FAILED', 'The device was unable to register for remote notifications with the browser endpoint. (' + + error + + ')'); + } + const pushSubscriptionJson = pushSubscription.toJSON(); + const subscriptionObject = { + endpoint: pushSubscriptionJson.endpoint, + keys: { + p256dh: pushSubscriptionJson.keys.p256dh, + auth: pushSubscriptionJson.keys.auth, + }, + }; + // Store notification icon string in service worker. + // This message is received by `/expo-service-worker.js`. + // We wrap it with `fromExpoWebClient` to make sure other message + // will not override content such as `notificationIcon`. + // https://stackoverflow.com/a/35729334/2603230 + let notificationIcon = (Constants.manifest.notification || {}).icon; + await registration.active.postMessage(JSON.stringify({ fromExpoWebClient: { notificationIcon } })); + return subscriptionObject; +} +// https://github.com/web-push-libs/web-push#using-vapid-key-for-applicationserverkey +function _urlBase64ToUint8Array(base64String) { + const padding = '='.repeat((4 - (base64String.length % 4)) % 4); + const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/'); + const rawData = window.atob(base64); + const outputArray = new Uint8Array(rawData.length); + for (let i = 0; i < rawData.length; ++i) { + outputArray[i] = rawData.charCodeAt(i); + } + return outputArray; +} +//# sourceMappingURL=getDevicePushTokenAsync.web.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/getDevicePushTokenAsync.web.js.map b/packages/expo-notifications/build/getDevicePushTokenAsync.web.js.map new file mode 100644 index 0000000000000..f9f7ca0e7ef53 --- /dev/null +++ b/packages/expo-notifications/build/getDevicePushTokenAsync.web.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getDevicePushTokenAsync.web.js","sourceRoot":"","sources":["../src/getDevicePushTokenAsync.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAIvC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,uBAAuB;IACnD,MAAM,IAAI,GAAG,MAAM,yBAAyB,EAAE,CAAC;IAC/C,wBAAwB,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;IACD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;QAC5B,MAAM,IAAI,KAAK,CACb,mKAAmK,CACpK,CAAC;KACH;IACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;QACzC,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;KACH;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB;IACtC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE;QACvF,MAAM,IAAI,UAAU,CAClB,yCAAyC,EACzC,sKAAsK,CACvK,CAAC;KACH;IACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE;QAC1F,MAAM,IAAI,UAAU,CAClB,yCAAyC,EACzC,6KAA6K,CAC9K,CAAC;KACH;IACD,eAAe,EAAE,CAAC;IAElB,IAAI,YAAY,GAAqC,IAAI,CAAC;IAC1D,IAAI;QACF,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,QAAQ,CACnD,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAClD,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CACb,kEAAkE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,6BAA6B,KAAK,EAAE,CACxJ,CAAC;KACH;IACD,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;IAEpC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;KACH;IAED,MAAM,gBAAgB,GAAG;QACvB,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC;KAC7F,CAAC;IACF,IAAI,gBAAgB,GAA4B,IAAI,CAAC;IACrD,IAAI;QACF,gBAAgB,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;KAC/E;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,UAAU,CAClB,oDAAoD,EACpD,yFAAyF;YACvF,KAAK;YACL,GAAG,CACN,CAAC;KACH;IACD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;IAEvD,MAAM,kBAAkB,GAAG;QACzB,QAAQ,EAAE,oBAAoB,CAAC,QAAQ;QACvC,IAAI,EAAE;YACJ,MAAM,EAAE,oBAAoB,CAAC,IAAK,CAAC,MAAM;YACzC,IAAI,EAAE,oBAAoB,CAAC,IAAK,CAAC,IAAI;SACtC;KACF,CAAC;IAEF,oDAAoD;IACpD,yDAAyD;IACzD,iEAAiE;IACjE,wDAAwD;IACxD,+CAA+C;IAC/C,IAAI,gBAAgB,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACpE,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,CACnC,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAC5D,CAAC;IAEF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,qFAAqF;AACrF,SAAS,sBAAsB,CAAC,YAAoB;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACvC,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACxC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["import { CodedError, Platform, SyntheticPlatformEmitter } from '@unimodules/core';\nimport Constants from 'expo-constants';\n\nimport { DevicePushToken } from './getDevicePushTokenAsync';\n\nexport default async function getDevicePushTokenAsync(): Promise {\n const data = await _subscribeUserToPushAsync();\n SyntheticPlatformEmitter.emit('onDevicePushToken', { devicePushToken: data });\n return { type: Platform.OS, data };\n}\n\nfunction guardPermission() {\n if (!('Notification' in window)) {\n throw new Error('The Notification API is not available on this device.');\n }\n if (!navigator.serviceWorker) {\n throw new Error(\n 'Notifications cannot be used because the service worker API is not supported on this device. This might also happen because your web page does not support HTTPS.'\n );\n }\n if (Notification.permission !== 'granted') {\n throw new Error(\n 'Cannot use Notifications without permissions. Please request permissions with `expo-permissions`'\n );\n }\n}\n\nasync function _subscribeUserToPushAsync(): Promise {\n if (!Constants.manifest.notification || !Constants.manifest.notification.vapidPublicKey) {\n throw new CodedError(\n 'E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG',\n 'You must provide `notification.vapidPublicKey` in `app.json` to use push notifications on web. Learn more: https://docs.expo.io/versions/latest/guides/using-vapid/.'\n );\n }\n if (!Constants.manifest.notification || !Constants.manifest.notification.serviceWorkerPath) {\n throw new CodedError(\n 'E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG',\n 'You must provide `notification.serviceWorkerPath` in `app.json` to use push notifications on web. Please provide path to the service worker that will handle notifications.'\n );\n }\n guardPermission();\n\n let registration: ServiceWorkerRegistration | null = null;\n try {\n registration = await navigator.serviceWorker.register(\n Constants.manifest.notification.serviceWorkerPath\n );\n } catch (error) {\n throw new Error(\n `Notifications might not be working because the service worker (${Constants.manifest.notification.serviceWorkerPath}) couldn't be registered: ${error}`\n );\n }\n await navigator.serviceWorker.ready;\n\n if (!registration.active) {\n throw new Error(\n 'Notifications might not be working because the service worker API is not active.'\n );\n }\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: _urlBase64ToUint8Array(Constants.manifest.notification.vapidPublicKey),\n };\n let pushSubscription: PushSubscription | null = null;\n try {\n pushSubscription = await registration.pushManager.subscribe(subscribeOptions);\n } catch (error) {\n throw new CodedError(\n 'E_NOTIFICATIONS_PUSH_WEB_TOKEN_REGISTRATION_FAILED',\n 'The device was unable to register for remote notifications with the browser endpoint. (' +\n error +\n ')'\n );\n }\n const pushSubscriptionJson = pushSubscription.toJSON();\n\n const subscriptionObject = {\n endpoint: pushSubscriptionJson.endpoint,\n keys: {\n p256dh: pushSubscriptionJson.keys!.p256dh,\n auth: pushSubscriptionJson.keys!.auth,\n },\n };\n\n // Store notification icon string in service worker.\n // This message is received by `/expo-service-worker.js`.\n // We wrap it with `fromExpoWebClient` to make sure other message\n // will not override content such as `notificationIcon`.\n // https://stackoverflow.com/a/35729334/2603230\n let notificationIcon = (Constants.manifest.notification || {}).icon;\n await registration.active.postMessage(\n JSON.stringify({ fromExpoWebClient: { notificationIcon } })\n );\n\n return subscriptionObject;\n}\n\n// https://github.com/web-push-libs/web-push#using-vapid-key-for-applicationserverkey\nfunction _urlBase64ToUint8Array(base64String: string): Uint8Array {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n}\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/build/index.d.ts b/packages/expo-notifications/build/index.d.ts new file mode 100644 index 0000000000000..444e33c073245 --- /dev/null +++ b/packages/expo-notifications/build/index.d.ts @@ -0,0 +1,2 @@ +export { default as getDevicePushTokenAsync } from './getDevicePushTokenAsync'; +export * from './TokenEmitter'; diff --git a/packages/expo-notifications/build/index.js b/packages/expo-notifications/build/index.js new file mode 100644 index 0000000000000..6e1fb39ed66ee --- /dev/null +++ b/packages/expo-notifications/build/index.js @@ -0,0 +1,3 @@ +export { default as getDevicePushTokenAsync } from './getDevicePushTokenAsync'; +export * from './TokenEmitter'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/expo-notifications/build/index.js.map b/packages/expo-notifications/build/index.js.map new file mode 100644 index 0000000000000..a5530676d5593 --- /dev/null +++ b/packages/expo-notifications/build/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,cAAc,gBAAgB,CAAC","sourcesContent":["export { default as getDevicePushTokenAsync } from './getDevicePushTokenAsync';\nexport * from './TokenEmitter';\n"]} \ No newline at end of file diff --git a/packages/expo-notifications/ios/EXNotifications.podspec b/packages/expo-notifications/ios/EXNotifications.podspec new file mode 100644 index 0000000000000..ac429d2fc94e4 --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications.podspec @@ -0,0 +1,20 @@ +require 'json' + +package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json'))) + +Pod::Spec.new do |s| + s.name = 'EXNotifications' + s.version = package['version'] + s.summary = package['description'] + s.description = package['description'] + s.license = package['license'] + s.author = package['author'] + s.homepage = package['homepage'] + s.platform = :ios, '10.0' + s.source = { git: 'https://github.com/expo/expo.git' } + s.source_files = 'EXNotifications/**/*.{h,m}' + s.preserve_paths = 'EXNotifications/**/*.{h,m}' + s.requires_arc = true + + s.dependency 'UMCore' +end diff --git a/packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h b/packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h new file mode 100644 index 0000000000000..a5102aadc2191 --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications/EXPushTokenListener.h @@ -0,0 +1,14 @@ +// Copyright 2018-present 650 Industries. All rights reserved. + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol EXPushTokenListener + +- (void)onDidRegisterWithDeviceToken:(NSData *)token; +- (void)onDidFailToRegisterWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h b/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h new file mode 100644 index 0000000000000..1e8c966d1f916 --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.h @@ -0,0 +1,24 @@ +// Copyright 2018-present 650 Industries. All rights reserved. + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol EXPushTokenManager + +- (void)addListener:(id)listener; +- (void)removeListener:(id)listener; + +@end + +@interface EXPushTokenManager : UMSingletonModule + +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken; +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.m b/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.m new file mode 100644 index 0000000000000..a2c424a47dd9f --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications/EXPushTokenManager.m @@ -0,0 +1,63 @@ +// Copyright 2018-present 650 Industries. All rights reserved. + +#import +#import + +@interface EXPushTokenManager () + +@property (nonatomic, strong) NSPointerArray *listeners; + +@end + +@implementation EXPushTokenManager + +UM_REGISTER_SINGLETON_MODULE(PushTokenManager); + +- (instancetype)init +{ + if (self = [super init]) { + _listeners = [NSPointerArray weakObjectsPointerArray]; + } + return self; +} + +# pragma mark - UIApplicationDelegate + +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken +{ + for (int i = 0; i < _listeners.count; i++) { + id pointer = [_listeners pointerAtIndex:i]; + [pointer onDidRegisterWithDeviceToken:deviceToken]; + } +} + +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error +{ + for (int i = 0; i < _listeners.count; i++) { + id pointer = [_listeners pointerAtIndex:i]; + [pointer onDidFailToRegisterWithError:error]; + } +} + +# pragma mark - Listeners + +- (void)addListener:(id)listener +{ + [_listeners addPointer:(__bridge void * _Nullable)(listener)]; +} + +- (void)removeListener:(id)listener +{ + for (int i = 0; i < _listeners.count; i++) { + id pointer = [_listeners pointerAtIndex:i]; + if (pointer == (__bridge void * _Nullable)(listener) || !pointer) { + [_listeners removePointerAtIndex:i]; + i--; + } + } + // compact doesn't work, that's why we need the `|| !pointer` above + // http://www.openradar.me/15396578 + [_listeners compact]; +} + +@end diff --git a/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h b/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h new file mode 100644 index 0000000000000..5ddb5d21ae085 --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.h @@ -0,0 +1,9 @@ +// Copyright 2018-present 650 Industries. All rights reserved. + +#import +#import +#import +#import + +@interface EXPushTokenModule : UMExportedModule +@end diff --git a/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.m b/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.m new file mode 100644 index 0000000000000..ef7ca013f8e7e --- /dev/null +++ b/packages/expo-notifications/ios/EXNotifications/EXPushTokenModule.m @@ -0,0 +1,147 @@ +// Copyright 2018-present 650 Industries. All rights reserved. + +#import +#import + +#import + +static const NSString *onDevicePushTokenEventName = @"onDevicePushToken"; + +@interface EXPushTokenModule () + +@property (nonatomic, weak) id pushTokenManager; + +@property (nonatomic, assign) BOOL isListening; +@property (nonatomic, assign) BOOL isBeingObserved; +@property (nonatomic, assign) BOOL isSettlingPromise; + +@property (nonatomic, weak) id eventEmitter; + +@property (nonatomic, strong) UMPromiseResolveBlock getDevicePushTokenResolver; +@property (nonatomic, strong) UMPromiseRejectBlock getDevicePushTokenRejecter; + +@end + +@implementation EXPushTokenModule + +UM_EXPORT_MODULE(ExpoPushTokenManager); + +# pragma mark - Exported methods + +UM_EXPORT_METHOD_AS(getDevicePushTokenAsync, + getDevicePushTokenResolving:(UMPromiseResolveBlock)resolve rejecting:(UMPromiseRejectBlock)reject) +{ + if (_getDevicePushTokenRejecter) { + reject(@"E_AWAIT_PROMISE", @"Another async call to this method is in progress. Await the first Promise.", nil); + return; + } + + _getDevicePushTokenResolver = resolve; + _getDevicePushTokenRejecter = reject; + [self setIsSettlingPromise:YES]; + + dispatch_async(dispatch_get_main_queue(), ^{ + [[UIApplication sharedApplication] registerForRemoteNotifications]; + }); +} + +# pragma mark - UMModuleRegistryConsumer + +- (void)setModuleRegistry:(UMModuleRegistry *)moduleRegistry +{ + _eventEmitter = [moduleRegistry getModuleImplementingProtocol:@protocol(UMEventEmitterService)]; + _pushTokenManager = [moduleRegistry getSingletonModuleForName:@"PushTokenManager"]; +} + +# pragma mark - UMEventEmitter + +- (NSArray *)supportedEvents +{ + return @[(NSString *)onDevicePushTokenEventName]; +} + +- (void)startObserving +{ + [self setIsBeingObserved:YES]; +} + +- (void)stopObserving +{ + [self setIsBeingObserved:NO]; +} + +- (BOOL)shouldListen +{ + return _isBeingObserved || _isSettlingPromise; +} + +- (void)updateListeningState +{ + if ([self shouldListen] && !_isListening) { + [_pushTokenManager addListener:self]; + _isListening = YES; + } else if (![self shouldListen] && _isListening) { + [_pushTokenManager removeListener:self]; + _isListening = NO; + } +} + +# pragma mark - EXPushTokenListener + +- (void)onDidRegisterWithDeviceToken:(NSData *)devicePushToken +{ + NSMutableString *stringToken = [NSMutableString string]; + const char *bytes = [devicePushToken bytes]; + for (int i = 0; i < [devicePushToken length]; i++) { + [stringToken appendFormat:@"%02.2hhx", bytes[i]]; + } + + if (_getDevicePushTokenResolver) { + _getDevicePushTokenResolver(stringToken); + [self onGetDevicePushTokenPromiseSettled]; + } + + if (_isBeingObserved) { + [_eventEmitter sendEventWithName:(NSString *)onDevicePushTokenEventName + body:@{ @"devicePushToken": stringToken }]; + } +} + +- (void)onDidFailToRegisterWithError:(NSError *)error +{ + if (_getDevicePushTokenRejecter) { + NSString *message = @"Notification registration failed: "; + + // A common error, localizedDescription may not be helpful. + if (error.code == 3000 && [NSCocoaErrorDomain isEqualToString:error.domain]) { + message = [message stringByAppendingString:@"\"Push Notifications\" capability hasn't been added to the app in current environment: "]; + } + + message = [message stringByAppendingFormat:@"%@", error.localizedDescription]; + _getDevicePushTokenRejecter(@"E_REGISTRATION_FAILED", message, error); + [self onGetDevicePushTokenPromiseSettled]; + } +} + +- (void)onGetDevicePushTokenPromiseSettled +{ + _getDevicePushTokenResolver = nil; + _getDevicePushTokenRejecter = nil; + [self setIsSettlingPromise:NO]; +} + +# pragma mark - Internal state + +- (void)setIsBeingObserved:(BOOL)isBeingObserved +{ + _isBeingObserved = isBeingObserved; + [self updateListeningState]; +} + +- (void)setIsSettlingPromise:(BOOL)isSettlingPromise +{ + _isSettlingPromise = isSettlingPromise; + [self updateListeningState]; +} + +@end diff --git a/packages/expo-notifications/package.json b/packages/expo-notifications/package.json new file mode 100644 index 0000000000000..b60d2eb09c53d --- /dev/null +++ b/packages/expo-notifications/package.json @@ -0,0 +1,38 @@ +{ + "name": "expo-notifications", + "version": "1.0.0", + "description": "Notifications module", + "main": "build/index.js", + "types": "build/index.d.ts", + "scripts": { + "build": "expo-module build", + "clean": "expo-module clean", + "lint": "expo-module lint", + "test": "expo-module test", + "prepare": "expo-module prepare", + "prepublishOnly": "expo-module prepublishOnly", + "expo-module": "expo-module" + }, + "keywords": [ + "react-native", + "expo", + "notifications", + "expo-notifications" + ], + "repository": { + "type": "git", + "url": "https://github.com/expo/expo.git", + "directory": "packages/expo-notifications" + }, + "bugs": { + "url": "https://github.com/expo/expo/issues" + }, + "author": "650 Industries, Inc.", + "license": "MIT", + "homepage": "https://github.com/expo/expo/tree/master/packages/expo-notifications", + "peerDependencies": { + "@unimodules/core": "~5.0.0", + "expo-constants": "~8.0.0" + }, + "gitHead": "ec7878b9ce54f2537721218ae0fe4017e4004806" +} diff --git a/packages/expo-notifications/src/PushTokenManager.ts b/packages/expo-notifications/src/PushTokenManager.ts new file mode 100644 index 0000000000000..4130bb9003796 --- /dev/null +++ b/packages/expo-notifications/src/PushTokenManager.ts @@ -0,0 +1,7 @@ +import { NativeModulesProxy, ProxyNativeModule } from '@unimodules/core'; + +export interface PushTokenManagerModule extends ProxyNativeModule { + getDevicePushTokenAsync: () => Promise; +} + +export default (NativeModulesProxy.ExpoPushTokenManager as any) as PushTokenManagerModule; diff --git a/packages/expo-notifications/src/PushTokenManager.web.ts b/packages/expo-notifications/src/PushTokenManager.web.ts new file mode 100644 index 0000000000000..82f90c737146b --- /dev/null +++ b/packages/expo-notifications/src/PushTokenManager.web.ts @@ -0,0 +1,2 @@ +// mock +export default {}; diff --git a/packages/expo-notifications/src/TokenEmitter.ts b/packages/expo-notifications/src/TokenEmitter.ts new file mode 100644 index 0000000000000..7a2aeb9a6f5fa --- /dev/null +++ b/packages/expo-notifications/src/TokenEmitter.ts @@ -0,0 +1,24 @@ +import { EventEmitter, Subscription, Platform } from '@unimodules/core'; +import { DevicePushToken } from './getDevicePushTokenAsync'; +import PushTokenManager from './PushTokenManager'; + +export type TokenListener = (token: DevicePushToken) => void; + +// Web uses SyntheticEventEmitter +const tokenEmitter = new EventEmitter(PushTokenManager); +const newTokenEventName = 'onDevicePushToken'; + +export function addTokenListener(listener: TokenListener): Subscription { + const wrappingListener = ({ devicePushToken }) => + // @ts-ignore: TS can't decide what Platform.OS is. + listener({ data: devicePushToken, type: Platform.OS }); + return tokenEmitter.addListener(newTokenEventName, wrappingListener); +} + +export function removeTokenSubscription(subscription: Subscription) { + tokenEmitter.removeSubscription(subscription); +} + +export function removeAllTokenListeners() { + tokenEmitter.removeAllListeners(newTokenEventName); +} diff --git a/packages/expo-notifications/src/getDevicePushTokenAsync.ts b/packages/expo-notifications/src/getDevicePushTokenAsync.ts new file mode 100644 index 0000000000000..6418c0a944ec7 --- /dev/null +++ b/packages/expo-notifications/src/getDevicePushTokenAsync.ts @@ -0,0 +1,41 @@ +import { UnavailabilityError, Platform } from '@unimodules/core'; + +import PushTokenManager from './PushTokenManager'; + +export interface NativeDevicePushToken { + type: 'ios' | 'android'; + data: string; +} + +export interface WebDevicePushToken { + type: 'web'; + data: { + endpoint: string; + keys: { + p256dh: string; + auth: string; + }; + }; +} + +type ExplicitlySupportedDevicePushToken = NativeDevicePushToken | WebDevicePushToken; + +type ImplicitlySupportedDevicePushToken = { + type: Exclude; + data: any; +}; + +export type DevicePushToken = + | ExplicitlySupportedDevicePushToken + | ImplicitlySupportedDevicePushToken; + +export default async function getDevicePushTokenAsync(): Promise { + if (!PushTokenManager.getDevicePushTokenAsync) { + throw new UnavailabilityError('ExpoNotifications', 'getDevicePushTokenAsync'); + } + + const devicePushToken = await PushTokenManager.getDevicePushTokenAsync(); + + // @ts-ignore: TS thinks Platform.OS could be anything and can't decide what type is it + return { type: Platform.OS, data: devicePushToken }; +} diff --git a/packages/expo-notifications/src/getDevicePushTokenAsync.web.ts b/packages/expo-notifications/src/getDevicePushTokenAsync.web.ts new file mode 100644 index 0000000000000..b5014531adf8b --- /dev/null +++ b/packages/expo-notifications/src/getDevicePushTokenAsync.web.ts @@ -0,0 +1,111 @@ +import { CodedError, Platform, SyntheticPlatformEmitter } from '@unimodules/core'; +import Constants from 'expo-constants'; + +import { DevicePushToken } from './getDevicePushTokenAsync'; + +export default async function getDevicePushTokenAsync(): Promise { + const data = await _subscribeUserToPushAsync(); + SyntheticPlatformEmitter.emit('onDevicePushToken', { devicePushToken: data }); + return { type: Platform.OS, data }; +} + +function guardPermission() { + if (!('Notification' in window)) { + throw new Error('The Notification API is not available on this device.'); + } + if (!navigator.serviceWorker) { + throw new Error( + 'Notifications cannot be used because the service worker API is not supported on this device. This might also happen because your web page does not support HTTPS.' + ); + } + if (Notification.permission !== 'granted') { + throw new Error( + 'Cannot use Notifications without permissions. Please request permissions with `expo-permissions`' + ); + } +} + +async function _subscribeUserToPushAsync(): Promise { + if (!Constants.manifest.notification || !Constants.manifest.notification.vapidPublicKey) { + throw new CodedError( + 'E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG', + 'You must provide `notification.vapidPublicKey` in `app.json` to use push notifications on web. Learn more: https://docs.expo.io/versions/latest/guides/using-vapid/.' + ); + } + if (!Constants.manifest.notification || !Constants.manifest.notification.serviceWorkerPath) { + throw new CodedError( + 'E_NOTIFICATIONS_PUSH_WEB_MISSING_CONFIG', + 'You must provide `notification.serviceWorkerPath` in `app.json` to use push notifications on web. Please provide path to the service worker that will handle notifications.' + ); + } + guardPermission(); + + let registration: ServiceWorkerRegistration | null = null; + try { + registration = await navigator.serviceWorker.register( + Constants.manifest.notification.serviceWorkerPath + ); + } catch (error) { + throw new Error( + `Notifications might not be working because the service worker (${Constants.manifest.notification.serviceWorkerPath}) couldn't be registered: ${error}` + ); + } + await navigator.serviceWorker.ready; + + if (!registration.active) { + throw new Error( + 'Notifications might not be working because the service worker API is not active.' + ); + } + + const subscribeOptions = { + userVisibleOnly: true, + applicationServerKey: _urlBase64ToUint8Array(Constants.manifest.notification.vapidPublicKey), + }; + let pushSubscription: PushSubscription | null = null; + try { + pushSubscription = await registration.pushManager.subscribe(subscribeOptions); + } catch (error) { + throw new CodedError( + 'E_NOTIFICATIONS_PUSH_WEB_TOKEN_REGISTRATION_FAILED', + 'The device was unable to register for remote notifications with the browser endpoint. (' + + error + + ')' + ); + } + const pushSubscriptionJson = pushSubscription.toJSON(); + + const subscriptionObject = { + endpoint: pushSubscriptionJson.endpoint, + keys: { + p256dh: pushSubscriptionJson.keys!.p256dh, + auth: pushSubscriptionJson.keys!.auth, + }, + }; + + // Store notification icon string in service worker. + // This message is received by `/expo-service-worker.js`. + // We wrap it with `fromExpoWebClient` to make sure other message + // will not override content such as `notificationIcon`. + // https://stackoverflow.com/a/35729334/2603230 + let notificationIcon = (Constants.manifest.notification || {}).icon; + await registration.active.postMessage( + JSON.stringify({ fromExpoWebClient: { notificationIcon } }) + ); + + return subscriptionObject; +} + +// https://github.com/web-push-libs/web-push#using-vapid-key-for-applicationserverkey +function _urlBase64ToUint8Array(base64String: string): Uint8Array { + const padding = '='.repeat((4 - (base64String.length % 4)) % 4); + const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/'); + + const rawData = window.atob(base64); + const outputArray = new Uint8Array(rawData.length); + + for (let i = 0; i < rawData.length; ++i) { + outputArray[i] = rawData.charCodeAt(i); + } + return outputArray; +} diff --git a/packages/expo-notifications/src/index.ts b/packages/expo-notifications/src/index.ts new file mode 100644 index 0000000000000..444e33c073245 --- /dev/null +++ b/packages/expo-notifications/src/index.ts @@ -0,0 +1,2 @@ +export { default as getDevicePushTokenAsync } from './getDevicePushTokenAsync'; +export * from './TokenEmitter'; diff --git a/packages/expo-notifications/tsconfig.json b/packages/expo-notifications/tsconfig.json new file mode 100644 index 0000000000000..a24ec0ff2f600 --- /dev/null +++ b/packages/expo-notifications/tsconfig.json @@ -0,0 +1,9 @@ +// @generated by expo-module-scripts +{ + "extends": "expo-module-scripts/tsconfig.base", + "compilerOptions": { + "outDir": "./build" + }, + "include": ["./src"], + "exclude": ["**/__mocks__/*", "**/__tests__/*"] +} diff --git a/packages/expo-notifications/unimodule.json b/packages/expo-notifications/unimodule.json new file mode 100644 index 0000000000000..363fc92f99c13 --- /dev/null +++ b/packages/expo-notifications/unimodule.json @@ -0,0 +1,4 @@ +{ + "name": "expo-notifications", + "platforms": ["ios", "android"] +}