From 258cb7ef28967f1e7a53bcc2ad65131fdeaedfde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20St=C3=A6rk?= Date: Sat, 24 Oct 2026 10:22:40 +0200 Subject: [PATCH] fix(ios): Minor tweaks to make IOS app 1.4.0 build succesfully --- formulus/Gemfile | 2 + formulus/Gemfile.lock | 35 +++- .../ios/Formulus.xcodeproj/project.pbxproj | 18 +- formulus/ios/Podfile.lock | 190 +++++++++--------- formulus/metro.config.js | 30 +-- 5 files changed, 151 insertions(+), 124 deletions(-) diff --git a/formulus/Gemfile b/formulus/Gemfile index e6ce68ea6..347fef8a4 100644 --- a/formulus/Gemfile +++ b/formulus/Gemfile @@ -14,3 +14,5 @@ gem 'bigdecimal' gem 'logger' gem 'benchmark' gem 'mutex_m' +gem 'nkf' +gem 'tsort' diff --git a/formulus/Gemfile.lock b/formulus/Gemfile.lock index 79061e1cb..49ebb9d47 100644 --- a/formulus/Gemfile.lock +++ b/formulus/Gemfile.lock @@ -1,19 +1,26 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.9) - activesupport (6.1.7.10) - concurrent-ruby (~> 1.0, >= 1.0.2) + CFPropertyList (3.0.8) + activesupport (7.2.4) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5, < 3) + drb i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) + logger (>= 1.4.2) + minitest (>= 5.1, < 6) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) atomos (0.1.3) + base64 (0.3.0) benchmark (0.5.0) bigdecimal (4.1.2) claide (1.1.0) @@ -56,6 +63,8 @@ GEM cocoapods-try (1.2.0) colored2 (3.1.2) concurrent-ruby (1.3.7) + connection_pool (2.5.5) + drb (2.2.3) escape (0.0.4) ethon (0.18.0) ffi (>= 1.15.0) @@ -66,19 +75,22 @@ GEM gh_inspector (1.1.3) httpclient (2.9.0) mutex_m - i18n (1.14.8) + i18n (1.15.2) concurrent-ruby (~> 1.0) json (2.7.6) logger (1.7.0) - minitest (5.25.4) + minitest (5.27.0) molinillo (0.8.0) mutex_m (0.3.0) nanaimo (0.3.0) nap (1.1.0) netrc (0.11.0) + nkf (0.3.0) public_suffix (4.0.7) rexml (3.4.4) ruby-macho (2.5.1) + securerandom (0.4.1) + tsort (0.2.0) typhoeus (1.6.0) ethon (>= 0.18.0) tzinfo (2.0.6) @@ -90,7 +102,6 @@ GEM colored2 (~> 3.1) nanaimo (~> 0.3.0) rexml (>= 3.3.6, < 4.0) - zeitwerk (2.6.18) PLATFORMS ruby @@ -103,10 +114,12 @@ DEPENDENCIES concurrent-ruby (< 1.3.8) logger mutex_m + nkf + tsort xcodeproj (< 1.26.0) RUBY VERSION - ruby 2.6.10p210 + ruby 2.6.10p210 BUNDLED WITH - 1.17.2 + 4.0.16 diff --git a/formulus/ios/Formulus.xcodeproj/project.pbxproj b/formulus/ios/Formulus.xcodeproj/project.pbxproj index 2a2a93da9..4113549f1 100644 --- a/formulus/ios/Formulus.xcodeproj/project.pbxproj +++ b/formulus/ios/Formulus.xcodeproj/project.pbxproj @@ -7,8 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - C8D57190B6474EF1A9281001 /* ProfileDatabaseLifecycle.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D57190B6474EF1A9281002 /* ProfileDatabaseLifecycle.m */; }; - C8D57190B6474EF1A9281003 /* UserAppModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D57190B6474EF1A9281004 /* UserAppModule.m */; }; 1193EE707CAC4D60AE9E8B77 /* FormulusInjectionScript.js in Resources */ = {isa = PBXBuildFile; fileRef = B9003E8457E34C9983C8BD62 /* FormulusInjectionScript.js */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 26E6854810A440EEBBB569C8 /* formulus-load.js in Resources */ = {isa = PBXBuildFile; fileRef = 19DC13F6A6224E0BB450C5CB /* formulus-load.js */; }; @@ -18,14 +16,13 @@ 92DE80C6F6664AA2AF375F73 /* formplayer_dist in Resources */ = {isa = PBXBuildFile; fileRef = EBDD571F89894B28B8C91913 /* formplayer_dist */; }; A1B2C3D4E5F60718293A4B5C /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4E5F60718293A4B5D /* SceneDelegate.swift */; }; A403F6B5C831432092D6432A /* formulus-api.js in Resources */ = {isa = PBXBuildFile; fileRef = 672207178378430481699308 /* formulus-api.js */; }; + C8D57190B6474EF1A9281001 /* ProfileDatabaseLifecycle.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D57190B6474EF1A9281002 /* ProfileDatabaseLifecycle.m */; }; + C8D57190B6474EF1A9281003 /* UserAppModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C8D57190B6474EF1A9281004 /* UserAppModule.m */; }; D1F3D891BD4E91B83D93379D /* libPods-Formulus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35A5068D571FAAC91153000D /* libPods-Formulus.a */; }; E2D4C3847B9CFE032014F121 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - C8D57190B6474EF1A9281002 /* ProfileDatabaseLifecycle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ProfileDatabaseLifecycle.m; path = Formulus/ProfileDatabaseLifecycle.m; sourceTree = ""; }; - C8D57190B6474EF1A9281004 /* UserAppModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = UserAppModule.m; path = Formulus/UserAppModule.m; sourceTree = ""; }; - C8D57190B6474EF1A9281005 /* ProfileDatabaseLifecycle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ProfileDatabaseLifecycle.h; path = Formulus/ProfileDatabaseLifecycle.h; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Formulus.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Formulus.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Formulus/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Formulus/Info.plist; sourceTree = ""; }; @@ -40,6 +37,9 @@ A1B2C3D4E5F60718293A4B5D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SceneDelegate.swift; path = Formulus/SceneDelegate.swift; sourceTree = ""; }; B069022F6C1C274ADFA7DCBD /* Pods-Formulus.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Formulus.debug.xcconfig"; path = "Target Support Files/Pods-Formulus/Pods-Formulus.debug.xcconfig"; sourceTree = ""; }; B9003E8457E34C9983C8BD62 /* FormulusInjectionScript.js */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FormulusInjectionScript.js; path = ../assets/webview/FormulusInjectionScript.js; sourceTree = ""; }; + C8D57190B6474EF1A9281002 /* ProfileDatabaseLifecycle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ProfileDatabaseLifecycle.m; path = Formulus/ProfileDatabaseLifecycle.m; sourceTree = ""; }; + C8D57190B6474EF1A9281004 /* UserAppModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = UserAppModule.m; path = Formulus/UserAppModule.m; sourceTree = ""; }; + C8D57190B6474EF1A9281005 /* ProfileDatabaseLifecycle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ProfileDatabaseLifecycle.h; path = Formulus/ProfileDatabaseLifecycle.h; sourceTree = ""; }; EBDD571F89894B28B8C91913 /* formplayer_dist */ = {isa = PBXFileReference; lastKnownFileType = folder; path = formplayer_dist; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -253,10 +253,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-frameworks.sh\"\n"; @@ -287,10 +291,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-resources-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-resources-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Formulus/Pods-Formulus-resources.sh\"\n"; diff --git a/formulus/ios/Podfile.lock b/formulus/ios/Podfile.lock index cd96c0d0a..eb433ab2b 100644 --- a/formulus/ios/Podfile.lock +++ b/formulus/ios/Podfile.lock @@ -8,7 +8,7 @@ PODS: - hermes-engine (0.14.0): - hermes-engine/Pre-built (= 0.14.0) - hermes-engine/Pre-built (0.14.0) - - NitroModules (0.35.7): + - NitroModules (0.35.10): - boost - DoubleConversion - fast_float @@ -37,7 +37,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - NitroSound (0.2.14): + - NitroSound (0.2.19): - boost - DoubleConversion - fast_float @@ -1979,7 +1979,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - react-native-document-picker (12.0.1): + - react-native-document-picker (12.0.2): - boost - DoubleConversion - fast_float @@ -2063,7 +2063,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - react-native-safe-area-context (5.8.0): + - react-native-safe-area-context (5.9.1): - boost - DoubleConversion - fast_float @@ -2081,8 +2081,8 @@ PODS: - React-graphics - React-ImageManager - React-jsi - - react-native-safe-area-context/common (= 5.8.0) - - react-native-safe-area-context/fabric (= 5.8.0) + - react-native-safe-area-context/common (= 5.9.1) + - react-native-safe-area-context/fabric (= 5.9.1) - React-NativeModulesApple - React-RCTFabric - React-renderercss @@ -2093,7 +2093,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - react-native-safe-area-context/common (5.8.0): + - react-native-safe-area-context/common (5.9.1): - boost - DoubleConversion - fast_float @@ -2121,7 +2121,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - react-native-safe-area-context/fabric (5.8.0): + - react-native-safe-area-context/fabric (5.9.1): - boost - DoubleConversion - fast_float @@ -2153,7 +2153,7 @@ PODS: - react-native-vector-icons-fontawesome6 (12.4.0) - react-native-vector-icons-material-design-icons (12.5.0) - react-native-vector-icons-material-icons (12.5.0) - - react-native-webview (13.16.1): + - react-native-webview (13.17.0): - boost - DoubleConversion - fast_float @@ -2798,7 +2798,7 @@ PODS: - React-Core - RNFS (2.20.0): - React-Core - - RNGestureHandler (2.31.2): + - RNGestureHandler (2.32.0): - boost - DoubleConversion - fast_float @@ -2887,7 +2887,7 @@ PODS: - RNNotifee/NotifeeCore (= 9.1.8) - RNNotifee/NotifeeCore (9.1.8): - React-Core - - RNPermissions (5.5.1): + - RNPermissions (5.6.1): - boost - DoubleConversion - fast_float @@ -2915,7 +2915,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNScreens (4.25.0): + - RNScreens (4.25.2): - boost - DoubleConversion - fast_float @@ -2942,10 +2942,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNScreens/common (= 4.25.0) + - RNScreens/common (= 4.25.2) - SocketRocket - Yoga - - RNScreens/common (4.25.0): + - RNScreens/common (4.25.2): - boost - DoubleConversion - fast_float @@ -3372,104 +3372,104 @@ SPEC CHECKSUMS: fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 hermes-engine: b1a500c95a30f4e24f8a37307a5dd616596d5839 - NitroModules: 9ec4a2e0b9af22ba1f1f550e1dd9be94143afd18 - NitroSound: cc28b13db9a40dfa3fc184be3e8f15d07925d10f + NitroModules: 181b4768f950d939f73aa79296f71c1eec5b13dd + NitroSound: e20d6942b0692dd1f76dc546de21dc918bfbac79 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: a41bbdd9af30bf2e5715796b313e44ec43eefff1 RCTRequired: 7be34aabb0b77c3cefe644528df0fa0afad4e4d0 RCTSwiftUI: a6c7271c39098bf00dbdad8f8ed997a59bbfbe44 - RCTSwiftUIWrapper: ff9098ccf7727e58218f2f8ea110349863f43438 + RCTSwiftUIWrapper: 5ec163e8fde163d3fba714a992b50a266e1ece37 RCTTypeSafety: 27927d0ca04e419ed9467578b3e6297e37210b5c React: 4bc1f928568ad4bcfd147260f907b4ea5873a03b React-callinvoker: 87f8728235a0dc62e9dc19b3851c829d9347d015 - React-Core: 76bed73b02821e5630e7f2cb2e82432ee964695d - React-CoreModules: 752dbfdaeb096658aa0adc4a03ba6214815a08df - React-cxxreact: b6798528aa601c6db66e6adc7e2da2b059c8be74 + React-Core: 19e0183e28d7a6613ecacebd7525fe6650efa3b6 + React-CoreModules: 73cc86f2a0ff84b93d6325073ad2e4874d21ad40 + React-cxxreact: 4bf734645c77c9b86e2f3e933e0411cf2f14d1ba React-debug: 8978deb306f6f38c28b5091e52b0ac9f942b157e - React-defaultsnativemodule: 682b77ef4acfb298017be15f4f93c1d998deb174 - React-domnativemodule: 4c4b44f7eb68dbc3a2218db088bef318a7302017 - React-Fabric: b6f82a4d8498ce4475586f71ca8397a771fe292d - React-FabricComponents: c8695f4b11918a127c4560d66f7d3fdb01a17986 - React-FabricImage: d64f48830f63830e8ffaaf69fa487116856fbbf1 - React-featureflags: 2a46b229903e906d33dbaf9207ce57c59306c369 - React-featureflagsnativemodule: cba6c0814051a0934f8bcee4a436ee2a6bcc9754 - React-graphics: 3d0435051e1ab8904d065f8ffbe981a9fc202841 - React-hermes: 32fc9c231c1aa5c2fcfe851b0d19ee9269f88f4c - React-idlecallbacksnativemodule: f8ee42581795c4844d97147596bcc2d824c0f188 - React-ImageManager: e8f7377ef0585fd2df05559a17e01a03e187d5cf - React-intersectionobservernativemodule: b1bea12ca29accdd2eda60c87605a6030b894eb9 - React-jserrorhandler: 1a86df895b4eaf4e771abe8cf34cbb26d821f771 - React-jsi: adf8527fec197ad9d0480cc5b8945eb56de627f0 - React-jsiexecutor: 315fa2f879b43e3a9ca08f5f4b733472f7e4e8a4 - React-jsinspector: b4fd1933666bcb2549b566b40656c1e45e9d7632 - React-jsinspectorcdp: 80141710f2668e5b8f00417298d9b76b4abf90fa - React-jsinspectornetwork: 1d3ea717dbbec316cd8c21a0af53928a7bf74901 - React-jsinspectortracing: 4ce745374d4b2bfbd164cce9f8de8383d3d818a0 - React-jsitooling: fc4ac4c3b1f3f9f7fedf0c777c6ff3f244f568bd - React-jsitracing: bff08a6faeef4a9bd286487da191f5e5329e21a9 - React-logger: b8483fa08e0d62e430c76d864309d90576ca2f68 - React-Mapbuffer: 7b72a669e94662359dad4f42b5af005eb24b4e83 - React-microtasksnativemodule: cdc02da075f2857803ed63f24f5f72fc40e094c0 - react-native-blur: 6af83e7e3c4c1446a188d9b2c493600fc4beb173 - react-native-document-picker: dc2d83366e47e89e7c51e8a41eab99c1d54e941c - react-native-geolocation: 95e48fe2687e5a8280103085372fa62c2297c5d6 - react-native-image-picker: 0314366753615115fa55c3cc937ac44cb7e75702 - react-native-safe-area-context: ebd2c2ece5e6e650a6963184039ec8cfd8960d86 + React-defaultsnativemodule: 724eb9ec388d494f1e2057d83355ee8fe6f1d780 + React-domnativemodule: 9068f41092f725acd09950233d2847364c731947 + React-Fabric: 945cc8abf08d9d0966acef605bffce7b501c49d9 + React-FabricComponents: 4c4ad6f0d16c964a68f945e029505e2eeec6654b + React-FabricImage: a8b628fd98db21b9f8588e06f14a9194dda11b40 + React-featureflags: 0937601c1af1cc125851ec5bbf4654285d47a3e7 + React-featureflagsnativemodule: ac1a3e0353e1a6e15411b17ed6c7122adb0468a4 + React-graphics: cca521e06463608be46207a4aa160f8a7f725f8b + React-hermes: ec50b9fcea2c3bfdd42f8cec845eac3f35888572 + React-idlecallbacksnativemodule: effcae5b7b4473211adb154aaa321d5d9e2fbcc9 + React-ImageManager: b38459e538f1840fa5c3e7612a4bcb0029a3c366 + React-intersectionobservernativemodule: 8d33366661971200cf2e151727f6fe007b62ae7b + React-jserrorhandler: f94c688a0dbe2e045b91b992722b92e97d56f77f + React-jsi: 3216c876cd4c571a57909e22d77c8fd9530aa067 + React-jsiexecutor: 475563c0042841a85930a455d3199f6b1483a5fe + React-jsinspector: bc484fb32bf1b9fed80afe8793e614eba4f7b39e + React-jsinspectorcdp: 5a574d1d35016968a67e78e6b8a7917473ffbb77 + React-jsinspectornetwork: dce3a5a1351b527ee8c28ad4a8bdd211507e1a45 + React-jsinspectortracing: 65f6b166bd67e5adc31eba027e1570bacf7a3cc7 + React-jsitooling: d5463f5489a31640b0fa0ec4e31566ca8aa86c13 + React-jsitracing: 3c7fc18821aba64855acb8658aa857ca6a7fddf6 + React-logger: 6ac901f5c7f7321d2be1a40b203bccc2e23411e3 + React-Mapbuffer: 2e0e7cc5b7064eaed9c8b8afc3a87621cb7ef5cd + React-microtasksnativemodule: dd4d33b251b57e5027c572c6d0b45cbfbcfaa386 + react-native-blur: ba0e9ad6274783c8d45f42da82acae02e25784ad + react-native-document-picker: afd72c832b22b62f935e1ebd996b33c712350906 + react-native-geolocation: c43df081568b7568b4d68240a03263037b2eb90f + react-native-image-picker: 43e6cd4231e670030fe09b079d696fa5a634ccfc + react-native-safe-area-context: ea8d3b0316294718e1a91037b380a48358993610 react-native-vector-icons-fontawesome6: 4818cfee1b9283e57f5476778b21bdb490a08941 react-native-vector-icons-material-design-icons: 95914f2f6b18e26e5c9563afe33184e110afe674 react-native-vector-icons-material-icons: 8717ed6d0adafdea7a20475dababba112992a372 - react-native-webview: 8407aaaf6b539b1e38b72fabb55d6885de03beaf - React-NativeModulesApple: a2c3d2cbec893956a5b3e4060322db2984fff75b - React-networking: 3f98bd96893a294376e7e03730947a08d474c380 + react-native-webview: 338443f3366b73c7ae1ff11e97322330acbc3481 + React-NativeModulesApple: 7f2f2fed3f6c858889eb61d09941be965d52df58 + React-networking: 43e5e6773ac2ca2a93261a1388fed269c9fce092 React-oscompat: 80166b66da22e7af7fad94474e9997bd52d4c8c6 - React-perflogger: d6797918d2b1031e91a9d8f5e7fdd2c8728fb390 - React-performancecdpmetrics: 5570be61e2f97c4741c5d432c91570e8e5a39892 - React-performancetimeline: 5763499ae1991fc18dcf416e340ce7bc829bb298 + React-perflogger: 63c90e0d8c24df87ffa14dad01aeafc352847dd0 + React-performancecdpmetrics: 5a9b81c08f75045635127d626440d9ada01e774b + React-performancetimeline: 31cebfff69ec9174b3fb54b0606fcb12ef91cbad React-RCTActionSheet: 3bd5f5db9f983cf38d51bb9a7a198e2ebea94821 - React-RCTAnimation: 46a9978f27dc434dbeed16afa7b82619b690a9af - React-RCTAppDelegate: 62ecd60a2b2a8cae26ce6a066bfa59cfde97af01 - React-RCTBlob: 8285c859513023ee3cc8c806d9b59d4da078c4ba - React-RCTFabric: 05ed09347e938de985052f791a6a0698816d5761 - React-RCTFBReactNativeSpec: 83ba579fca9a51e774ac32578ef5dd3262edd7e2 - React-RCTImage: a5364d0f098692cfbf5bef1e8a63e7712ecb14b7 - React-RCTLinking: 34b63b0aa0e92d30f5d7aa2c255a8f95fa75ee8f - React-RCTNetwork: 1ef88b7a5310b8f915d3556b5b247def113191ed - React-RCTRuntime: ed29cf68a46782fec891e5afe1d8d758ca6ccd9b - React-RCTSettings: 2c45623d6c0f30851a123f621eb9d32298bcbb0c - React-RCTText: 0ee70f5dc18004b4d81b2c214267c6cbec058587 - React-RCTVibration: 88557e21e7cc3fe76b5b174cba28ff45c6def997 + React-RCTAnimation: 346865a809fa5132f6c594c8b376c6cf46b44e88 + React-RCTAppDelegate: b2d1e0d3663c987f49f45094883b9e36fcbf0181 + React-RCTBlob: 74759ebb7ff9077d19f60c301782c1f8c3eb2813 + React-RCTFabric: 7b4b14dad21ca99333ebcbc0bf5c205647a315a8 + React-RCTFBReactNativeSpec: 39151968adb68b8c59f29a8bd4223d4d7780a793 + React-RCTImage: 60763f56e8a5e45d861d7c4777e428bb820ec52a + React-RCTLinking: 52aee78b0b3163167c7fcf58f80a42943c03a056 + React-RCTNetwork: f5e1e8ae5eff6982efff6289b06ec0a76d0a6ac2 + React-RCTRuntime: 0e99199322afd372e74b95ae5c58f4e074cc2855 + React-RCTSettings: 298bb40d3412bf32e0b4f0797e48416b0b7278a1 + React-RCTText: dfb74800e27d792d1188fa975a3b9807c3362e3e + React-RCTVibration: ffe5fd4f50a835e353a3b6869eb005dab11eea44 React-rendererconsistency: d280314a3e7f0097152f89e815b4de821c2be8b9 - React-renderercss: f8cbf83d95c2c2bbf893d37fe50c73f046584411 - React-rendererdebug: 37216ddfcd38e49d1e92bf9052ea4bc9d7b932e5 - React-RuntimeApple: 1c0e7cb8e1c2c5775585afcaaa666ec151629a8d - React-RuntimeCore: 925fe2ca24cf8e6ed87586dbb92827306b93b83f - React-runtimeexecutor: 962dae024f6df760d029512a7d99e3f73d570935 - React-RuntimeHermes: 19a7c59ec1bc9908516f0bbc29b49425f6ec64ba - React-runtimescheduler: 62f21127cd97f4d8f164eee5150d3ce53dd36f66 - React-timing: 8757bf6fb96227c264f2d1609f4ba5c68217b8ce - React-utils: 8ab26781c2f5c2f7fafb2022c8ab39d39f231b80 - React-webperformancenativemodule: 7953b7fe519f76fa595111fe18ff3d5de131bfe9 - ReactAppDependencyProvider: 0eb286cc274abb059ee601b862ebddac2e681d01 - ReactCodegen: 3d48510bcef445f6403c0004047d4d9cbb915435 - ReactCommon: ac934cb340aee91282ecd6f273a26d24d4c55cae - ReactNativeCameraKit: 21c717ad3fc6f040b4293a07c4300aae3f1007d0 - RNCAsyncStorage: 29f0230e1a25f36c20b05f65e2eb8958d6526e82 - RNDeviceInfo: 4c852998208b60dc192ae3529e5867817719ad1e - RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8 - RNGestureHandler: d7ebd5abfdf03ddebef995d2f828a9f07fca7990 - RNKeychain: a2c134ab796272c3d605e035ab727591000b30f3 - RNLocalize: 1aedbc2c15073861a364174919d23c31c5924b16 - RNNotifee: 5e3b271e8ea7456a36eec994085543c9adca9168 - RNPermissions: 2855e32ee61887ee86a4d38477744d22d8f94c3a - RNScreens: 82303e628dc897156e686705597f2bbcbfa027c3 - RNSVG: 6470d6f2636d71bd4bbc44a4f27fb7444e437b2f - RNZipArchive: 0f7498c241e20d276d9cfa50ab35df4c572497d0 + React-renderercss: 8a1a346f3665fd5ea7a7be7b3b9f95d4743e1180 + React-rendererdebug: af74afdfb3d6c5382ebab35562efd8eb9e690473 + React-RuntimeApple: 06e33d291e72fd0c73ac47046c3536d77d5aeedd + React-RuntimeCore: 99273d2af072062eb07f0b2d2d4a0f2de697ea14 + React-runtimeexecutor: 2063c03c18810ee57939d138142e6493333360ef + React-RuntimeHermes: 2253a7f4c8d56b449230b330b0b15383ed4b3df4 + React-runtimescheduler: ff37ac6720a943da91645c06274282ac46b71f23 + React-timing: 831d7e081ba4c332ca5cccf389b88e363f13f2b4 + React-utils: 25db6c17598c4fed22b5956d7551bb8bddf1f95b + React-webperformancenativemodule: 57e41e6193cfb815bde0b5534bef68673f1270eb + ReactAppDependencyProvider: bfb12ead469222b022a2024f32aba47ce50de512 + ReactCodegen: 0cca10568bc31a39530ceb15c933d354c2d7786b + ReactCommon: 05ad684db7d88e194272ae26baddf6300e30b8b7 + ReactNativeCameraKit: 7c618fc1209df8dd2c4e02d0b6ec5c557dc4b934 + RNCAsyncStorage: 302f2fac014fd450046c120567ca364632da682b + RNDeviceInfo: d79872e11c8e9c4de0d65b0ee6e0cee719f37fea + RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 + RNGestureHandler: 336ce8e4fb4f4eb3e0b7c18e092684caa0ace5b5 + RNKeychain: 182d986f809280edd9444a557adc21845f7d1e6f + RNLocalize: cb5b0df30f7c0cbaf2de6b48cdb12673b79e442a + RNNotifee: 4a6ee5c7deaf00e005050052d73ee6315dff7ec9 + RNPermissions: 8f13eda40023a9c9bbd8289601a14864137e4d75 + RNScreens: fc76f47e82d3616284684203ebab6e952dd7f28a + RNSVG: c98cd946f63499d08b8e3a204b6c31b4b14adb1b + RNZipArchive: 48992d3f05da2885b056e817a1fce7cbe60ff8e3 simdjson: 7bb9e33d87737cec966e7b427773c67baa4458fe SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 SSZipArchive: c69881e8ac5521f0e622291387add5f60f30f3c4 - WatermelonDB: 75e467adbaf2cb2809780fb3eda7ce4964e11778 + WatermelonDB: 8dafe8b8a23dc6d8e033e1086449b8e2638d9453 Yoga: 5456bb010373068fc92221140921b09d126b116e -PODFILE CHECKSUM: 6722456403320ad9c91f4851f86bdf6923985fd6 +PODFILE CHECKSUM: d16595fa38049419f8007a2f4c8f1985dc7d5217 -COCOAPODS: 1.17.0 +COCOAPODS: 1.15.2 diff --git a/formulus/metro.config.js b/formulus/metro.config.js index 7b269fc6c..e0049e5bc 100644 --- a/formulus/metro.config.js +++ b/formulus/metro.config.js @@ -1,4 +1,5 @@ import { getDefaultConfig, mergeConfig } from '@react-native/metro-config'; +import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -21,27 +22,30 @@ const workspaceWatchFolders = [ */ const projectRoot = __dirname; +/** + * Real path of a package in the app's node_modules. pnpm's isolated layout + * symlinks top-level packages into node_modules/.pnpm/…; returning the symlink + * path from resolveRequest makes Metro resolve that package's own (unhoisted) + * dependencies, e.g. react-native → invariant, from the wrong directory. + */ +const appModule = name => + fs.realpathSync(path.resolve(projectRoot, 'node_modules', name)); + /** * Force react and react-native to always resolve from the app's node_modules * (avoids incomplete copy in packages/components). react-native-svg only uses * extraNodeModules so Metro resolves its real entry (lib/commonjs/index.js). */ -const babelRuntimeRoot = path.resolve( - projectRoot, - 'node_modules/@babel/runtime', -); +const babelRuntimeRoot = appModule('@babel/runtime'); const forcedModules = { - react: path.resolve(projectRoot, 'node_modules/react'), - 'react-native': path.resolve(projectRoot, 'node_modules/react-native'), + react: appModule('react'), + 'react-native': appModule('react-native'), '@babel/runtime': babelRuntimeRoot, }; const extraModules = { ...forcedModules, - 'react-native-svg': path.resolve( - projectRoot, - 'node_modules/react-native-svg', - ), + 'react-native-svg': appModule('react-native-svg'), '@ode/components/react-native': path.resolve( monorepoRoot, 'packages/components/src/react-native/index.ts', @@ -95,9 +99,9 @@ const config = { } // Handle react-native-svg - resolve to its actual entry point if (moduleName === 'react-native-svg') { - const svgPath = path.resolve( - projectRoot, - 'node_modules/react-native-svg/lib/commonjs/index.js', + const svgPath = path.join( + extraModules['react-native-svg'], + 'lib/commonjs/index.js', ); return { type: 'sourceFile',