From f19c3b3b6c9822fdec5189f22f355dc71ba2f16f Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Wed, 3 Nov 2021 11:14:00 -0300 Subject: [PATCH] Enable Hermes on iOS (#5800) --- app/i18n/index.ts | 129 +++++++++-------------- ios/Mattermost.xcodeproj/project.pbxproj | 23 +++- ios/Podfile | 2 +- ios/Podfile.lock | 89 ++++++++++------ 4 files changed, 129 insertions(+), 114 deletions(-) diff --git a/app/i18n/index.ts b/app/i18n/index.ts index 97ebf6f33c..73c91e6b40 100644 --- a/app/i18n/index.ts +++ b/app/i18n/index.ts @@ -2,7 +2,6 @@ // See LICENSE.txt for license information. import moment from 'moment'; -import {Platform} from 'react-native'; import {getLocales} from 'react-native-localize'; import en from '@assets/i18n/en.json'; @@ -19,141 +18,113 @@ function loadTranslation(locale?: string) { switch (locale) { case 'de': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/de'); - require('@formatjs/intl-numberformat/locale-data/de'); - require('@formatjs/intl-datetimeformat/locale-data/de'); - } + require('@formatjs/intl-pluralrules/locale-data/de'); + require('@formatjs/intl-numberformat/locale-data/de'); + require('@formatjs/intl-datetimeformat/locale-data/de'); translations = require('@assets/i18n/de.json'); momentData = require('moment/locale/de'); break; case 'en-AU': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/en'); - require('@formatjs/intl-numberformat/locale-data/en'); - require('@formatjs/intl-datetimeformat/locale-data/en'); - } + require('@formatjs/intl-pluralrules/locale-data/en'); + require('@formatjs/intl-numberformat/locale-data/en'); + require('@formatjs/intl-datetimeformat/locale-data/en'); translations = require('@assets/i18n/en_AU.json'); momentData = require('moment/locale/en-au'); break; case 'es': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/es'); - require('@formatjs/intl-numberformat/locale-data/es'); - require('@formatjs/intl-datetimeformat/locale-data/es'); - } + require('@formatjs/intl-pluralrules/locale-data/es'); + require('@formatjs/intl-numberformat/locale-data/es'); + require('@formatjs/intl-datetimeformat/locale-data/es'); translations = require('@assets/i18n/es.json'); momentData = require('moment/locale/es'); break; case 'fr': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/fr'); - require('@formatjs/intl-numberformat/locale-data/fr'); - require('@formatjs/intl-datetimeformat/locale-data/fr'); - } + require('@formatjs/intl-pluralrules/locale-data/fr'); + require('@formatjs/intl-numberformat/locale-data/fr'); + require('@formatjs/intl-datetimeformat/locale-data/fr'); translations = require('@assets/i18n/fr.json'); momentData = require('moment/locale/fr'); break; case 'it': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/it'); - require('@formatjs/intl-numberformat/locale-data/it'); - require('@formatjs/intl-datetimeformat/locale-data/it'); - } + require('@formatjs/intl-pluralrules/locale-data/it'); + require('@formatjs/intl-numberformat/locale-data/it'); + require('@formatjs/intl-datetimeformat/locale-data/it'); translations = require('@assets/i18n/it.json'); momentData = require('moment/locale/it'); break; case 'ja': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/ja'); - require('@formatjs/intl-numberformat/locale-data/ja'); - require('@formatjs/intl-datetimeformat/locale-data/ja'); - } + require('@formatjs/intl-pluralrules/locale-data/ja'); + require('@formatjs/intl-numberformat/locale-data/ja'); + require('@formatjs/intl-datetimeformat/locale-data/ja'); translations = require('@assets/i18n/ja.json'); momentData = require('moment/locale/ja'); break; case 'ko': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/ko'); - require('@formatjs/intl-numberformat/locale-data/ko'); - require('@formatjs/intl-datetimeformat/locale-data/ko'); - } + require('@formatjs/intl-pluralrules/locale-data/ko'); + require('@formatjs/intl-numberformat/locale-data/ko'); + require('@formatjs/intl-datetimeformat/locale-data/ko'); translations = require('@assets/i18n/ko.json'); momentData = require('moment/locale/ko'); break; case 'nl': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/nl'); - require('@formatjs/intl-numberformat/locale-data/nl'); - require('@formatjs/intl-datetimeformat/locale-data/nl'); - } + require('@formatjs/intl-pluralrules/locale-data/nl'); + require('@formatjs/intl-numberformat/locale-data/nl'); + require('@formatjs/intl-datetimeformat/locale-data/nl'); translations = require('@assets/i18n/nl.json'); momentData = require('moment/locale/nl'); break; case 'pl': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/pl'); - require('@formatjs/intl-numberformat/locale-data/pl'); - require('@formatjs/intl-datetimeformat/locale-data/pl'); - } + require('@formatjs/intl-pluralrules/locale-data/pl'); + require('@formatjs/intl-numberformat/locale-data/pl'); + require('@formatjs/intl-datetimeformat/locale-data/pl'); translations = require('@assets/i18n/pl.json'); momentData = require('moment/locale/pl'); break; case 'pt-BR': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/pt'); - require('@formatjs/intl-numberformat/locale-data/pt'); - require('@formatjs/intl-datetimeformat/locale-data/pt'); - } + require('@formatjs/intl-pluralrules/locale-data/pt'); + require('@formatjs/intl-numberformat/locale-data/pt'); + require('@formatjs/intl-datetimeformat/locale-data/pt'); translations = require('@assets/i18n/pt-BR.json'); momentData = require('moment/locale/pt-br'); break; case 'ro': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/ro'); - require('@formatjs/intl-numberformat/locale-data/ro'); - require('@formatjs/intl-datetimeformat/locale-data/ro'); - } + require('@formatjs/intl-pluralrules/locale-data/ro'); + require('@formatjs/intl-numberformat/locale-data/ro'); + require('@formatjs/intl-datetimeformat/locale-data/ro'); translations = require('@assets/i18n/ro.json'); momentData = require('moment/locale/ro'); break; case 'ru': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/ru'); - require('@formatjs/intl-numberformat/locale-data/ru'); - require('@formatjs/intl-datetimeformat/locale-data/ru'); - } + require('@formatjs/intl-pluralrules/locale-data/ru'); + require('@formatjs/intl-numberformat/locale-data/ru'); + require('@formatjs/intl-datetimeformat/locale-data/ru'); translations = require('@assets/i18n/ru.json'); momentData = require('moment/locale/ru'); break; case 'tr': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/tr'); - require('@formatjs/intl-numberformat/locale-data/tr'); - require('@formatjs/intl-datetimeformat/locale-data/tr'); - } + require('@formatjs/intl-pluralrules/locale-data/tr'); + require('@formatjs/intl-numberformat/locale-data/tr'); + require('@formatjs/intl-datetimeformat/locale-data/tr'); translations = require('@assets/i18n/tr.json'); momentData = require('moment/locale/tr'); break; case 'uk': - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/uk'); - require('@formatjs/intl-numberformat/locale-data/uk'); - require('@formatjs/intl-datetimeformat/locale-data/uk'); - } + require('@formatjs/intl-pluralrules/locale-data/uk'); + require('@formatjs/intl-numberformat/locale-data/uk'); + require('@formatjs/intl-datetimeformat/locale-data/uk'); translations = require('@assets/i18n/uk.json'); momentData = require('moment/locale/uk'); @@ -169,11 +140,9 @@ function loadTranslation(locale?: string) { momentData = require('moment/locale/zh-tw'); break; default: - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/en'); - require('@formatjs/intl-numberformat/locale-data/en'); - require('@formatjs/intl-datetimeformat/locale-data/en'); - } + require('@formatjs/intl-pluralrules/locale-data/en'); + require('@formatjs/intl-numberformat/locale-data/en'); + require('@formatjs/intl-datetimeformat/locale-data/en'); translations = en; break; @@ -192,11 +161,9 @@ function loadTranslation(locale?: string) { } function loadChinesePolyfills() { - if (Platform.OS === 'android') { - require('@formatjs/intl-pluralrules/locale-data/zh'); - require('@formatjs/intl-numberformat/locale-data/zh'); - require('@formatjs/intl-datetimeformat/locale-data/zh'); - } + require('@formatjs/intl-pluralrules/locale-data/zh'); + require('@formatjs/intl-numberformat/locale-data/zh'); + require('@formatjs/intl-datetimeformat/locale-data/zh'); } export function getLocaleFromLanguage(lang: string) { diff --git a/ios/Mattermost.xcodeproj/project.pbxproj b/ios/Mattermost.xcodeproj/project.pbxproj index a3960cd7b5..20ae41bb90 100644 --- a/ios/Mattermost.xcodeproj/project.pbxproj +++ b/ios/Mattermost.xcodeproj/project.pbxproj @@ -449,6 +449,7 @@ AE4769B235D14E6C9C64EA78 /* Upload Debug Symbols to Sentry */, 7FFE32A91FD9CB650038C7A0 /* Embed App Extensions */, ED4C644925C525E30315E09E /* [CP] Copy Pods Resources */, + B1484B6A3F208DA26A730A27 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -694,6 +695,24 @@ shellPath = /bin/sh; shellScript = "./uploadDebugSymbols.sh\n"; }; + B1484B6A3F208DA26A730A27 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mattermost/Pods-Mattermost-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Mattermost/Pods-Mattermost-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; ED4C644925C525E30315E09E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1131,7 +1150,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -1177,7 +1196,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/ios/Podfile b/ios/Podfile index 629a896e7f..0a2163a629 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -16,7 +16,7 @@ target 'Mattermost' do use_react_native!( :path => config[:reactNativePath], # to enable hermes on iOS, change `false` to `true` and then install pods - :hermes_enabled => false + :hermes_enabled => true ) permissions_path = '../node_modules/react-native-permissions/ios' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 8ddcbc0fa2..c488bc66a6 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -29,9 +29,11 @@ PODS: - ReactCommon/turbomodule/core (= 0.66.1) - fmt (6.2.1) - glog (0.3.5) + - hermes-engine (0.9.0) - HMSegmentedControl (1.5.6) - jail-monkey (2.6.0): - React-Core + - libevent (2.1.12) - libwebp (1.2.0): - libwebp/demux (= 1.2.0) - libwebp/mux (= 1.2.0) @@ -56,6 +58,12 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog + - RCT-Folly/Futures (2021.06.28.00-v2): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - libevent - RCTRequired (0.66.1) - RCTTypeSafety (0.66.1): - FBLazyVector (= 0.66.1) @@ -225,6 +233,17 @@ PODS: - React-logger (= 0.66.1) - React-perflogger (= 0.66.1) - React-runtimeexecutor (= 0.66.1) + - React-hermes (0.66.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2021.06.28.00-v2) + - RCT-Folly/Futures (= 2021.06.28.00-v2) + - React-cxxreact (= 0.66.1) + - React-jsi (= 0.66.1) + - React-jsiexecutor (= 0.66.1) + - React-jsinspector (= 0.66.1) + - React-perflogger (= 0.66.1) - React-jsi (0.66.1): - boost (= 1.76.0) - DoubleConversion @@ -250,13 +269,13 @@ PODS: - React-Core - react-native-cookies (6.0.11): - React-Core - - react-native-document-picker (7.1.0): + - react-native-document-picker (7.1.1): - React-Core - react-native-emm (1.1.5): - React-Core - react-native-hw-keyboard-event (0.0.4): - React - - react-native-netinfo (6.0.2): + - react-native-netinfo (6.0.4): - React-Core - react-native-network-client (0.1.0): - Alamofire (~> 5.4) @@ -265,15 +284,15 @@ PODS: - SwiftyJSON (~> 5.0) - react-native-notifications (4.1.2): - React-Core - - react-native-paste-input (0.3.0): + - react-native-paste-input (0.3.3): - React-Core - Swime (= 3.0.6) - react-native-safe-area-context (3.3.2): - React-Core - - react-native-video (5.2.0-alpha1): + - react-native-video (5.2.0): - React-Core - - react-native-video/Video (= 5.2.0-alpha1) - - react-native-video/Video (5.2.0-alpha1): + - react-native-video/Video (= 5.2.0) + - react-native-video/Video (5.2.0): - React-Core - react-native-webview (11.14.1): - React-Core @@ -367,7 +386,7 @@ PODS: - React - RNDateTimePicker (3.5.2): - React-Core - - RNDeviceInfo (8.4.1): + - RNDeviceInfo (8.4.3): - React-Core - RNDevMenu (4.0.2): - React-Core @@ -387,7 +406,7 @@ PODS: - React-Core - RNPermissions (3.1.0): - React-Core - - RNReactNativeHapticFeedback (1.11.0): + - RNReactNativeHapticFeedback (1.13.0): - React-Core - RNReanimated (2.2.3): - DoubleConversion @@ -424,14 +443,14 @@ PODS: - RNScreens (3.8.0): - React-Core - React-RCTImage - - RNSentry (3.1.1): + - RNSentry (3.2.1): - React-Core - - Sentry (= 7.3.0) - - RNShare (7.2.0): + - Sentry (= 7.4.8) + - RNShare (7.2.1): - React-Core - RNSVG (12.1.1): - React - - RNVectorIcons (8.1.0): + - RNVectorIcons (9.0.0): - React-Core - Rudder (1.0.24) - SDWebImage (5.11.1): @@ -440,10 +459,10 @@ PODS: - SDWebImageWebPCoder (0.8.4): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.10) - - Sentry (7.3.0): - - Sentry/Core (= 7.3.0) - - Sentry/Core (7.3.0) - - simdjson (0.9.6-fix2) + - Sentry (7.4.8): + - Sentry/Core (= 7.4.8) + - Sentry/Core (7.4.8) + - simdjson (1.0.0) - Starscream (4.0.4) - SwiftyJSON (5.0.1) - Swime (3.0.6) @@ -455,7 +474,7 @@ PODS: - UMCore - UMTaskManagerInterface (6.2.0): - UMCore - - WatermelonDB (0.23.0): + - WatermelonDB (0.24.0): - React - React-jsi - XCDYouTubeKit (2.8.2) @@ -472,7 +491,9 @@ DEPENDENCIES: - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (~> 0.9.0) - jail-monkey (from `../node_modules/jail-monkey`) + - libevent (~> 2.1.12) - Permission-Camera (from `../node_modules/react-native-permissions/ios/Camera`) - Permission-PhotoLibrary (from `../node_modules/react-native-permissions/ios/PhotoLibrary`) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) @@ -486,6 +507,7 @@ DEPENDENCIES: - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) @@ -553,7 +575,9 @@ SPEC REPOS: trunk: - Alamofire - fmt + - hermes-engine - HMSegmentedControl + - libevent - libwebp - Rudder - SDWebImage @@ -607,6 +631,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" React-jsi: :path: "../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: @@ -746,8 +772,10 @@ SPEC CHECKSUMS: FBReactNativeSpec: 74c869e2cffa2ffec685cd1bac6788c021da6005 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 5337263514dd6f09803962437687240c5dc39aa4 + hermes-engine: bf7577d12ac6ccf53ab8b5af3c6ccf0dd8458c5c HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352 jail-monkey: 07b83767601a373db876e939b8dbf3f5eb15f073 + libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0 Permission-Camera: 0db4fd6e1c556c1cf47f38b989a8084cea3ec3dd Permission-PhotoLibrary: 9dcf80d1353d81b9f1e210c34291591236aaf2b6 @@ -760,21 +788,22 @@ SPEC CHECKSUMS: React-Core: e134d3a5d7b2a1a731589be776e20dbb14868f27 React-CoreModules: 2f8588b2aa47e7fef27125c8eaaabda963b3ac62 React-cxxreact: 8f1382538cad0cc8b8eafca6d66268828e353bea + React-hermes: 503642bd7704c60dcd1385c2da9607eac5260077 React-jsi: 9fe1854d2c0486216acebd5db3c38b4ccb23ca0b React-jsiexecutor: db2f6e22a534d466fc0e34e622df47d9d20bab2f React-jsinspector: 8c0517dee5e8c70cd6c3066f20213ff7ce54f176 React-logger: bfddd3418dc1d45b77b822958f3e31422e2c179b react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866 react-native-cookies: cd92f3824ed1e32a20802e8185101e14bb5b76da - react-native-document-picker: bf12b9ca87790f9b723106ffde0eff239928e515 + react-native-document-picker: f4cc4df2eff8c9015d862a59bdaef11a153f1292 react-native-emm: 7b22d6d2f7f68d218e5e2a6149084f0e6bbc4f5e react-native-hw-keyboard-event: b517cefb8d5c659a38049c582de85ff43337dc53 - react-native-netinfo: 92e6e4476eb8bf6fc2d7c0a6ca0a1406f663d73a + react-native-netinfo: 1c7676413ab265759c7b3da205efab163f5366ef react-native-network-client: 30ab97e7e6c8d6f2d2b10cc1ebad0cbf9c894c6e react-native-notifications: 97c14bf84c64bd6a6eb7bdcdb916036d93d33428 - react-native-paste-input: 9e6e9d6f5aff6b0a51c25c0402ac2a75cdffbbcc + react-native-paste-input: 3c615aaaabbb9c8b5a02d202ce031a1d6ec80f33 react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 - react-native-video: 3f739d35afe0cc643572c01822d8f062c3c6aca3 + react-native-video: a4c2635d0802f983594b7057e1bce8f442f0ad28 react-native-webview: db22ab831b8c5f7697957a67f7a7ac1cecfed18d React-perflogger: fcac6090a80e3d967791b4c7f1b1a017f9d4a398 React-RCTActionSheet: caf5913d9f9e605f5467206cf9d1caa6d47d7ad6 @@ -796,7 +825,7 @@ SPEC CHECKSUMS: RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 RNDateTimePicker: 7658208086d86d09e1627b5c34ba0cf237c60140 - RNDeviceInfo: 55175b0bd852c1c5d70d76efc04ed77799cef638 + RNDeviceInfo: 25a16a2a03049e88e800f3f41ca540e645b8a95a RNDevMenu: fd325b5554b61fe7f48d9205a3877cf5ee88cd7c RNFastImage: 1f2cab428712a4baaf78d6169eaec7f622556dd7 RNFileViewer: 83cc066ad795b1f986791d03b56fe0ee14b6a69f @@ -804,19 +833,19 @@ SPEC CHECKSUMS: RNKeychain: 4f63aada75ebafd26f4bc2c670199461eab85d94 RNLocalize: 74b82db20cc3895ccc25af992c644879bcec2815 RNPermissions: 4b54095940aea8c03fa3e6c92d4ac3647b31ed4e - RNReactNativeHapticFeedback: 653a8c126a0f5e88ce15ffe280b3ff37e1fbb285 + RNReactNativeHapticFeedback: b83bfb4b537bdd78eb4f6ffe63c6884f7b049ead RNReanimated: b04ef2a4f0cb61b062bbcf033f84a9e470f4f60b RNRudderSdk: 7206ae0874a055693aa81f8cc226bc535e3ea7ba RNScreens: 6e1ea5787989f92b0671049b808aef64fa1ef98c - RNSentry: 49abc89b0190b4c8afe0fa5d065f98e36cb53233 - RNShare: 70356a1bb406bc46ae03196a5d3048c702bb71a7 + RNSentry: 791f73292501ed1b2e95e62e9388b68fcc13261d + RNShare: edd621a71124961e29a7ba43a84bd1c6f9980d88 RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f - RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 + RNVectorIcons: 4143ba35feebab8fdbe6bc43d1e776b393d47ac8 Rudder: 941cdf1a5c26fccf1fa92e9aac1b6685ae1d19f9 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: f93010f3f6c031e2f8fb3081ca4ee6966c539815 - Sentry: 9a4e621430e2dae4477d791f2f7e905720b6efbf - simdjson: 85016870cd17207312b718ef6652eb6a1cd6a2b0 + Sentry: df92b78ba4ab86cf2a47ff4cdc07758a5ce18f03 + simdjson: c96317b3a50dff3468a42f586ab7ed22c6ab2fd9 Starscream: 5178aed56b316f13fa3bc55694e583d35dd414d9 SwiftyJSON: 2f33a42c6fbc52764d96f13368585094bfd8aa5e Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b @@ -824,11 +853,11 @@ SPEC CHECKSUMS: UMCore: ce3a4faa010239063b8343895b29a6d97b01069d UMReactNativeAdapter: d03cefd0e4e4179ab8c490408589f1c8a6c8b785 UMTaskManagerInterface: 2be431101b73604e64fbfffcf759336f9d8fccbb - WatermelonDB: 577c61fceff16e9f9103b59d14aee4850c0307b6 + WatermelonDB: e043b1a32ddc63864eb539b562e86ef80f8224cd XCDYouTubeKit: 79baadb0560673a67c771eba45f83e353fd12c1f Yoga: 2b4a01651f42a32f82e6cef3830a3ba48088237f YoutubePlayer-in-WKWebView: cfbf46da51d7370662a695a8f351e5fa1d3e1008 -PODFILE CHECKSUM: b7ae70eab69dbc195f8f145338e347c9afbeb102 +PODFILE CHECKSUM: 7d223db07581157903686d5b376c1b697a056354 COCOAPODS: 1.10.2