diff --git a/.github/workflows/mobile-sdk-demo-e2e.yml b/.github/workflows/mobile-sdk-demo-e2e.yml index d9e33cf72..0b31ac989 100644 --- a/.github/workflows/mobile-sdk-demo-e2e.yml +++ b/.github/workflows/mobile-sdk-demo-e2e.yml @@ -457,7 +457,7 @@ jobs: fi FORCE_BUNDLING=1 RCT_NO_LAUNCH_PACKAGER=1 \ - xcodebuild -workspace "$WORKSPACE_PATH" -scheme ${{ env.IOS_PROJECT_SCHEME }} -configuration Debug -destination "id=${{ env.IOS_SIMULATOR_ID }}" -derivedDataPath packages/mobile-sdk-demo/ios/build -jobs "$(sysctl -n hw.ncpu)" -parallelizeTargets -quiet COMPILER_INDEX_STORE_ENABLE=NO ONLY_ACTIVE_ARCH=YES SWIFT_COMPILATION_MODE=wholemodule || { echo "❌ iOS build failed"; exit 1; } + xcodebuild -workspace "$WORKSPACE_PATH" -scheme ${{ env.IOS_PROJECT_SCHEME }} -configuration Debug -destination "id=${{ env.IOS_SIMULATOR_ID }}" -derivedDataPath packages/mobile-sdk-demo/ios/build -jobs "$(sysctl -n hw.ncpu)" -parallelizeTargets -quiet COMPILER_INDEX_STORE_ENABLE=NO ONLY_ACTIVE_ARCH=YES SWIFT_COMPILATION_MODE=wholemodule 'SWIFT_ACTIVE_COMPILATION_CONDITIONS=$(inherited) E2E_TESTING' || { echo "❌ iOS build failed"; exit 1; } echo "✅ iOS build succeeded" - name: Build iOS Release Archive (unsigned) run: | diff --git a/app/ios/Podfile.lock b/app/ios/Podfile.lock index 3a44a4f13..cfff6c54e 100644 --- a/app/ios/Podfile.lock +++ b/app/ios/Podfile.lock @@ -2152,7 +2152,7 @@ PODS: - ReactCommon/turbomodule/core - Sentry/HybridSDK (= 8.53.2) - Yoga - - RNSVG (15.12.1): + - RNSVG (15.15.1): - DoubleConversion - glog - hermes-engine @@ -2172,9 +2172,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNSVG/common (= 15.12.1) + - RNSVG/common (= 15.15.1) - Yoga - - RNSVG/common (15.12.1): + - RNSVG/common (15.15.1): - DoubleConversion - glog - hermes-engine @@ -2671,7 +2671,7 @@ SPEC CHECKSUMS: RNReactNativeHapticFeedback: e526ac4a7ca9fb23c7843ea4fd7d823166054c73 RNScreens: 806e1449a8ec63c2a4e4cf8a63cc80203ccda9b8 RNSentry: f79dd124cc49088445c16d23955860dd0d1db6f3 - RNSVG: 0c1fc3e7b147949dc15644845e9124947ac8c9bb + RNSVG: 8cd7dadbe9bdc7d70872910dbe611c8e0f4597bb segment-analytics-react-native: 0eae155b0e9fa560fa6b17d78941df64537c35b7 Sentry: 59993bffde4a1ac297ba6d268dc4bbce068d7c1b SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 diff --git a/app/package.json b/app/package.json index 531105645..d21f71be9 100644 --- a/app/package.json +++ b/app/package.json @@ -164,7 +164,7 @@ "react-native-safe-area-context": "^5.6.2", "react-native-screens": "4.15.3", "react-native-sqlite-storage": "^6.0.1", - "react-native-svg": "15.12.1", + "react-native-svg": "15.15.1", "react-native-svg-web": "1.0.9", "react-native-url-polyfill": "^3.0.0", "react-native-web": "^0.21.2", diff --git a/packages/mobile-sdk-demo/ios/Podfile b/packages/mobile-sdk-demo/ios/Podfile index 386604467..381a7fb35 100644 --- a/packages/mobile-sdk-demo/ios/Podfile +++ b/packages/mobile-sdk-demo/ios/Podfile @@ -34,10 +34,9 @@ target "SelfDemoApp" do use_react_native!( :path => config[:reactNativePath], + :hermes_enabled => true, # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/..", - :fabric_enabled => false, - :hermes_enabled => true, ) # Use the custom NFCPassportReader fork diff --git a/packages/mobile-sdk-demo/ios/Podfile.lock b/packages/mobile-sdk-demo/ios/Podfile.lock index d93ccf5a5..2eadc15c9 100644 --- a/packages/mobile-sdk-demo/ios/Podfile.lock +++ b/packages/mobile-sdk-demo/ios/Podfile.lock @@ -8,17 +8,32 @@ PODS: - hermes-engine (0.76.9): - hermes-engine/Pre-built (= 0.76.9) - hermes-engine/Pre-built (0.76.9) - - Mixpanel-swift (5.0.0): - - Mixpanel-swift/Complete (= 5.0.0) - - Mixpanel-swift/Complete (5.0.0) + - lottie-ios (4.5.0) + - lottie-react-native (7.2.2): + - DoubleConversion + - glog + - hermes-engine + - lottie-ios (= 4.5.0) + - RCT-Folly (= 2024.10.14.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - mobile-sdk-alpha (0.1.0): - - NFCPassportReader - QKMRZParser - React-Core - - NFCPassportReader (2.1.1): - - Mixpanel-swift (~> 5.0.0) - - OpenSSL-Universal (= 1.1.1900) - - OpenSSL-Universal (1.1.1900) - QKMRZParser (2.0.0) - RCT-Folly (2024.10.14.00): - boost @@ -1300,7 +1315,7 @@ PODS: - Yoga - react-native-get-random-values (1.11.0): - React-Core - - react-native-safe-area-context (5.6.1): + - react-native-safe-area-context (5.6.2): - DoubleConversion - glog - hermes-engine @@ -1313,8 +1328,8 @@ PODS: - React-featureflags - React-graphics - React-ImageManager - - react-native-safe-area-context/common (= 5.6.1) - - react-native-safe-area-context/fabric (= 5.6.1) + - react-native-safe-area-context/common (= 5.6.2) + - react-native-safe-area-context/fabric (= 5.6.2) - React-NativeModulesApple - React-RCTFabric - React-rendererdebug @@ -1323,7 +1338,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context/common (5.6.1): + - react-native-safe-area-context/common (5.6.2): - DoubleConversion - glog - hermes-engine @@ -1344,7 +1359,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context/fabric (5.6.1): + - react-native-safe-area-context/fabric (5.6.2): - DoubleConversion - glog - hermes-engine @@ -1366,6 +1381,27 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga + - react-native-webview (13.16.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.10.14.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - React-nativeconfig (0.76.9) - React-NativeModulesApple (0.76.9): - glog @@ -1680,6 +1716,27 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga + - RNLocalize (3.6.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.10.14.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RNReactNativeHapticFeedback (2.3.3): - DoubleConversion - glog @@ -1701,7 +1758,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNSVG (15.12.1): + - RNSVG (15.15.1): - DoubleConversion - glog - hermes-engine @@ -1721,9 +1778,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNSVG/common (= 15.12.1) + - RNSVG/common (= 15.15.1) - Yoga - - RNSVG/common (15.12.1): + - RNSVG/common (15.15.1): - DoubleConversion - glog - hermes-engine @@ -1776,8 +1833,8 @@ DEPENDENCIES: - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - lottie-react-native (from `../node_modules/lottie-react-native`) - "mobile-sdk-alpha (from `../node_modules/@selfxyz/mobile-sdk-alpha`)" - - "NFCPassportReader (from `git@github.com:selfxyz/NFCPassportReader.git`, commit `04ede227cbfd377e2b4bc9b38f9a89eebdcab52f`)" - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) @@ -1811,6 +1868,7 @@ DEPENDENCIES: - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - react-native-webview (from `../node_modules/react-native-webview`) - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) @@ -1840,6 +1898,7 @@ DEPENDENCIES: - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - RNKeychain (from `../node_modules/react-native-keychain`) + - RNLocalize (from `../node_modules/react-native-localize`) - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) - RNSVG (from `../node_modules/react-native-svg`) - RNVectorIcons (from `../node_modules/react-native-vector-icons`) @@ -1847,8 +1906,7 @@ DEPENDENCIES: SPEC REPOS: trunk: - - Mixpanel-swift - - OpenSSL-Universal + - lottie-ios - QKMRZParser - SocketRocket @@ -1868,11 +1926,10 @@ EXTERNAL SOURCES: hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" :tag: hermes-2024-11-12-RNv0.76.2-5b4aa20c719830dcf5684832b89a6edb95ac3d64 + lottie-react-native: + :path: "../node_modules/lottie-react-native" mobile-sdk-alpha: :path: "../node_modules/@selfxyz/mobile-sdk-alpha" - NFCPassportReader: - :commit: 04ede227cbfd377e2b4bc9b38f9a89eebdcab52f - :git: "git@github.com:selfxyz/NFCPassportReader.git" RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -1935,6 +1992,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-get-random-values" react-native-safe-area-context: :path: "../node_modules/react-native-safe-area-context" + react-native-webview: + :path: "../node_modules/react-native-webview" React-nativeconfig: :path: "../node_modules/react-native/ReactCommon" React-NativeModulesApple: @@ -1993,6 +2052,8 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-async-storage/async-storage" RNKeychain: :path: "../node_modules/react-native-keychain" + RNLocalize: + :path: "../node_modules/react-native-localize" RNReactNativeHapticFeedback: :path: "../node_modules/react-native-haptic-feedback" RNSVG: @@ -2002,11 +2063,6 @@ EXTERNAL SOURCES: Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" -CHECKOUT OPTIONS: - NFCPassportReader: - :commit: 04ede227cbfd377e2b4bc9b38f9a89eebdcab52f - :git: "git@github.com:selfxyz/NFCPassportReader.git" - SPEC CHECKSUMS: boost: 1dca942403ed9342f98334bf4c3621f011aa7946 DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 @@ -2015,10 +2071,9 @@ SPEC CHECKSUMS: fmt: 01b82d4ca6470831d1cc0852a1af644be019e8f6 glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a hermes-engine: 9e868dc7be781364296d6ee2f56d0c1a9ef0bb11 - Mixpanel-swift: e9bef28a9648faff384d5ba6f48ecc2787eb24c0 - mobile-sdk-alpha: 126edf71b65b5a9e294725e4353c2705fa0fd20d - NFCPassportReader: 48873f856f91215dbfa1eaaec20eae639672862e - OpenSSL-Universal: 84efb8a29841f2764ac5403e0c4119a28b713346 + lottie-ios: a881093fab623c467d3bce374367755c272bdd59 + lottie-react-native: cf02eef1b7d48972f9422cf24f2f7b9a49235a32 + mobile-sdk-alpha: 4daf7bbd7c8d7f4a71947234414c2c7f29777b1f QKMRZParser: 6b419b6f07d6bff6b50429b97de10846dc902c29 RCT-Folly: ea9d9256ba7f9322ef911169a9f696e5857b9e17 RCTDeprecation: ebe712bb05077934b16c6bf25228bdec34b64f83 @@ -2050,7 +2105,8 @@ SPEC CHECKSUMS: React-Mapbuffer: 33546a3ebefbccb8770c33a1f8a5554fa96a54de React-microtasksnativemodule: d80ff86c8902872d397d9622f1a97aadcc12cead react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba - react-native-safe-area-context: 76bd6904253fc0f68fbc3d7f594b6a394d0ac34c + react-native-safe-area-context: a588bcb12a67155e7e16e7b322d4cc43794ed701 + react-native-webview: 416f3e4913deea20b2b7fdc5c44cb9ebf93509dc React-nativeconfig: 8efdb1ef1e9158c77098a93085438f7e7b463678 React-NativeModulesApple: cebca2e5320a3d66e123cade23bd90a167ffce5e React-perflogger: 72e653eb3aba9122f9e57cf012d22d2486f33358 @@ -2080,12 +2136,13 @@ SPEC CHECKSUMS: ReactCommon: 300d8d9c5cb1a6cd79a67cf5d8f91e4d477195f9 RNCAsyncStorage: 87a74d13ba0128f853817e45e21c4051e1f2cd45 RNKeychain: 850638785745df5f70c37251130617a66ec82102 + RNLocalize: bb04044d17e11029cbd3d6df7629f703434498de RNReactNativeHapticFeedback: a4429a7c923cdd31d44c74417b8330d8e93737bd - RNSVG: 8dd938fb169dd81009b74c2334780d7d2a04a373 + RNSVG: bf688cc1423de273f23abc4c79acac9ad2d61d95 RNVectorIcons: c95fdae217b0ed388f2b4d7ed7a4edc457c1df47 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: feb4910aba9742cfedc059e2b2902e22ffe9954a -PODFILE CHECKSUM: fdd4646d0ec2813c3447acfca4303578e4346210 +PODFILE CHECKSUM: c5da90e01a1f2fbadddbc1fe2c36caacd4e29251 COCOAPODS: 1.16.2 diff --git a/packages/mobile-sdk-demo/package.json b/packages/mobile-sdk-demo/package.json index 9a9a9a281..dce8518ec 100644 --- a/packages/mobile-sdk-demo/package.json +++ b/packages/mobile-sdk-demo/package.json @@ -14,6 +14,7 @@ "clean": "rm -rf ios/build android/app/build android/build && cd android && ./gradlew clean && cd ..", "format": "yarn nice", "ia": "yarn install-app", + "postinstall": "npx patch-package --patch-dir ../../patches || true", "install-app": "yarn install && yarn prebuild && cd ios && pod install && cd ..", "preios": "yarn prebuild", "ios": "react-native run-ios", diff --git a/patches/react-native-svg+15.15.1.patch b/patches/react-native-svg+15.15.1.patch new file mode 100644 index 000000000..07ce8e430 --- /dev/null +++ b/patches/react-native-svg+15.15.1.patch @@ -0,0 +1,24 @@ +diff --git a/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGLayoutableShadowNode.cpp b/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGLayoutableShadowNode.cpp +--- a/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGLayoutableShadowNode.cpp ++++ b/node_modules/react-native-svg/common/cpp/react/renderer/components/rnsvg/RNSVGLayoutableShadowNode.cpp +@@ -27,8 +27,18 @@ void RNSVGLayoutableShadowNode::updatePosition() { + auto style = yogaNode_.style(); + style.setPositionType(yoga::PositionType::Absolute); + style.setPosition(yoga::Edge::All, yoga::Style::Length::points(0)); +- style.setDimension(yoga::Dimension::Width, yoga::StyleSizeLength::percent(100)); +- style.setDimension(yoga::Dimension::Height, yoga::StyleSizeLength::percent(100)); ++#if REACT_NATIVE_MINOR_VERSION >= 78 ++ style.setDimension( ++ yoga::Dimension::Width, yoga::StyleSizeLength::percent(100)); ++ style.setDimension( ++ yoga::Dimension::Height, yoga::StyleSizeLength::percent(100)); ++#elif REACT_NATIVE_MINOR_VERSION >= 77 ++ style.setDimension(yoga::Dimension::Width, yoga::StyleLength::percent(100)); ++ style.setDimension(yoga::Dimension::Height, yoga::StyleLength::percent(100)); ++#else ++ style.setDimension(yoga::Dimension::Width, yoga::value::percent(100)); ++ style.setDimension(yoga::Dimension::Height, yoga::value::percent(100)); ++#endif + yogaNode_.setStyle(style); + } + diff --git a/yarn.lock b/yarn.lock index 4b27c31c1..f735821ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9092,7 +9092,7 @@ __metadata: react-native-safe-area-context: "npm:^5.6.2" react-native-screens: "npm:4.15.3" react-native-sqlite-storage: "npm:^6.0.1" - react-native-svg: "npm:15.12.1" + react-native-svg: "npm:15.15.1" react-native-svg-transformer: "npm:^1.5.2" react-native-svg-web: "npm:1.0.9" react-native-url-polyfill: "npm:^3.0.0" @@ -30315,20 +30315,6 @@ __metadata: languageName: node linkType: hard -"react-native-svg@npm:15.12.1": - version: 15.12.1 - resolution: "react-native-svg@npm:15.12.1" - dependencies: - css-select: "npm:^5.1.0" - css-tree: "npm:^1.1.3" - warn-once: "npm:0.1.1" - peerDependencies: - react: "*" - react-native: "*" - checksum: 10c0/ed94b57007125c715283fc760438ac8eac0677ced3201f6e272a7cd4459f3fecb672a8eed2c32664e5b8e6e0367585353b0f83f99b231f603d75094bb052c01f - languageName: node - linkType: hard - "react-native-svg@npm:15.15.1": version: 15.15.1 resolution: "react-native-svg@npm:15.15.1"