├── .env ├── .gitignore ├── README.md ├── app.json ├── app ├── api │ └── hello+api.ts └── index.tsx ├── assets ├── fonts │ └── SpaceMono-Regular.ttf └── images │ ├── adaptive-icon.png │ ├── favicon.png │ ├── icon.png │ └── splash.png ├── babel.config.js ├── components └── native-module.tsx ├── index.ts ├── ios ├── .gitignore ├── .xcode.env ├── Podfile ├── Podfile.lock ├── Podfile.properties.json ├── jun21.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── jun21.xcscheme ├── jun21.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── jun21 │ ├── AppDelegate.h │ ├── AppDelegate.mm │ ├── Images.xcassets │ ├── AppIcon.appiconset │ │ ├── App-Icon-1024x1024@1x.png │ │ └── Contents.json │ ├── Contents.json │ ├── SplashScreen.imageset │ │ ├── Contents.json │ │ └── image.png │ └── SplashScreenBackground.imageset │ │ ├── Contents.json │ │ └── image.png │ ├── Info.plist │ ├── PrivacyInfo.xcprivacy │ ├── SplashScreen.storyboard │ ├── Supporting │ └── Expo.plist │ ├── jun21-Bridging-Header.h │ ├── jun21.entitlements │ ├── main.m │ ├── native-module.swift │ └── noop-file.swift ├── package.json ├── patches └── react-native+0.74.2.patch ├── server.js ├── tsconfig.json └── yarn.lock /.env: -------------------------------------------------------------------------------- 1 | EXPO_USE_FAST_RESOLVER=1 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files 2 | 3 | # dependencies 4 | node_modules/ 5 | 6 | # Expo 7 | .expo/ 8 | dist/ 9 | web-build/ 10 | 11 | # Native 12 | *.orig.* 13 | *.jks 14 | *.p8 15 | *.p12 16 | *.key 17 | *.mobileprovision 18 | 19 | # Metro 20 | .metro-health-check* 21 | 22 | # debug 23 | npm-debug.* 24 | yarn-debug.* 25 | yarn-error.* 26 | 27 | # macOS 28 | .DS_Store 29 | *.pem 30 | 31 | # local env files 32 | .env*.local 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | 37 | # @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb 38 | # The following patterns were generated by expo-cli 39 | 40 | expo-env.d.ts 41 | # @end expo-cli -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A more Reacty React Native experiment 2 | 3 | TL;DR: Import-less native views and modules, ex: [`app/index.tsx`](https://github.com/EvanBacon/react-native-swift-macros-demo/blob/e70f40867d236d4279fb11310179db3c07bacc6b/app/index.tsx#L3C4-L10C6) 4 | 5 | ```js 6 | export default function Home() { 7 | return ( 8 |
16 |

native?.calendar.openModal()}>Hey

17 |
18 | ) 19 | } 20 | ``` 21 | 22 | ## Built-in Views 23 | 24 | React Native needs to have less boilerplate ([opinion: built-in react views](https://x.com/baconbrix/status/1773800723383275952?s=46&t=4GpE_iEDNlOGqhX9K_d56A)). This experiment patches React Native to support using lowercase JSX views that are registered just in time. 25 | 26 | ```swift 27 | // Map View available via 28 | @ReactView(jsName: "map-view") 29 | class MapView: RCTViewManager { 30 | 31 | @ReactProperty 32 | var zoomEnabled: Bool? 33 | 34 | override func view() -> UIView { 35 | MKMapView() 36 | } 37 | } 38 | ``` 39 | 40 | Which can be used in JS-land (notice: no imports are required). This is because the React babel plugin converts this code to `React.createElement("map-view", { zoomEnabled: true })` which is then passed to React Native. 41 | 42 | ```jsx 43 | function App() { 44 | return ; 45 | } 46 | ``` 47 | 48 | This can be typed the same as views in `react-dom` or React Three Fiber: 49 | 50 | ```ts 51 | declare global { 52 | namespace JSX { 53 | interface IntrinsicElements { 54 | /** MKMapView */ 55 | "map-view": import("react-native").ViewProps & { zoomEnabled?: boolean }; 56 | } 57 | } 58 | } 59 | ``` 60 | 61 | --- 62 | 63 | To make this work, I patched `react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js` to instantiate the view when it's missing: 64 | 65 | ```js 66 | if (typeof name[0] === "string" && /[a-z]/.test(name[0])) { 67 | // Just-in-time register the native view for lowercase names to replicate the behavior of 68 | // react-dom. 69 | const createReactNativeComponentClass = require("./createReactNativeComponentClass"); 70 | const getNativeComponentAttributes = require("../../ReactNative/getNativeComponentAttributes"); 71 | 72 | // Essentially just `requireNativeComponent('...');`. 73 | createReactNativeComponentClass(name, () => 74 | getNativeComponentAttributes(name) 75 | ); 76 | callback = viewConfigCallbacks.get(name); 77 | } 78 | ``` 79 | 80 | ## Built-in APIs 81 | 82 | In the browser, APIs are just installed on the JS global object, e.g. `navigator.geolocation`. This experiment patches React Native to work similarly by using the global `native` object, e.g. `native.geolocation` instead of importing `react-native` and using `NativeModules`. 83 | 84 | ```js 85 | declare var native: typeof import("react-native").NativeModules; 86 | if (typeof native === "undefined") { 87 | globalThis.native = new Proxy( 88 | {}, 89 | { 90 | get(target, prop) { 91 | const NativeModules = require("react-native").NativeModules; 92 | if (prop in NativeModules) { 93 | return NativeModules[prop]; 94 | } 95 | }, 96 | } 97 | ); 98 | } 99 | ``` 100 | 101 | This makes web interop a bit nicer too because you can just do: 102 | 103 | ```js 104 | if (typeof native !== "undefined") { 105 | native.geolocation.getCurrentPosition(); 106 | } 107 | ``` 108 | 109 | This can be typed like the browser (in the future this can be generated from parsing the Swift/Kotlin code): 110 | 111 | ```ts 112 | declare global { 113 | interface Window { 114 | native: typeof import("react-native").NativeModules & { 115 | /** Custom native module */ 116 | geolocation: { 117 | /** Get the current position. */ 118 | getCurrentPosition: () => void; 119 | }; 120 | }; 121 | } 122 | } 123 | ``` 124 | 125 | ## Result 126 | 127 | The result is a React Native that feels more like the web and requires substantially less boilerplate/bundling. Standard web projects start with only a handful of imports, but React Native has thousands (~1,945 [last I checked](https://x.com/baconbrix/status/1773800723383275952?s=46&t=4GpE_iEDNlOGqhX9K_d56A)). Even with the fastest bundler in the world, this will still require seconds to create the graph. 128 | 129 | I've demonstrated here that you can still have types, doc blocks, and all the other benefits of React without the boilerplate of React Native. 130 | 131 | Overall, this workflow lends itself better to jumping between JS and native code to expose new APIs or views. It's also easier to maintain because there are fewer bridging APIs to keep in sync. In the future, we should generate the TypeScript types and doc blocks from the Swift/Kotlin code, but that's a problem for another day. 132 | 133 | ## Web interop 134 | 135 | Though it's not perfect, and possibly more confusing than helpful— I did play with adding a `div` view which just re-exports `RCTView`. Works like a View component but uses syntax that lends itself much better to use with a shared web codebase. 136 | 137 | 138 | ## Other cool stuff 139 | 140 | I used this Swift Macros library [ReactBridge](https://github.com/ikhvorost/ReactBridge) with Expo Router. I found this package in the [Indeed Job Search](https://apps.apple.com/us/app/indeed-job-search/id309735670) iOS app. 141 | 142 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "jun21", 4 | "slug": "jun21", 5 | "version": "1.0.0", 6 | "orientation": "portrait", 7 | "icon": "./assets/images/icon.png", 8 | "scheme": "myapp", 9 | "userInterfaceStyle": "automatic", 10 | "splash": { 11 | "image": "./assets/images/splash.png", 12 | "resizeMode": "contain", 13 | "backgroundColor": "#ffffff" 14 | }, 15 | "ios": { 16 | "supportsTablet": true, 17 | "bundleIdentifier": "com.bacon.jun21" 18 | }, 19 | "android": { 20 | "adaptiveIcon": { 21 | "foregroundImage": "./assets/images/adaptive-icon.png", 22 | "backgroundColor": "#ffffff" 23 | } 24 | }, 25 | "web": { 26 | "bundler": "metro", 27 | "output": "server", 28 | "favicon": "./assets/images/favicon.png" 29 | }, 30 | "plugins": [ 31 | [ 32 | "expo-router", 33 | { 34 | "origin": "http://a.com" 35 | } 36 | ] 37 | ], 38 | "experiments": { 39 | "typedRoutes": true 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/api/hello+api.ts: -------------------------------------------------------------------------------- 1 | export function GET() { 2 | return Response.json({ message: "Hello API" }); 3 | } 4 | -------------------------------------------------------------------------------- /app/index.tsx: -------------------------------------------------------------------------------- 1 | export default function Home() { 2 | return ( 3 |
11 |
{ 13 | alert( 14 | JSON.stringify( 15 | await fetch("/api/hello").then((res) => res.json()), 16 | null, 17 | 2 18 | ) 19 | ); 20 | }} 21 | style={{ 22 | width: 100, 23 | height: 100, 24 | backgroundColor: "red", 25 | }} 26 | > 27 |

Hey

28 |
29 | 30 | {process.env.EXPO_OS === "ios" && ( 31 | <> 32 | 33 | 34 | { 38 | console.log("Touch"); 39 | }} 40 | /> 41 | 42 | )} 43 |
44 | ); 45 | } 46 | 47 | declare global { 48 | namespace JSX { 49 | interface IntrinsicElements { 50 | /** MKMapView */ 51 | "map-view": import("react-native").ViewProps & { zoomEnabled?: boolean }; 52 | /** SwiftUI Picker */ 53 | picker: unknown; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /assets/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/assets/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /assets/images/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/assets/images/adaptive-icon.png -------------------------------------------------------------------------------- /assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/assets/images/favicon.png -------------------------------------------------------------------------------- /assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/assets/images/icon.png -------------------------------------------------------------------------------- /assets/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/assets/images/splash.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'] 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /components/native-module.tsx: -------------------------------------------------------------------------------- 1 | declare var native: typeof import("react-native").NativeModules; 2 | if (typeof native === "undefined") { 3 | globalThis.native = new Proxy( 4 | {}, 5 | { 6 | get(target, prop) { 7 | const NativeModules = require("react-native").NativeModules; 8 | if (prop in NativeModules) { 9 | return NativeModules[prop]; 10 | } 11 | }, 12 | } 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import "@/components/native-module"; 2 | import "expo-router/entry"; 3 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | .xcode.env.local 25 | 26 | # Bundle artifacts 27 | *.jsbundle 28 | 29 | # CocoaPods 30 | /Pods/ 31 | -------------------------------------------------------------------------------- /ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") 2 | require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") 3 | 4 | require 'json' 5 | podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} 6 | 7 | ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' 8 | ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] 9 | 10 | platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4' 11 | install! 'cocoapods', 12 | :deterministic_uuids => false 13 | 14 | prepare_react_native_project! 15 | 16 | target 'jun21' do 17 | use_expo_modules! 18 | config = use_native_modules! 19 | 20 | use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] 21 | use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] 22 | 23 | use_react_native!( 24 | :path => config[:reactNativePath], 25 | :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', 26 | # An absolute path to your application root. 27 | :app_path => "#{Pod::Config.instance.installation_root}/..", 28 | :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', 29 | ) 30 | 31 | post_install do |installer| 32 | react_native_post_install( 33 | installer, 34 | config[:reactNativePath], 35 | :mac_catalyst_enabled => false, 36 | :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', 37 | ) 38 | 39 | # This is necessary for Xcode 14, because it signs resource bundles by default 40 | # when building for devices. 41 | installer.target_installation_results.pod_target_installation_results 42 | .each do |pod_name, target_installation_result| 43 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target| 44 | resource_bundle_target.build_configurations.each do |config| 45 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' 46 | end 47 | end 48 | end 49 | end 50 | 51 | post_integrate do |installer| 52 | begin 53 | expo_patch_react_imports!(installer) 54 | rescue => e 55 | Pod::UI.warn e 56 | end 57 | end 58 | end 59 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - boost (1.83.0) 3 | - DoubleConversion (1.1.6) 4 | - EXConstants (16.0.2): 5 | - ExpoModulesCore 6 | - Expo (51.0.14): 7 | - ExpoModulesCore 8 | - ExpoAsset (10.0.9): 9 | - ExpoModulesCore 10 | - ExpoFileSystem (17.0.1): 11 | - ExpoModulesCore 12 | - ExpoFont (12.0.7): 13 | - ExpoModulesCore 14 | - ExpoHead (3.5.16): 15 | - ExpoModulesCore 16 | - ExpoKeepAwake (13.0.2): 17 | - ExpoModulesCore 18 | - ExpoModulesCore (1.12.15): 19 | - DoubleConversion 20 | - glog 21 | - hermes-engine 22 | - RCT-Folly (= 2024.01.01.00) 23 | - RCTRequired 24 | - RCTTypeSafety 25 | - React-Codegen 26 | - React-Core 27 | - React-debug 28 | - React-Fabric 29 | - React-featureflags 30 | - React-graphics 31 | - React-ImageManager 32 | - React-jsinspector 33 | - React-NativeModulesApple 34 | - React-RCTAppDelegate 35 | - React-RCTFabric 36 | - React-rendererdebug 37 | - React-utils 38 | - ReactCommon/turbomodule/bridging 39 | - ReactCommon/turbomodule/core 40 | - Yoga 41 | - ExpoSystemUI (3.0.6): 42 | - ExpoModulesCore 43 | - ExpoWebBrowser (13.0.3): 44 | - ExpoModulesCore 45 | - EXSplashScreen (0.27.5): 46 | - DoubleConversion 47 | - ExpoModulesCore 48 | - glog 49 | - hermes-engine 50 | - RCT-Folly (= 2024.01.01.00) 51 | - RCTRequired 52 | - RCTTypeSafety 53 | - React-Codegen 54 | - React-Core 55 | - React-debug 56 | - React-Fabric 57 | - React-featureflags 58 | - React-graphics 59 | - React-ImageManager 60 | - React-NativeModulesApple 61 | - React-RCTFabric 62 | - React-rendererdebug 63 | - React-utils 64 | - ReactCommon/turbomodule/bridging 65 | - ReactCommon/turbomodule/core 66 | - Yoga 67 | - FBLazyVector (0.74.2) 68 | - fmt (9.1.0) 69 | - glog (0.3.5) 70 | - hermes-engine (0.74.2): 71 | - hermes-engine/Pre-built (= 0.74.2) 72 | - hermes-engine/Pre-built (0.74.2) 73 | - RCT-Folly (2024.01.01.00): 74 | - boost 75 | - DoubleConversion 76 | - fmt (= 9.1.0) 77 | - glog 78 | - RCT-Folly/Default (= 2024.01.01.00) 79 | - RCT-Folly/Default (2024.01.01.00): 80 | - boost 81 | - DoubleConversion 82 | - fmt (= 9.1.0) 83 | - glog 84 | - RCT-Folly/Fabric (2024.01.01.00): 85 | - boost 86 | - DoubleConversion 87 | - fmt (= 9.1.0) 88 | - glog 89 | - RCTDeprecation (0.74.2) 90 | - RCTRequired (0.74.2) 91 | - RCTTypeSafety (0.74.2): 92 | - FBLazyVector (= 0.74.2) 93 | - RCTRequired (= 0.74.2) 94 | - React-Core (= 0.74.2) 95 | - React (0.74.2): 96 | - React-Core (= 0.74.2) 97 | - React-Core/DevSupport (= 0.74.2) 98 | - React-Core/RCTWebSocket (= 0.74.2) 99 | - React-RCTActionSheet (= 0.74.2) 100 | - React-RCTAnimation (= 0.74.2) 101 | - React-RCTBlob (= 0.74.2) 102 | - React-RCTImage (= 0.74.2) 103 | - React-RCTLinking (= 0.74.2) 104 | - React-RCTNetwork (= 0.74.2) 105 | - React-RCTSettings (= 0.74.2) 106 | - React-RCTText (= 0.74.2) 107 | - React-RCTVibration (= 0.74.2) 108 | - React-callinvoker (0.74.2) 109 | - React-Codegen (0.74.2): 110 | - DoubleConversion 111 | - glog 112 | - hermes-engine 113 | - RCT-Folly 114 | - RCTRequired 115 | - RCTTypeSafety 116 | - React-Core 117 | - React-debug 118 | - React-Fabric 119 | - React-FabricImage 120 | - React-featureflags 121 | - React-graphics 122 | - React-jsi 123 | - React-jsiexecutor 124 | - React-NativeModulesApple 125 | - React-rendererdebug 126 | - React-utils 127 | - ReactCommon/turbomodule/bridging 128 | - ReactCommon/turbomodule/core 129 | - React-Core (0.74.2): 130 | - glog 131 | - hermes-engine 132 | - RCT-Folly (= 2024.01.01.00) 133 | - RCTDeprecation 134 | - React-Core/Default (= 0.74.2) 135 | - React-cxxreact 136 | - React-featureflags 137 | - React-hermes 138 | - React-jsi 139 | - React-jsiexecutor 140 | - React-jsinspector 141 | - React-perflogger 142 | - React-runtimescheduler 143 | - React-utils 144 | - SocketRocket (= 0.7.0) 145 | - Yoga 146 | - React-Core/CoreModulesHeaders (0.74.2): 147 | - glog 148 | - hermes-engine 149 | - RCT-Folly (= 2024.01.01.00) 150 | - RCTDeprecation 151 | - React-Core/Default 152 | - React-cxxreact 153 | - React-featureflags 154 | - React-hermes 155 | - React-jsi 156 | - React-jsiexecutor 157 | - React-jsinspector 158 | - React-perflogger 159 | - React-runtimescheduler 160 | - React-utils 161 | - SocketRocket (= 0.7.0) 162 | - Yoga 163 | - React-Core/Default (0.74.2): 164 | - glog 165 | - hermes-engine 166 | - RCT-Folly (= 2024.01.01.00) 167 | - RCTDeprecation 168 | - React-cxxreact 169 | - React-featureflags 170 | - React-hermes 171 | - React-jsi 172 | - React-jsiexecutor 173 | - React-jsinspector 174 | - React-perflogger 175 | - React-runtimescheduler 176 | - React-utils 177 | - SocketRocket (= 0.7.0) 178 | - Yoga 179 | - React-Core/DevSupport (0.74.2): 180 | - glog 181 | - hermes-engine 182 | - RCT-Folly (= 2024.01.01.00) 183 | - RCTDeprecation 184 | - React-Core/Default (= 0.74.2) 185 | - React-Core/RCTWebSocket (= 0.74.2) 186 | - React-cxxreact 187 | - React-featureflags 188 | - React-hermes 189 | - React-jsi 190 | - React-jsiexecutor 191 | - React-jsinspector 192 | - React-perflogger 193 | - React-runtimescheduler 194 | - React-utils 195 | - SocketRocket (= 0.7.0) 196 | - Yoga 197 | - React-Core/RCTActionSheetHeaders (0.74.2): 198 | - glog 199 | - hermes-engine 200 | - RCT-Folly (= 2024.01.01.00) 201 | - RCTDeprecation 202 | - React-Core/Default 203 | - React-cxxreact 204 | - React-featureflags 205 | - React-hermes 206 | - React-jsi 207 | - React-jsiexecutor 208 | - React-jsinspector 209 | - React-perflogger 210 | - React-runtimescheduler 211 | - React-utils 212 | - SocketRocket (= 0.7.0) 213 | - Yoga 214 | - React-Core/RCTAnimationHeaders (0.74.2): 215 | - glog 216 | - hermes-engine 217 | - RCT-Folly (= 2024.01.01.00) 218 | - RCTDeprecation 219 | - React-Core/Default 220 | - React-cxxreact 221 | - React-featureflags 222 | - React-hermes 223 | - React-jsi 224 | - React-jsiexecutor 225 | - React-jsinspector 226 | - React-perflogger 227 | - React-runtimescheduler 228 | - React-utils 229 | - SocketRocket (= 0.7.0) 230 | - Yoga 231 | - React-Core/RCTBlobHeaders (0.74.2): 232 | - glog 233 | - hermes-engine 234 | - RCT-Folly (= 2024.01.01.00) 235 | - RCTDeprecation 236 | - React-Core/Default 237 | - React-cxxreact 238 | - React-featureflags 239 | - React-hermes 240 | - React-jsi 241 | - React-jsiexecutor 242 | - React-jsinspector 243 | - React-perflogger 244 | - React-runtimescheduler 245 | - React-utils 246 | - SocketRocket (= 0.7.0) 247 | - Yoga 248 | - React-Core/RCTImageHeaders (0.74.2): 249 | - glog 250 | - hermes-engine 251 | - RCT-Folly (= 2024.01.01.00) 252 | - RCTDeprecation 253 | - React-Core/Default 254 | - React-cxxreact 255 | - React-featureflags 256 | - React-hermes 257 | - React-jsi 258 | - React-jsiexecutor 259 | - React-jsinspector 260 | - React-perflogger 261 | - React-runtimescheduler 262 | - React-utils 263 | - SocketRocket (= 0.7.0) 264 | - Yoga 265 | - React-Core/RCTLinkingHeaders (0.74.2): 266 | - glog 267 | - hermes-engine 268 | - RCT-Folly (= 2024.01.01.00) 269 | - RCTDeprecation 270 | - React-Core/Default 271 | - React-cxxreact 272 | - React-featureflags 273 | - React-hermes 274 | - React-jsi 275 | - React-jsiexecutor 276 | - React-jsinspector 277 | - React-perflogger 278 | - React-runtimescheduler 279 | - React-utils 280 | - SocketRocket (= 0.7.0) 281 | - Yoga 282 | - React-Core/RCTNetworkHeaders (0.74.2): 283 | - glog 284 | - hermes-engine 285 | - RCT-Folly (= 2024.01.01.00) 286 | - RCTDeprecation 287 | - React-Core/Default 288 | - React-cxxreact 289 | - React-featureflags 290 | - React-hermes 291 | - React-jsi 292 | - React-jsiexecutor 293 | - React-jsinspector 294 | - React-perflogger 295 | - React-runtimescheduler 296 | - React-utils 297 | - SocketRocket (= 0.7.0) 298 | - Yoga 299 | - React-Core/RCTSettingsHeaders (0.74.2): 300 | - glog 301 | - hermes-engine 302 | - RCT-Folly (= 2024.01.01.00) 303 | - RCTDeprecation 304 | - React-Core/Default 305 | - React-cxxreact 306 | - React-featureflags 307 | - React-hermes 308 | - React-jsi 309 | - React-jsiexecutor 310 | - React-jsinspector 311 | - React-perflogger 312 | - React-runtimescheduler 313 | - React-utils 314 | - SocketRocket (= 0.7.0) 315 | - Yoga 316 | - React-Core/RCTTextHeaders (0.74.2): 317 | - glog 318 | - hermes-engine 319 | - RCT-Folly (= 2024.01.01.00) 320 | - RCTDeprecation 321 | - React-Core/Default 322 | - React-cxxreact 323 | - React-featureflags 324 | - React-hermes 325 | - React-jsi 326 | - React-jsiexecutor 327 | - React-jsinspector 328 | - React-perflogger 329 | - React-runtimescheduler 330 | - React-utils 331 | - SocketRocket (= 0.7.0) 332 | - Yoga 333 | - React-Core/RCTVibrationHeaders (0.74.2): 334 | - glog 335 | - hermes-engine 336 | - RCT-Folly (= 2024.01.01.00) 337 | - RCTDeprecation 338 | - React-Core/Default 339 | - React-cxxreact 340 | - React-featureflags 341 | - React-hermes 342 | - React-jsi 343 | - React-jsiexecutor 344 | - React-jsinspector 345 | - React-perflogger 346 | - React-runtimescheduler 347 | - React-utils 348 | - SocketRocket (= 0.7.0) 349 | - Yoga 350 | - React-Core/RCTWebSocket (0.74.2): 351 | - glog 352 | - hermes-engine 353 | - RCT-Folly (= 2024.01.01.00) 354 | - RCTDeprecation 355 | - React-Core/Default (= 0.74.2) 356 | - React-cxxreact 357 | - React-featureflags 358 | - React-hermes 359 | - React-jsi 360 | - React-jsiexecutor 361 | - React-jsinspector 362 | - React-perflogger 363 | - React-runtimescheduler 364 | - React-utils 365 | - SocketRocket (= 0.7.0) 366 | - Yoga 367 | - React-CoreModules (0.74.2): 368 | - DoubleConversion 369 | - fmt (= 9.1.0) 370 | - RCT-Folly (= 2024.01.01.00) 371 | - RCTTypeSafety (= 0.74.2) 372 | - React-Codegen 373 | - React-Core/CoreModulesHeaders (= 0.74.2) 374 | - React-jsi (= 0.74.2) 375 | - React-jsinspector 376 | - React-NativeModulesApple 377 | - React-RCTBlob 378 | - React-RCTImage (= 0.74.2) 379 | - ReactCommon 380 | - SocketRocket (= 0.7.0) 381 | - React-cxxreact (0.74.2): 382 | - boost (= 1.83.0) 383 | - DoubleConversion 384 | - fmt (= 9.1.0) 385 | - glog 386 | - hermes-engine 387 | - RCT-Folly (= 2024.01.01.00) 388 | - React-callinvoker (= 0.74.2) 389 | - React-debug (= 0.74.2) 390 | - React-jsi (= 0.74.2) 391 | - React-jsinspector 392 | - React-logger (= 0.74.2) 393 | - React-perflogger (= 0.74.2) 394 | - React-runtimeexecutor (= 0.74.2) 395 | - React-debug (0.74.2) 396 | - React-Fabric (0.74.2): 397 | - DoubleConversion 398 | - fmt (= 9.1.0) 399 | - glog 400 | - hermes-engine 401 | - RCT-Folly/Fabric (= 2024.01.01.00) 402 | - RCTRequired 403 | - RCTTypeSafety 404 | - React-Core 405 | - React-cxxreact 406 | - React-debug 407 | - React-Fabric/animations (= 0.74.2) 408 | - React-Fabric/attributedstring (= 0.74.2) 409 | - React-Fabric/componentregistry (= 0.74.2) 410 | - React-Fabric/componentregistrynative (= 0.74.2) 411 | - React-Fabric/components (= 0.74.2) 412 | - React-Fabric/core (= 0.74.2) 413 | - React-Fabric/imagemanager (= 0.74.2) 414 | - React-Fabric/leakchecker (= 0.74.2) 415 | - React-Fabric/mounting (= 0.74.2) 416 | - React-Fabric/scheduler (= 0.74.2) 417 | - React-Fabric/telemetry (= 0.74.2) 418 | - React-Fabric/templateprocessor (= 0.74.2) 419 | - React-Fabric/textlayoutmanager (= 0.74.2) 420 | - React-Fabric/uimanager (= 0.74.2) 421 | - React-graphics 422 | - React-jsi 423 | - React-jsiexecutor 424 | - React-logger 425 | - React-rendererdebug 426 | - React-runtimescheduler 427 | - React-utils 428 | - ReactCommon/turbomodule/core 429 | - React-Fabric/animations (0.74.2): 430 | - DoubleConversion 431 | - fmt (= 9.1.0) 432 | - glog 433 | - hermes-engine 434 | - RCT-Folly/Fabric (= 2024.01.01.00) 435 | - RCTRequired 436 | - RCTTypeSafety 437 | - React-Core 438 | - React-cxxreact 439 | - React-debug 440 | - React-graphics 441 | - React-jsi 442 | - React-jsiexecutor 443 | - React-logger 444 | - React-rendererdebug 445 | - React-runtimescheduler 446 | - React-utils 447 | - ReactCommon/turbomodule/core 448 | - React-Fabric/attributedstring (0.74.2): 449 | - DoubleConversion 450 | - fmt (= 9.1.0) 451 | - glog 452 | - hermes-engine 453 | - RCT-Folly/Fabric (= 2024.01.01.00) 454 | - RCTRequired 455 | - RCTTypeSafety 456 | - React-Core 457 | - React-cxxreact 458 | - React-debug 459 | - React-graphics 460 | - React-jsi 461 | - React-jsiexecutor 462 | - React-logger 463 | - React-rendererdebug 464 | - React-runtimescheduler 465 | - React-utils 466 | - ReactCommon/turbomodule/core 467 | - React-Fabric/componentregistry (0.74.2): 468 | - DoubleConversion 469 | - fmt (= 9.1.0) 470 | - glog 471 | - hermes-engine 472 | - RCT-Folly/Fabric (= 2024.01.01.00) 473 | - RCTRequired 474 | - RCTTypeSafety 475 | - React-Core 476 | - React-cxxreact 477 | - React-debug 478 | - React-graphics 479 | - React-jsi 480 | - React-jsiexecutor 481 | - React-logger 482 | - React-rendererdebug 483 | - React-runtimescheduler 484 | - React-utils 485 | - ReactCommon/turbomodule/core 486 | - React-Fabric/componentregistrynative (0.74.2): 487 | - DoubleConversion 488 | - fmt (= 9.1.0) 489 | - glog 490 | - hermes-engine 491 | - RCT-Folly/Fabric (= 2024.01.01.00) 492 | - RCTRequired 493 | - RCTTypeSafety 494 | - React-Core 495 | - React-cxxreact 496 | - React-debug 497 | - React-graphics 498 | - React-jsi 499 | - React-jsiexecutor 500 | - React-logger 501 | - React-rendererdebug 502 | - React-runtimescheduler 503 | - React-utils 504 | - ReactCommon/turbomodule/core 505 | - React-Fabric/components (0.74.2): 506 | - DoubleConversion 507 | - fmt (= 9.1.0) 508 | - glog 509 | - hermes-engine 510 | - RCT-Folly/Fabric (= 2024.01.01.00) 511 | - RCTRequired 512 | - RCTTypeSafety 513 | - React-Core 514 | - React-cxxreact 515 | - React-debug 516 | - React-Fabric/components/inputaccessory (= 0.74.2) 517 | - React-Fabric/components/legacyviewmanagerinterop (= 0.74.2) 518 | - React-Fabric/components/modal (= 0.74.2) 519 | - React-Fabric/components/rncore (= 0.74.2) 520 | - React-Fabric/components/root (= 0.74.2) 521 | - React-Fabric/components/safeareaview (= 0.74.2) 522 | - React-Fabric/components/scrollview (= 0.74.2) 523 | - React-Fabric/components/text (= 0.74.2) 524 | - React-Fabric/components/textinput (= 0.74.2) 525 | - React-Fabric/components/unimplementedview (= 0.74.2) 526 | - React-Fabric/components/view (= 0.74.2) 527 | - React-graphics 528 | - React-jsi 529 | - React-jsiexecutor 530 | - React-logger 531 | - React-rendererdebug 532 | - React-runtimescheduler 533 | - React-utils 534 | - ReactCommon/turbomodule/core 535 | - React-Fabric/components/inputaccessory (0.74.2): 536 | - DoubleConversion 537 | - fmt (= 9.1.0) 538 | - glog 539 | - hermes-engine 540 | - RCT-Folly/Fabric (= 2024.01.01.00) 541 | - RCTRequired 542 | - RCTTypeSafety 543 | - React-Core 544 | - React-cxxreact 545 | - React-debug 546 | - React-graphics 547 | - React-jsi 548 | - React-jsiexecutor 549 | - React-logger 550 | - React-rendererdebug 551 | - React-runtimescheduler 552 | - React-utils 553 | - ReactCommon/turbomodule/core 554 | - React-Fabric/components/legacyviewmanagerinterop (0.74.2): 555 | - DoubleConversion 556 | - fmt (= 9.1.0) 557 | - glog 558 | - hermes-engine 559 | - RCT-Folly/Fabric (= 2024.01.01.00) 560 | - RCTRequired 561 | - RCTTypeSafety 562 | - React-Core 563 | - React-cxxreact 564 | - React-debug 565 | - React-graphics 566 | - React-jsi 567 | - React-jsiexecutor 568 | - React-logger 569 | - React-rendererdebug 570 | - React-runtimescheduler 571 | - React-utils 572 | - ReactCommon/turbomodule/core 573 | - React-Fabric/components/modal (0.74.2): 574 | - DoubleConversion 575 | - fmt (= 9.1.0) 576 | - glog 577 | - hermes-engine 578 | - RCT-Folly/Fabric (= 2024.01.01.00) 579 | - RCTRequired 580 | - RCTTypeSafety 581 | - React-Core 582 | - React-cxxreact 583 | - React-debug 584 | - React-graphics 585 | - React-jsi 586 | - React-jsiexecutor 587 | - React-logger 588 | - React-rendererdebug 589 | - React-runtimescheduler 590 | - React-utils 591 | - ReactCommon/turbomodule/core 592 | - React-Fabric/components/rncore (0.74.2): 593 | - DoubleConversion 594 | - fmt (= 9.1.0) 595 | - glog 596 | - hermes-engine 597 | - RCT-Folly/Fabric (= 2024.01.01.00) 598 | - RCTRequired 599 | - RCTTypeSafety 600 | - React-Core 601 | - React-cxxreact 602 | - React-debug 603 | - React-graphics 604 | - React-jsi 605 | - React-jsiexecutor 606 | - React-logger 607 | - React-rendererdebug 608 | - React-runtimescheduler 609 | - React-utils 610 | - ReactCommon/turbomodule/core 611 | - React-Fabric/components/root (0.74.2): 612 | - DoubleConversion 613 | - fmt (= 9.1.0) 614 | - glog 615 | - hermes-engine 616 | - RCT-Folly/Fabric (= 2024.01.01.00) 617 | - RCTRequired 618 | - RCTTypeSafety 619 | - React-Core 620 | - React-cxxreact 621 | - React-debug 622 | - React-graphics 623 | - React-jsi 624 | - React-jsiexecutor 625 | - React-logger 626 | - React-rendererdebug 627 | - React-runtimescheduler 628 | - React-utils 629 | - ReactCommon/turbomodule/core 630 | - React-Fabric/components/safeareaview (0.74.2): 631 | - DoubleConversion 632 | - fmt (= 9.1.0) 633 | - glog 634 | - hermes-engine 635 | - RCT-Folly/Fabric (= 2024.01.01.00) 636 | - RCTRequired 637 | - RCTTypeSafety 638 | - React-Core 639 | - React-cxxreact 640 | - React-debug 641 | - React-graphics 642 | - React-jsi 643 | - React-jsiexecutor 644 | - React-logger 645 | - React-rendererdebug 646 | - React-runtimescheduler 647 | - React-utils 648 | - ReactCommon/turbomodule/core 649 | - React-Fabric/components/scrollview (0.74.2): 650 | - DoubleConversion 651 | - fmt (= 9.1.0) 652 | - glog 653 | - hermes-engine 654 | - RCT-Folly/Fabric (= 2024.01.01.00) 655 | - RCTRequired 656 | - RCTTypeSafety 657 | - React-Core 658 | - React-cxxreact 659 | - React-debug 660 | - React-graphics 661 | - React-jsi 662 | - React-jsiexecutor 663 | - React-logger 664 | - React-rendererdebug 665 | - React-runtimescheduler 666 | - React-utils 667 | - ReactCommon/turbomodule/core 668 | - React-Fabric/components/text (0.74.2): 669 | - DoubleConversion 670 | - fmt (= 9.1.0) 671 | - glog 672 | - hermes-engine 673 | - RCT-Folly/Fabric (= 2024.01.01.00) 674 | - RCTRequired 675 | - RCTTypeSafety 676 | - React-Core 677 | - React-cxxreact 678 | - React-debug 679 | - React-graphics 680 | - React-jsi 681 | - React-jsiexecutor 682 | - React-logger 683 | - React-rendererdebug 684 | - React-runtimescheduler 685 | - React-utils 686 | - ReactCommon/turbomodule/core 687 | - React-Fabric/components/textinput (0.74.2): 688 | - DoubleConversion 689 | - fmt (= 9.1.0) 690 | - glog 691 | - hermes-engine 692 | - RCT-Folly/Fabric (= 2024.01.01.00) 693 | - RCTRequired 694 | - RCTTypeSafety 695 | - React-Core 696 | - React-cxxreact 697 | - React-debug 698 | - React-graphics 699 | - React-jsi 700 | - React-jsiexecutor 701 | - React-logger 702 | - React-rendererdebug 703 | - React-runtimescheduler 704 | - React-utils 705 | - ReactCommon/turbomodule/core 706 | - React-Fabric/components/unimplementedview (0.74.2): 707 | - DoubleConversion 708 | - fmt (= 9.1.0) 709 | - glog 710 | - hermes-engine 711 | - RCT-Folly/Fabric (= 2024.01.01.00) 712 | - RCTRequired 713 | - RCTTypeSafety 714 | - React-Core 715 | - React-cxxreact 716 | - React-debug 717 | - React-graphics 718 | - React-jsi 719 | - React-jsiexecutor 720 | - React-logger 721 | - React-rendererdebug 722 | - React-runtimescheduler 723 | - React-utils 724 | - ReactCommon/turbomodule/core 725 | - React-Fabric/components/view (0.74.2): 726 | - DoubleConversion 727 | - fmt (= 9.1.0) 728 | - glog 729 | - hermes-engine 730 | - RCT-Folly/Fabric (= 2024.01.01.00) 731 | - RCTRequired 732 | - RCTTypeSafety 733 | - React-Core 734 | - React-cxxreact 735 | - React-debug 736 | - React-graphics 737 | - React-jsi 738 | - React-jsiexecutor 739 | - React-logger 740 | - React-rendererdebug 741 | - React-runtimescheduler 742 | - React-utils 743 | - ReactCommon/turbomodule/core 744 | - Yoga 745 | - React-Fabric/core (0.74.2): 746 | - DoubleConversion 747 | - fmt (= 9.1.0) 748 | - glog 749 | - hermes-engine 750 | - RCT-Folly/Fabric (= 2024.01.01.00) 751 | - RCTRequired 752 | - RCTTypeSafety 753 | - React-Core 754 | - React-cxxreact 755 | - React-debug 756 | - React-graphics 757 | - React-jsi 758 | - React-jsiexecutor 759 | - React-logger 760 | - React-rendererdebug 761 | - React-runtimescheduler 762 | - React-utils 763 | - ReactCommon/turbomodule/core 764 | - React-Fabric/imagemanager (0.74.2): 765 | - DoubleConversion 766 | - fmt (= 9.1.0) 767 | - glog 768 | - hermes-engine 769 | - RCT-Folly/Fabric (= 2024.01.01.00) 770 | - RCTRequired 771 | - RCTTypeSafety 772 | - React-Core 773 | - React-cxxreact 774 | - React-debug 775 | - React-graphics 776 | - React-jsi 777 | - React-jsiexecutor 778 | - React-logger 779 | - React-rendererdebug 780 | - React-runtimescheduler 781 | - React-utils 782 | - ReactCommon/turbomodule/core 783 | - React-Fabric/leakchecker (0.74.2): 784 | - DoubleConversion 785 | - fmt (= 9.1.0) 786 | - glog 787 | - hermes-engine 788 | - RCT-Folly/Fabric (= 2024.01.01.00) 789 | - RCTRequired 790 | - RCTTypeSafety 791 | - React-Core 792 | - React-cxxreact 793 | - React-debug 794 | - React-graphics 795 | - React-jsi 796 | - React-jsiexecutor 797 | - React-logger 798 | - React-rendererdebug 799 | - React-runtimescheduler 800 | - React-utils 801 | - ReactCommon/turbomodule/core 802 | - React-Fabric/mounting (0.74.2): 803 | - DoubleConversion 804 | - fmt (= 9.1.0) 805 | - glog 806 | - hermes-engine 807 | - RCT-Folly/Fabric (= 2024.01.01.00) 808 | - RCTRequired 809 | - RCTTypeSafety 810 | - React-Core 811 | - React-cxxreact 812 | - React-debug 813 | - React-graphics 814 | - React-jsi 815 | - React-jsiexecutor 816 | - React-logger 817 | - React-rendererdebug 818 | - React-runtimescheduler 819 | - React-utils 820 | - ReactCommon/turbomodule/core 821 | - React-Fabric/scheduler (0.74.2): 822 | - DoubleConversion 823 | - fmt (= 9.1.0) 824 | - glog 825 | - hermes-engine 826 | - RCT-Folly/Fabric (= 2024.01.01.00) 827 | - RCTRequired 828 | - RCTTypeSafety 829 | - React-Core 830 | - React-cxxreact 831 | - React-debug 832 | - React-graphics 833 | - React-jsi 834 | - React-jsiexecutor 835 | - React-logger 836 | - React-rendererdebug 837 | - React-runtimescheduler 838 | - React-utils 839 | - ReactCommon/turbomodule/core 840 | - React-Fabric/telemetry (0.74.2): 841 | - DoubleConversion 842 | - fmt (= 9.1.0) 843 | - glog 844 | - hermes-engine 845 | - RCT-Folly/Fabric (= 2024.01.01.00) 846 | - RCTRequired 847 | - RCTTypeSafety 848 | - React-Core 849 | - React-cxxreact 850 | - React-debug 851 | - React-graphics 852 | - React-jsi 853 | - React-jsiexecutor 854 | - React-logger 855 | - React-rendererdebug 856 | - React-runtimescheduler 857 | - React-utils 858 | - ReactCommon/turbomodule/core 859 | - React-Fabric/templateprocessor (0.74.2): 860 | - DoubleConversion 861 | - fmt (= 9.1.0) 862 | - glog 863 | - hermes-engine 864 | - RCT-Folly/Fabric (= 2024.01.01.00) 865 | - RCTRequired 866 | - RCTTypeSafety 867 | - React-Core 868 | - React-cxxreact 869 | - React-debug 870 | - React-graphics 871 | - React-jsi 872 | - React-jsiexecutor 873 | - React-logger 874 | - React-rendererdebug 875 | - React-runtimescheduler 876 | - React-utils 877 | - ReactCommon/turbomodule/core 878 | - React-Fabric/textlayoutmanager (0.74.2): 879 | - DoubleConversion 880 | - fmt (= 9.1.0) 881 | - glog 882 | - hermes-engine 883 | - RCT-Folly/Fabric (= 2024.01.01.00) 884 | - RCTRequired 885 | - RCTTypeSafety 886 | - React-Core 887 | - React-cxxreact 888 | - React-debug 889 | - React-Fabric/uimanager 890 | - React-graphics 891 | - React-jsi 892 | - React-jsiexecutor 893 | - React-logger 894 | - React-rendererdebug 895 | - React-runtimescheduler 896 | - React-utils 897 | - ReactCommon/turbomodule/core 898 | - React-Fabric/uimanager (0.74.2): 899 | - DoubleConversion 900 | - fmt (= 9.1.0) 901 | - glog 902 | - hermes-engine 903 | - RCT-Folly/Fabric (= 2024.01.01.00) 904 | - RCTRequired 905 | - RCTTypeSafety 906 | - React-Core 907 | - React-cxxreact 908 | - React-debug 909 | - React-graphics 910 | - React-jsi 911 | - React-jsiexecutor 912 | - React-logger 913 | - React-rendererdebug 914 | - React-runtimescheduler 915 | - React-utils 916 | - ReactCommon/turbomodule/core 917 | - React-FabricImage (0.74.2): 918 | - DoubleConversion 919 | - fmt (= 9.1.0) 920 | - glog 921 | - hermes-engine 922 | - RCT-Folly/Fabric (= 2024.01.01.00) 923 | - RCTRequired (= 0.74.2) 924 | - RCTTypeSafety (= 0.74.2) 925 | - React-Fabric 926 | - React-graphics 927 | - React-ImageManager 928 | - React-jsi 929 | - React-jsiexecutor (= 0.74.2) 930 | - React-logger 931 | - React-rendererdebug 932 | - React-utils 933 | - ReactCommon 934 | - Yoga 935 | - React-featureflags (0.74.2) 936 | - React-graphics (0.74.2): 937 | - DoubleConversion 938 | - fmt (= 9.1.0) 939 | - glog 940 | - RCT-Folly/Fabric (= 2024.01.01.00) 941 | - React-Core/Default (= 0.74.2) 942 | - React-utils 943 | - React-hermes (0.74.2): 944 | - DoubleConversion 945 | - fmt (= 9.1.0) 946 | - glog 947 | - hermes-engine 948 | - RCT-Folly (= 2024.01.01.00) 949 | - React-cxxreact (= 0.74.2) 950 | - React-jsi 951 | - React-jsiexecutor (= 0.74.2) 952 | - React-jsinspector 953 | - React-perflogger (= 0.74.2) 954 | - React-runtimeexecutor 955 | - React-ImageManager (0.74.2): 956 | - glog 957 | - RCT-Folly/Fabric 958 | - React-Core/Default 959 | - React-debug 960 | - React-Fabric 961 | - React-graphics 962 | - React-rendererdebug 963 | - React-utils 964 | - React-jserrorhandler (0.74.2): 965 | - RCT-Folly/Fabric (= 2024.01.01.00) 966 | - React-debug 967 | - React-jsi 968 | - React-Mapbuffer 969 | - React-jsi (0.74.2): 970 | - boost (= 1.83.0) 971 | - DoubleConversion 972 | - fmt (= 9.1.0) 973 | - glog 974 | - hermes-engine 975 | - RCT-Folly (= 2024.01.01.00) 976 | - React-jsiexecutor (0.74.2): 977 | - DoubleConversion 978 | - fmt (= 9.1.0) 979 | - glog 980 | - hermes-engine 981 | - RCT-Folly (= 2024.01.01.00) 982 | - React-cxxreact (= 0.74.2) 983 | - React-jsi (= 0.74.2) 984 | - React-jsinspector 985 | - React-perflogger (= 0.74.2) 986 | - React-jsinspector (0.74.2): 987 | - DoubleConversion 988 | - glog 989 | - hermes-engine 990 | - RCT-Folly (= 2024.01.01.00) 991 | - React-featureflags 992 | - React-jsi 993 | - React-runtimeexecutor (= 0.74.2) 994 | - React-jsitracing (0.74.2): 995 | - React-jsi 996 | - React-logger (0.74.2): 997 | - glog 998 | - React-Mapbuffer (0.74.2): 999 | - glog 1000 | - React-debug 1001 | - react-native-safe-area-context (4.10.1): 1002 | - React-Core 1003 | - React-nativeconfig (0.74.2) 1004 | - React-NativeModulesApple (0.74.2): 1005 | - glog 1006 | - hermes-engine 1007 | - React-callinvoker 1008 | - React-Core 1009 | - React-cxxreact 1010 | - React-jsi 1011 | - React-jsinspector 1012 | - React-runtimeexecutor 1013 | - ReactCommon/turbomodule/bridging 1014 | - ReactCommon/turbomodule/core 1015 | - React-perflogger (0.74.2) 1016 | - React-RCTActionSheet (0.74.2): 1017 | - React-Core/RCTActionSheetHeaders (= 0.74.2) 1018 | - React-RCTAnimation (0.74.2): 1019 | - RCT-Folly (= 2024.01.01.00) 1020 | - RCTTypeSafety 1021 | - React-Codegen 1022 | - React-Core/RCTAnimationHeaders 1023 | - React-jsi 1024 | - React-NativeModulesApple 1025 | - ReactCommon 1026 | - React-RCTAppDelegate (0.74.2): 1027 | - RCT-Folly (= 2024.01.01.00) 1028 | - RCTRequired 1029 | - RCTTypeSafety 1030 | - React-Codegen 1031 | - React-Core 1032 | - React-CoreModules 1033 | - React-debug 1034 | - React-Fabric 1035 | - React-featureflags 1036 | - React-graphics 1037 | - React-hermes 1038 | - React-nativeconfig 1039 | - React-NativeModulesApple 1040 | - React-RCTFabric 1041 | - React-RCTImage 1042 | - React-RCTNetwork 1043 | - React-rendererdebug 1044 | - React-RuntimeApple 1045 | - React-RuntimeCore 1046 | - React-RuntimeHermes 1047 | - React-runtimescheduler 1048 | - React-utils 1049 | - ReactCommon 1050 | - React-RCTBlob (0.74.2): 1051 | - DoubleConversion 1052 | - fmt (= 9.1.0) 1053 | - hermes-engine 1054 | - RCT-Folly (= 2024.01.01.00) 1055 | - React-Codegen 1056 | - React-Core/RCTBlobHeaders 1057 | - React-Core/RCTWebSocket 1058 | - React-jsi 1059 | - React-jsinspector 1060 | - React-NativeModulesApple 1061 | - React-RCTNetwork 1062 | - ReactCommon 1063 | - React-RCTFabric (0.74.2): 1064 | - glog 1065 | - hermes-engine 1066 | - RCT-Folly/Fabric (= 2024.01.01.00) 1067 | - React-Core 1068 | - React-debug 1069 | - React-Fabric 1070 | - React-FabricImage 1071 | - React-featureflags 1072 | - React-graphics 1073 | - React-ImageManager 1074 | - React-jsi 1075 | - React-jsinspector 1076 | - React-nativeconfig 1077 | - React-RCTImage 1078 | - React-RCTText 1079 | - React-rendererdebug 1080 | - React-runtimescheduler 1081 | - React-utils 1082 | - Yoga 1083 | - React-RCTImage (0.74.2): 1084 | - RCT-Folly (= 2024.01.01.00) 1085 | - RCTTypeSafety 1086 | - React-Codegen 1087 | - React-Core/RCTImageHeaders 1088 | - React-jsi 1089 | - React-NativeModulesApple 1090 | - React-RCTNetwork 1091 | - ReactCommon 1092 | - React-RCTLinking (0.74.2): 1093 | - React-Codegen 1094 | - React-Core/RCTLinkingHeaders (= 0.74.2) 1095 | - React-jsi (= 0.74.2) 1096 | - React-NativeModulesApple 1097 | - ReactCommon 1098 | - ReactCommon/turbomodule/core (= 0.74.2) 1099 | - React-RCTNetwork (0.74.2): 1100 | - RCT-Folly (= 2024.01.01.00) 1101 | - RCTTypeSafety 1102 | - React-Codegen 1103 | - React-Core/RCTNetworkHeaders 1104 | - React-jsi 1105 | - React-NativeModulesApple 1106 | - ReactCommon 1107 | - React-RCTSettings (0.74.2): 1108 | - RCT-Folly (= 2024.01.01.00) 1109 | - RCTTypeSafety 1110 | - React-Codegen 1111 | - React-Core/RCTSettingsHeaders 1112 | - React-jsi 1113 | - React-NativeModulesApple 1114 | - ReactCommon 1115 | - React-RCTText (0.74.2): 1116 | - React-Core/RCTTextHeaders (= 0.74.2) 1117 | - Yoga 1118 | - React-RCTVibration (0.74.2): 1119 | - RCT-Folly (= 2024.01.01.00) 1120 | - React-Codegen 1121 | - React-Core/RCTVibrationHeaders 1122 | - React-jsi 1123 | - React-NativeModulesApple 1124 | - ReactCommon 1125 | - React-rendererdebug (0.74.2): 1126 | - DoubleConversion 1127 | - fmt (= 9.1.0) 1128 | - RCT-Folly (= 2024.01.01.00) 1129 | - React-debug 1130 | - React-rncore (0.74.2) 1131 | - React-RuntimeApple (0.74.2): 1132 | - hermes-engine 1133 | - RCT-Folly/Fabric (= 2024.01.01.00) 1134 | - React-callinvoker 1135 | - React-Core/Default 1136 | - React-CoreModules 1137 | - React-cxxreact 1138 | - React-jserrorhandler 1139 | - React-jsi 1140 | - React-jsiexecutor 1141 | - React-jsinspector 1142 | - React-Mapbuffer 1143 | - React-NativeModulesApple 1144 | - React-RCTFabric 1145 | - React-RuntimeCore 1146 | - React-runtimeexecutor 1147 | - React-RuntimeHermes 1148 | - React-utils 1149 | - React-RuntimeCore (0.74.2): 1150 | - glog 1151 | - hermes-engine 1152 | - RCT-Folly/Fabric (= 2024.01.01.00) 1153 | - React-cxxreact 1154 | - React-featureflags 1155 | - React-jserrorhandler 1156 | - React-jsi 1157 | - React-jsiexecutor 1158 | - React-jsinspector 1159 | - React-runtimeexecutor 1160 | - React-runtimescheduler 1161 | - React-utils 1162 | - React-runtimeexecutor (0.74.2): 1163 | - React-jsi (= 0.74.2) 1164 | - React-RuntimeHermes (0.74.2): 1165 | - hermes-engine 1166 | - RCT-Folly/Fabric (= 2024.01.01.00) 1167 | - React-featureflags 1168 | - React-hermes 1169 | - React-jsi 1170 | - React-jsinspector 1171 | - React-jsitracing 1172 | - React-nativeconfig 1173 | - React-RuntimeCore 1174 | - React-utils 1175 | - React-runtimescheduler (0.74.2): 1176 | - glog 1177 | - hermes-engine 1178 | - RCT-Folly (= 2024.01.01.00) 1179 | - React-callinvoker 1180 | - React-cxxreact 1181 | - React-debug 1182 | - React-featureflags 1183 | - React-jsi 1184 | - React-rendererdebug 1185 | - React-runtimeexecutor 1186 | - React-utils 1187 | - React-utils (0.74.2): 1188 | - glog 1189 | - hermes-engine 1190 | - RCT-Folly (= 2024.01.01.00) 1191 | - React-debug 1192 | - React-jsi (= 0.74.2) 1193 | - ReactCommon (0.74.2): 1194 | - ReactCommon/turbomodule (= 0.74.2) 1195 | - ReactCommon/turbomodule (0.74.2): 1196 | - DoubleConversion 1197 | - fmt (= 9.1.0) 1198 | - glog 1199 | - hermes-engine 1200 | - RCT-Folly (= 2024.01.01.00) 1201 | - React-callinvoker (= 0.74.2) 1202 | - React-cxxreact (= 0.74.2) 1203 | - React-jsi (= 0.74.2) 1204 | - React-logger (= 0.74.2) 1205 | - React-perflogger (= 0.74.2) 1206 | - ReactCommon/turbomodule/bridging (= 0.74.2) 1207 | - ReactCommon/turbomodule/core (= 0.74.2) 1208 | - ReactCommon/turbomodule/bridging (0.74.2): 1209 | - DoubleConversion 1210 | - fmt (= 9.1.0) 1211 | - glog 1212 | - hermes-engine 1213 | - RCT-Folly (= 2024.01.01.00) 1214 | - React-callinvoker (= 0.74.2) 1215 | - React-cxxreact (= 0.74.2) 1216 | - React-jsi (= 0.74.2) 1217 | - React-logger (= 0.74.2) 1218 | - React-perflogger (= 0.74.2) 1219 | - ReactCommon/turbomodule/core (0.74.2): 1220 | - DoubleConversion 1221 | - fmt (= 9.1.0) 1222 | - glog 1223 | - hermes-engine 1224 | - RCT-Folly (= 2024.01.01.00) 1225 | - React-callinvoker (= 0.74.2) 1226 | - React-cxxreact (= 0.74.2) 1227 | - React-debug (= 0.74.2) 1228 | - React-jsi (= 0.74.2) 1229 | - React-logger (= 0.74.2) 1230 | - React-perflogger (= 0.74.2) 1231 | - React-utils (= 0.74.2) 1232 | - RNReanimated (3.10.1): 1233 | - DoubleConversion 1234 | - glog 1235 | - hermes-engine 1236 | - RCT-Folly (= 2024.01.01.00) 1237 | - RCTRequired 1238 | - RCTTypeSafety 1239 | - React-Codegen 1240 | - React-Core 1241 | - React-debug 1242 | - React-Fabric 1243 | - React-featureflags 1244 | - React-graphics 1245 | - React-ImageManager 1246 | - React-NativeModulesApple 1247 | - React-RCTFabric 1248 | - React-rendererdebug 1249 | - React-utils 1250 | - ReactCommon/turbomodule/bridging 1251 | - ReactCommon/turbomodule/core 1252 | - Yoga 1253 | - RNScreens (3.31.1): 1254 | - DoubleConversion 1255 | - glog 1256 | - hermes-engine 1257 | - RCT-Folly (= 2024.01.01.00) 1258 | - RCTRequired 1259 | - RCTTypeSafety 1260 | - React-Codegen 1261 | - React-Core 1262 | - React-debug 1263 | - React-Fabric 1264 | - React-featureflags 1265 | - React-graphics 1266 | - React-ImageManager 1267 | - React-NativeModulesApple 1268 | - React-RCTFabric 1269 | - React-RCTImage 1270 | - React-rendererdebug 1271 | - React-utils 1272 | - ReactCommon/turbomodule/bridging 1273 | - ReactCommon/turbomodule/core 1274 | - Yoga 1275 | - SocketRocket (0.7.0) 1276 | - Yoga (0.0.0) 1277 | 1278 | DEPENDENCIES: 1279 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 1280 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 1281 | - EXConstants (from `../node_modules/expo-constants/ios`) 1282 | - Expo (from `../node_modules/expo`) 1283 | - ExpoAsset (from `../node_modules/expo-asset/ios`) 1284 | - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) 1285 | - ExpoFont (from `../node_modules/expo-font/ios`) 1286 | - ExpoHead (from `../node_modules/expo-router/ios`) 1287 | - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) 1288 | - ExpoModulesCore (from `../node_modules/expo-modules-core`) 1289 | - ExpoSystemUI (from `../node_modules/expo-system-ui/ios`) 1290 | - ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`) 1291 | - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) 1292 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 1293 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) 1294 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 1295 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 1296 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1297 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1298 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) 1299 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`) 1300 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 1301 | - React (from `../node_modules/react-native/`) 1302 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 1303 | - React-Codegen (from `build/generated/ios`) 1304 | - React-Core (from `../node_modules/react-native/`) 1305 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 1306 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 1307 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 1308 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) 1309 | - React-Fabric (from `../node_modules/react-native/ReactCommon`) 1310 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`) 1311 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) 1312 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) 1313 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 1314 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) 1315 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) 1316 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 1317 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 1318 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) 1319 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) 1320 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 1321 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) 1322 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) 1323 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) 1324 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) 1325 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 1326 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 1327 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 1328 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 1329 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 1330 | - React-RCTFabric (from `../node_modules/react-native/React`) 1331 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 1332 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 1333 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 1334 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 1335 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 1336 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 1337 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) 1338 | - React-rncore (from `../node_modules/react-native/ReactCommon`) 1339 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) 1340 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) 1341 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 1342 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) 1343 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) 1344 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) 1345 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 1346 | - RNReanimated (from `../node_modules/react-native-reanimated`) 1347 | - RNScreens (from `../node_modules/react-native-screens`) 1348 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 1349 | 1350 | SPEC REPOS: 1351 | trunk: 1352 | - SocketRocket 1353 | 1354 | EXTERNAL SOURCES: 1355 | boost: 1356 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 1357 | DoubleConversion: 1358 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 1359 | EXConstants: 1360 | :path: "../node_modules/expo-constants/ios" 1361 | Expo: 1362 | :path: "../node_modules/expo" 1363 | ExpoAsset: 1364 | :path: "../node_modules/expo-asset/ios" 1365 | ExpoFileSystem: 1366 | :path: "../node_modules/expo-file-system/ios" 1367 | ExpoFont: 1368 | :path: "../node_modules/expo-font/ios" 1369 | ExpoHead: 1370 | :path: "../node_modules/expo-router/ios" 1371 | ExpoKeepAwake: 1372 | :path: "../node_modules/expo-keep-awake/ios" 1373 | ExpoModulesCore: 1374 | :path: "../node_modules/expo-modules-core" 1375 | ExpoSystemUI: 1376 | :path: "../node_modules/expo-system-ui/ios" 1377 | ExpoWebBrowser: 1378 | :path: "../node_modules/expo-web-browser/ios" 1379 | EXSplashScreen: 1380 | :path: "../node_modules/expo-splash-screen/ios" 1381 | FBLazyVector: 1382 | :path: "../node_modules/react-native/Libraries/FBLazyVector" 1383 | fmt: 1384 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 1385 | glog: 1386 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 1387 | hermes-engine: 1388 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 1389 | :tag: hermes-2024-06-03-RNv0.74.2-bb1e74fe1e95c2b5a2f4f9311152da052badc2bc 1390 | RCT-Folly: 1391 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 1392 | RCTDeprecation: 1393 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" 1394 | RCTRequired: 1395 | :path: "../node_modules/react-native/Libraries/Required" 1396 | RCTTypeSafety: 1397 | :path: "../node_modules/react-native/Libraries/TypeSafety" 1398 | React: 1399 | :path: "../node_modules/react-native/" 1400 | React-callinvoker: 1401 | :path: "../node_modules/react-native/ReactCommon/callinvoker" 1402 | React-Codegen: 1403 | :path: build/generated/ios 1404 | React-Core: 1405 | :path: "../node_modules/react-native/" 1406 | React-CoreModules: 1407 | :path: "../node_modules/react-native/React/CoreModules" 1408 | React-cxxreact: 1409 | :path: "../node_modules/react-native/ReactCommon/cxxreact" 1410 | React-debug: 1411 | :path: "../node_modules/react-native/ReactCommon/react/debug" 1412 | React-Fabric: 1413 | :path: "../node_modules/react-native/ReactCommon" 1414 | React-FabricImage: 1415 | :path: "../node_modules/react-native/ReactCommon" 1416 | React-featureflags: 1417 | :path: "../node_modules/react-native/ReactCommon/react/featureflags" 1418 | React-graphics: 1419 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" 1420 | React-hermes: 1421 | :path: "../node_modules/react-native/ReactCommon/hermes" 1422 | React-ImageManager: 1423 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" 1424 | React-jserrorhandler: 1425 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler" 1426 | React-jsi: 1427 | :path: "../node_modules/react-native/ReactCommon/jsi" 1428 | React-jsiexecutor: 1429 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 1430 | React-jsinspector: 1431 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" 1432 | React-jsitracing: 1433 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/" 1434 | React-logger: 1435 | :path: "../node_modules/react-native/ReactCommon/logger" 1436 | React-Mapbuffer: 1437 | :path: "../node_modules/react-native/ReactCommon" 1438 | react-native-safe-area-context: 1439 | :path: "../node_modules/react-native-safe-area-context" 1440 | React-nativeconfig: 1441 | :path: "../node_modules/react-native/ReactCommon" 1442 | React-NativeModulesApple: 1443 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" 1444 | React-perflogger: 1445 | :path: "../node_modules/react-native/ReactCommon/reactperflogger" 1446 | React-RCTActionSheet: 1447 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 1448 | React-RCTAnimation: 1449 | :path: "../node_modules/react-native/Libraries/NativeAnimation" 1450 | React-RCTAppDelegate: 1451 | :path: "../node_modules/react-native/Libraries/AppDelegate" 1452 | React-RCTBlob: 1453 | :path: "../node_modules/react-native/Libraries/Blob" 1454 | React-RCTFabric: 1455 | :path: "../node_modules/react-native/React" 1456 | React-RCTImage: 1457 | :path: "../node_modules/react-native/Libraries/Image" 1458 | React-RCTLinking: 1459 | :path: "../node_modules/react-native/Libraries/LinkingIOS" 1460 | React-RCTNetwork: 1461 | :path: "../node_modules/react-native/Libraries/Network" 1462 | React-RCTSettings: 1463 | :path: "../node_modules/react-native/Libraries/Settings" 1464 | React-RCTText: 1465 | :path: "../node_modules/react-native/Libraries/Text" 1466 | React-RCTVibration: 1467 | :path: "../node_modules/react-native/Libraries/Vibration" 1468 | React-rendererdebug: 1469 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" 1470 | React-rncore: 1471 | :path: "../node_modules/react-native/ReactCommon" 1472 | React-RuntimeApple: 1473 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" 1474 | React-RuntimeCore: 1475 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1476 | React-runtimeexecutor: 1477 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 1478 | React-RuntimeHermes: 1479 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 1480 | React-runtimescheduler: 1481 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" 1482 | React-utils: 1483 | :path: "../node_modules/react-native/ReactCommon/react/utils" 1484 | ReactCommon: 1485 | :path: "../node_modules/react-native/ReactCommon" 1486 | RNReanimated: 1487 | :path: "../node_modules/react-native-reanimated" 1488 | RNScreens: 1489 | :path: "../node_modules/react-native-screens" 1490 | Yoga: 1491 | :path: "../node_modules/react-native/ReactCommon/yoga" 1492 | 1493 | SPEC CHECKSUMS: 1494 | boost: d3f49c53809116a5d38da093a8aa78bf551aed09 1495 | DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 1496 | EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 1497 | Expo: 9c87c876b45a6934894ba5e9353ee94fdba48125 1498 | ExpoAsset: 39e60dc31b16e204a9949caf3edb6dcda322e667 1499 | ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 1500 | ExpoFont: 43b69559cef3d773db57c7ae7edd3cb0aa0dc610 1501 | ExpoHead: 430fba41a1d7a4f7bd440291ae992bd8e0f8d5e2 1502 | ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08 1503 | ExpoModulesCore: 54c85b57000a2a82e5212d5e42cd7a36524be4ac 1504 | ExpoSystemUI: 65007dd0537cb38649ee55b4670a6ed222769b3a 1505 | ExpoWebBrowser: 7595ccac6938eb65b076385fd23d035db9ecdc8e 1506 | EXSplashScreen: fbf0ec78e9cee911df188bf17b4fe51d15a84b87 1507 | FBLazyVector: 4bc164e5b5e6cfc288d2b5ff28643ea15fa1a589 1508 | fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 1509 | glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f 1510 | hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7 1511 | RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 1512 | RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2 1513 | RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c 1514 | RCTTypeSafety: 552aff5b8e8341660594db00e53ac889682bc120 1515 | React: a57fe42044fe6ed3e828f8867ce070a6c5872754 1516 | React-callinvoker: 6bedefb354a8848b534752417954caa3a5cf34f9 1517 | React-Codegen: 0952549a095f8f8cb2fb5def1733b6b232769b1c 1518 | React-Core: 289ee3dfc1639bb9058c1e77427bb48169c26d7a 1519 | React-CoreModules: eda5ce541a1f552158317abd90a5a0f6a4f8d6f7 1520 | React-cxxreact: 56bd17ccc6d4248116f7f95884ddb8c528379fb6 1521 | React-debug: 164b8e302404d92d4bec39778a5e03bcb1b6eb08 1522 | React-Fabric: 05620c36074e3ab397dd8f9db0deb6d3c38b4efa 1523 | React-FabricImage: 2a8a7f5729f5c44e32e6f58f7225ee1017ed0704 1524 | React-featureflags: d97a6393993052e951e16a3b81206e22110be8d2 1525 | React-graphics: ef07d701f4eb72ae6fca6ed0a7260a04f2a58dec 1526 | React-hermes: 6ccc301ababfa17a9aad25a7e33faf325fd024b4 1527 | React-ImageManager: 00404bfe122626bc6493621f2a31ce802115a9b3 1528 | React-jserrorhandler: 5e2632590a84363855b2083e6b3d501e93bc3f04 1529 | React-jsi: 828703c235f4eea1647897ee8030efdc6e8e9f14 1530 | React-jsiexecutor: 713d7bbef0a410cee5b3b78f73ed1fc16e177ba7 1531 | React-jsinspector: e1fa5325a47f34645195c63e3312ddb6a2efef5d 1532 | React-jsitracing: 0fa7f78d8fdda794667cb2e6f19c874c1cf31d7e 1533 | React-logger: 29fa3e048f5f67fe396bc08af7606426d9bd7b5d 1534 | React-Mapbuffer: bf56147c9775491e53122a94c423ac201417e326 1535 | react-native-safe-area-context: dcab599c527c2d7de2d76507a523d20a0b83823d 1536 | React-nativeconfig: 9f223cd321823afdecf59ed00861ab2d69ee0fc1 1537 | React-NativeModulesApple: ff7efaff7098639db5631236cfd91d60abff04c0 1538 | React-perflogger: 32ed45d9cee02cf6639acae34251590dccd30994 1539 | React-RCTActionSheet: 19f967ddaea258182b56ef11437133b056ba2adf 1540 | React-RCTAnimation: d7f4137fc44a08bba465267ea7cb1dbdb7c4ec87 1541 | React-RCTAppDelegate: 2b3f4d8009796af209a0d496e73276b743acee08 1542 | React-RCTBlob: c6c3e1e0251700b7bea036b893913f22e2b9cb47 1543 | React-RCTFabric: 93a3ea55169d19294f07092013c1c9ea7a015c9b 1544 | React-RCTImage: 40528ab74a4fef0f0e2ee797a074b26d120b6cc6 1545 | React-RCTLinking: 385b5beb96749aae9ae1606746e883e1c9f8a6a7 1546 | React-RCTNetwork: ffc9f05bd8fa5b3bce562199ba41235ad0af645c 1547 | React-RCTSettings: 21914178bb65cb2c20c655ae1fb401617ae74618 1548 | React-RCTText: 7f8dba1a311e99f4de15bbace2350e805f33f024 1549 | React-RCTVibration: e4ccf673579d0d94a96b3a0b64492db08f8324d5 1550 | React-rendererdebug: ac70f40de137ce7bdbc55eaee60c467a215d9923 1551 | React-rncore: edfff7a3f7f82ca1e0ba26978c6d84c7a8970dac 1552 | React-RuntimeApple: a0c98b75571aa5f44ddc7c6e9fd55803fa4db00f 1553 | React-RuntimeCore: 4b8db1fe2f3f4a3a5ecb22e1a419824e3e2cd7ef 1554 | React-runtimeexecutor: 5961acc7a77b69f964e1645a5d6069e124ce6b37 1555 | React-RuntimeHermes: c5825bfae4815fdf4e9e639340c3a986a491884c 1556 | React-runtimescheduler: 56b642bf605ba5afa500d35790928fc1d51565ad 1557 | React-utils: 4476b7fcbbd95cfd002f3e778616155241d86e31 1558 | ReactCommon: ecad995f26e0d1e24061f60f4e5d74782f003f12 1559 | RNReanimated: 35f9ac9c3ac42d0497ebd1cce5c39d7687a8493e 1560 | RNScreens: b32a9ff15bea7fcdbe5dff6477bc503f792b1208 1561 | SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d 1562 | Yoga: 2f71ecf38d934aecb366e686278102a51679c308 1563 | 1564 | PODFILE CHECKSUM: 928a447bd05d67a2e651dd738d1089dccbb3d714 1565 | 1566 | COCOAPODS: 1.14.3 1567 | -------------------------------------------------------------------------------- /ios/Podfile.properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo.jsEngine": "hermes", 3 | "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true" 4 | } 5 | -------------------------------------------------------------------------------- /ios/jun21.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 11 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 12 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 13 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; 14 | 96905EF65AED1B983A6B3ABC /* libPods-jun21.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-jun21.a */; }; 15 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; 16 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; 17 | BD42490E51D0464F8005E555 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 414E005348C3416EB63D6101 /* noop-file.swift */; }; 18 | CDC4463E2C273EC20064B0EF /* ReactBridge in Frameworks */ = {isa = PBXBuildFile; productRef = CDC4463D2C273EC20064B0EF /* ReactBridge */; }; 19 | CDC446402C273EDB0064B0EF /* native-module.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDC4463F2C273EDB0064B0EF /* native-module.swift */; }; 20 | EE53871AB25F9A4E58233A28 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0CDC87DBA2A06669D2A5FACC /* PrivacyInfo.xcprivacy */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXFileReference section */ 24 | 0CDC87DBA2A06669D2A5FACC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = jun21/PrivacyInfo.xcprivacy; sourceTree = ""; }; 25 | 13B07F961A680F5B00A75B9A /* jun21.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = jun21.app; sourceTree = BUILT_PRODUCTS_DIR; }; 26 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = jun21/AppDelegate.h; sourceTree = ""; }; 27 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = jun21/AppDelegate.mm; sourceTree = ""; }; 28 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = jun21/Images.xcassets; sourceTree = ""; }; 29 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = jun21/Info.plist; sourceTree = ""; }; 30 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = jun21/main.m; sourceTree = ""; }; 31 | 414E005348C3416EB63D6101 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "jun21/noop-file.swift"; sourceTree = ""; }; 32 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-jun21.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-jun21.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 33 | 6C2E3173556A471DD304B334 /* Pods-jun21.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-jun21.debug.xcconfig"; path = "Target Support Files/Pods-jun21/Pods-jun21.debug.xcconfig"; sourceTree = ""; }; 34 | 7A4D352CD337FB3A3BF06240 /* Pods-jun21.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-jun21.release.xcconfig"; path = "Target Support Files/Pods-jun21/Pods-jun21.release.xcconfig"; sourceTree = ""; }; 35 | 821B9E2EB9554021BFA5D1F4 /* jun21-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "jun21-Bridging-Header.h"; path = "jun21/jun21-Bridging-Header.h"; sourceTree = ""; }; 36 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = jun21/SplashScreen.storyboard; sourceTree = ""; }; 37 | BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; 38 | CDC4463F2C273EDB0064B0EF /* native-module.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "native-module.swift"; path = "jun21/native-module.swift"; sourceTree = ""; }; 39 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 40 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-jun21/ExpoModulesProvider.swift"; sourceTree = ""; }; 41 | /* End PBXFileReference section */ 42 | 43 | /* Begin PBXFrameworksBuildPhase section */ 44 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 45 | isa = PBXFrameworksBuildPhase; 46 | buildActionMask = 2147483647; 47 | files = ( 48 | 96905EF65AED1B983A6B3ABC /* libPods-jun21.a in Frameworks */, 49 | CDC4463E2C273EC20064B0EF /* ReactBridge in Frameworks */, 50 | ); 51 | runOnlyForDeploymentPostprocessing = 0; 52 | }; 53 | /* End PBXFrameworksBuildPhase section */ 54 | 55 | /* Begin PBXGroup section */ 56 | 13B07FAE1A68108700A75B9A /* jun21 */ = { 57 | isa = PBXGroup; 58 | children = ( 59 | BB2F792B24A3F905000567C9 /* Supporting */, 60 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */, 61 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */, 62 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 63 | 13B07FB61A68108700A75B9A /* Info.plist */, 64 | 13B07FB71A68108700A75B9A /* main.m */, 65 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, 66 | 414E005348C3416EB63D6101 /* noop-file.swift */, 67 | 821B9E2EB9554021BFA5D1F4 /* jun21-Bridging-Header.h */, 68 | 0CDC87DBA2A06669D2A5FACC /* PrivacyInfo.xcprivacy */, 69 | CDC4463F2C273EDB0064B0EF /* native-module.swift */, 70 | ); 71 | name = jun21; 72 | sourceTree = ""; 73 | }; 74 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 78 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-jun21.a */, 79 | ); 80 | name = Frameworks; 81 | sourceTree = ""; 82 | }; 83 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 84 | isa = PBXGroup; 85 | children = ( 86 | ); 87 | name = Libraries; 88 | sourceTree = ""; 89 | }; 90 | 83CBB9F61A601CBA00E9B192 = { 91 | isa = PBXGroup; 92 | children = ( 93 | 13B07FAE1A68108700A75B9A /* jun21 */, 94 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 95 | 83CBBA001A601CBA00E9B192 /* Products */, 96 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 97 | D65327D7A22EEC0BE12398D9 /* Pods */, 98 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, 99 | ); 100 | indentWidth = 2; 101 | sourceTree = ""; 102 | tabWidth = 2; 103 | usesTabs = 0; 104 | }; 105 | 83CBBA001A601CBA00E9B192 /* Products */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 13B07F961A680F5B00A75B9A /* jun21.app */, 109 | ); 110 | name = Products; 111 | sourceTree = ""; 112 | }; 113 | 92DBD88DE9BF7D494EA9DA96 /* jun21 */ = { 114 | isa = PBXGroup; 115 | children = ( 116 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, 117 | ); 118 | name = jun21; 119 | sourceTree = ""; 120 | }; 121 | BB2F792B24A3F905000567C9 /* Supporting */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | BB2F792C24A3F905000567C9 /* Expo.plist */, 125 | ); 126 | name = Supporting; 127 | path = jun21/Supporting; 128 | sourceTree = ""; 129 | }; 130 | D65327D7A22EEC0BE12398D9 /* Pods */ = { 131 | isa = PBXGroup; 132 | children = ( 133 | 6C2E3173556A471DD304B334 /* Pods-jun21.debug.xcconfig */, 134 | 7A4D352CD337FB3A3BF06240 /* Pods-jun21.release.xcconfig */, 135 | ); 136 | path = Pods; 137 | sourceTree = ""; 138 | }; 139 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { 140 | isa = PBXGroup; 141 | children = ( 142 | 92DBD88DE9BF7D494EA9DA96 /* jun21 */, 143 | ); 144 | name = ExpoModulesProviders; 145 | sourceTree = ""; 146 | }; 147 | /* End PBXGroup section */ 148 | 149 | /* Begin PBXNativeTarget section */ 150 | 13B07F861A680F5B00A75B9A /* jun21 */ = { 151 | isa = PBXNativeTarget; 152 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "jun21" */; 153 | buildPhases = ( 154 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, 155 | 26A47B558B5AF89E9C10152E /* [Expo] Configure project */, 156 | 13B07F871A680F5B00A75B9A /* Sources */, 157 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 158 | 13B07F8E1A680F5B00A75B9A /* Resources */, 159 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 160 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, 161 | 21A39377B325173133EF345E /* [CP] Embed Pods Frameworks */, 162 | ); 163 | buildRules = ( 164 | ); 165 | dependencies = ( 166 | ); 167 | name = jun21; 168 | packageProductDependencies = ( 169 | CDC4463D2C273EC20064B0EF /* ReactBridge */, 170 | ); 171 | productName = jun21; 172 | productReference = 13B07F961A680F5B00A75B9A /* jun21.app */; 173 | productType = "com.apple.product-type.application"; 174 | }; 175 | /* End PBXNativeTarget section */ 176 | 177 | /* Begin PBXProject section */ 178 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 179 | isa = PBXProject; 180 | attributes = { 181 | LastUpgradeCheck = 1130; 182 | TargetAttributes = { 183 | 13B07F861A680F5B00A75B9A = { 184 | LastSwiftMigration = 1250; 185 | }; 186 | }; 187 | }; 188 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "jun21" */; 189 | compatibilityVersion = "Xcode 3.2"; 190 | developmentRegion = en; 191 | hasScannedForEncodings = 0; 192 | knownRegions = ( 193 | en, 194 | Base, 195 | ); 196 | mainGroup = 83CBB9F61A601CBA00E9B192; 197 | packageReferences = ( 198 | CDC4463C2C273EC20064B0EF /* XCRemoteSwiftPackageReference "ReactBridge" */, 199 | ); 200 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 201 | projectDirPath = ""; 202 | projectRoot = ""; 203 | targets = ( 204 | 13B07F861A680F5B00A75B9A /* jun21 */, 205 | ); 206 | }; 207 | /* End PBXProject section */ 208 | 209 | /* Begin PBXResourcesBuildPhase section */ 210 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 211 | isa = PBXResourcesBuildPhase; 212 | buildActionMask = 2147483647; 213 | files = ( 214 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 215 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 216 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, 217 | EE53871AB25F9A4E58233A28 /* PrivacyInfo.xcprivacy in Resources */, 218 | ); 219 | runOnlyForDeploymentPostprocessing = 0; 220 | }; 221 | /* End PBXResourcesBuildPhase section */ 222 | 223 | /* Begin PBXShellScriptBuildPhase section */ 224 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 225 | isa = PBXShellScriptBuildPhase; 226 | alwaysOutOfDate = 1; 227 | buildActionMask = 2147483647; 228 | files = ( 229 | ); 230 | inputPaths = ( 231 | ); 232 | name = "Bundle React Native code and images"; 233 | outputPaths = ( 234 | ); 235 | runOnlyForDeploymentPostprocessing = 0; 236 | shellPath = /bin/sh; 237 | shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; 238 | }; 239 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { 240 | isa = PBXShellScriptBuildPhase; 241 | buildActionMask = 2147483647; 242 | files = ( 243 | ); 244 | inputFileListPaths = ( 245 | ); 246 | inputPaths = ( 247 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 248 | "${PODS_ROOT}/Manifest.lock", 249 | ); 250 | name = "[CP] Check Pods Manifest.lock"; 251 | outputFileListPaths = ( 252 | ); 253 | outputPaths = ( 254 | "$(DERIVED_FILE_DIR)/Pods-jun21-checkManifestLockResult.txt", 255 | ); 256 | runOnlyForDeploymentPostprocessing = 0; 257 | shellPath = /bin/sh; 258 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 259 | showEnvVarsInLog = 0; 260 | }; 261 | 21A39377B325173133EF345E /* [CP] Embed Pods Frameworks */ = { 262 | isa = PBXShellScriptBuildPhase; 263 | buildActionMask = 2147483647; 264 | files = ( 265 | ); 266 | inputPaths = ( 267 | "${PODS_ROOT}/Target Support Files/Pods-jun21/Pods-jun21-frameworks.sh", 268 | "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", 269 | ); 270 | name = "[CP] Embed Pods Frameworks"; 271 | outputPaths = ( 272 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", 273 | ); 274 | runOnlyForDeploymentPostprocessing = 0; 275 | shellPath = /bin/sh; 276 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-jun21/Pods-jun21-frameworks.sh\"\n"; 277 | showEnvVarsInLog = 0; 278 | }; 279 | 26A47B558B5AF89E9C10152E /* [Expo] Configure project */ = { 280 | isa = PBXShellScriptBuildPhase; 281 | alwaysOutOfDate = 1; 282 | buildActionMask = 2147483647; 283 | files = ( 284 | ); 285 | inputFileListPaths = ( 286 | ); 287 | inputPaths = ( 288 | ); 289 | name = "[Expo] Configure project"; 290 | outputFileListPaths = ( 291 | ); 292 | outputPaths = ( 293 | ); 294 | runOnlyForDeploymentPostprocessing = 0; 295 | shellPath = /bin/sh; 296 | shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-jun21/expo-configure-project.sh\"\n"; 297 | }; 298 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { 299 | isa = PBXShellScriptBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | inputPaths = ( 304 | "${PODS_ROOT}/Target Support Files/Pods-jun21/Pods-jun21-resources.sh", 305 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", 306 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", 307 | "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", 308 | "${PODS_CONFIGURATION_BUILD_DIR}/ExpoSystemUI/ExpoSystemUI_privacy.bundle", 309 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", 310 | ); 311 | name = "[CP] Copy Pods Resources"; 312 | outputPaths = ( 313 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", 314 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", 315 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", 316 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoSystemUI_privacy.bundle", 317 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", 318 | ); 319 | runOnlyForDeploymentPostprocessing = 0; 320 | shellPath = /bin/sh; 321 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-jun21/Pods-jun21-resources.sh\"\n"; 322 | showEnvVarsInLog = 0; 323 | }; 324 | /* End PBXShellScriptBuildPhase section */ 325 | 326 | /* Begin PBXSourcesBuildPhase section */ 327 | 13B07F871A680F5B00A75B9A /* Sources */ = { 328 | isa = PBXSourcesBuildPhase; 329 | buildActionMask = 2147483647; 330 | files = ( 331 | CDC446402C273EDB0064B0EF /* native-module.swift in Sources */, 332 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 333 | 13B07FC11A68108700A75B9A /* main.m in Sources */, 334 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, 335 | BD42490E51D0464F8005E555 /* noop-file.swift in Sources */, 336 | ); 337 | runOnlyForDeploymentPostprocessing = 0; 338 | }; 339 | /* End PBXSourcesBuildPhase section */ 340 | 341 | /* Begin XCBuildConfiguration section */ 342 | 13B07F941A680F5B00A75B9A /* Debug */ = { 343 | isa = XCBuildConfiguration; 344 | baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-jun21.debug.xcconfig */; 345 | buildSettings = { 346 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 347 | CLANG_ENABLE_MODULES = YES; 348 | CODE_SIGN_ENTITLEMENTS = jun21/jun21.entitlements; 349 | CURRENT_PROJECT_VERSION = 1; 350 | DEVELOPMENT_TEAM = ZZRX8G34TX; 351 | ENABLE_BITCODE = NO; 352 | GCC_PREPROCESSOR_DEFINITIONS = ( 353 | "$(inherited)", 354 | "FB_SONARKIT_ENABLED=1", 355 | ); 356 | INFOPLIST_FILE = jun21/Info.plist; 357 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 358 | LD_RUNPATH_SEARCH_PATHS = ( 359 | "$(inherited)", 360 | "@executable_path/Frameworks", 361 | ); 362 | MARKETING_VERSION = 1.0; 363 | OTHER_LDFLAGS = ( 364 | "$(inherited)", 365 | "-ObjC", 366 | "-lc++", 367 | ); 368 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; 369 | PRODUCT_BUNDLE_IDENTIFIER = com.bacon.jun21; 370 | PRODUCT_NAME = jun21; 371 | SWIFT_OBJC_BRIDGING_HEADER = "jun21/jun21-Bridging-Header.h"; 372 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 373 | SWIFT_VERSION = 5.0; 374 | TARGETED_DEVICE_FAMILY = "1,2"; 375 | VERSIONING_SYSTEM = "apple-generic"; 376 | }; 377 | name = Debug; 378 | }; 379 | 13B07F951A680F5B00A75B9A /* Release */ = { 380 | isa = XCBuildConfiguration; 381 | baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-jun21.release.xcconfig */; 382 | buildSettings = { 383 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 384 | CLANG_ENABLE_MODULES = YES; 385 | CODE_SIGN_ENTITLEMENTS = jun21/jun21.entitlements; 386 | CURRENT_PROJECT_VERSION = 1; 387 | DEVELOPMENT_TEAM = ZZRX8G34TX; 388 | INFOPLIST_FILE = jun21/Info.plist; 389 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 390 | LD_RUNPATH_SEARCH_PATHS = ( 391 | "$(inherited)", 392 | "@executable_path/Frameworks", 393 | ); 394 | MARKETING_VERSION = 1.0; 395 | OTHER_LDFLAGS = ( 396 | "$(inherited)", 397 | "-ObjC", 398 | "-lc++", 399 | ); 400 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; 401 | PRODUCT_BUNDLE_IDENTIFIER = com.bacon.jun21; 402 | PRODUCT_NAME = jun21; 403 | SWIFT_OBJC_BRIDGING_HEADER = "jun21/jun21-Bridging-Header.h"; 404 | SWIFT_VERSION = 5.0; 405 | TARGETED_DEVICE_FAMILY = "1,2"; 406 | VERSIONING_SYSTEM = "apple-generic"; 407 | }; 408 | name = Release; 409 | }; 410 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 411 | isa = XCBuildConfiguration; 412 | buildSettings = { 413 | ALWAYS_SEARCH_USER_PATHS = NO; 414 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 415 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 416 | CLANG_CXX_LIBRARY = "libc++"; 417 | CLANG_ENABLE_MODULES = YES; 418 | CLANG_ENABLE_OBJC_ARC = YES; 419 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 420 | CLANG_WARN_BOOL_CONVERSION = YES; 421 | CLANG_WARN_COMMA = YES; 422 | CLANG_WARN_CONSTANT_CONVERSION = YES; 423 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 424 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 425 | CLANG_WARN_EMPTY_BODY = YES; 426 | CLANG_WARN_ENUM_CONVERSION = YES; 427 | CLANG_WARN_INFINITE_RECURSION = YES; 428 | CLANG_WARN_INT_CONVERSION = YES; 429 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 430 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 431 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 432 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 433 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 434 | CLANG_WARN_STRICT_PROTOTYPES = YES; 435 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 436 | CLANG_WARN_UNREACHABLE_CODE = YES; 437 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 438 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 439 | COPY_PHASE_STRIP = NO; 440 | ENABLE_STRICT_OBJC_MSGSEND = YES; 441 | ENABLE_TESTABILITY = YES; 442 | GCC_C_LANGUAGE_STANDARD = gnu99; 443 | GCC_DYNAMIC_NO_PIC = NO; 444 | GCC_NO_COMMON_BLOCKS = YES; 445 | GCC_OPTIMIZATION_LEVEL = 0; 446 | GCC_PREPROCESSOR_DEFINITIONS = ( 447 | "DEBUG=1", 448 | "$(inherited)", 449 | ); 450 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 451 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 452 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 453 | GCC_WARN_UNDECLARED_SELECTOR = YES; 454 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 455 | GCC_WARN_UNUSED_FUNCTION = YES; 456 | GCC_WARN_UNUSED_VARIABLE = YES; 457 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 458 | LD_RUNPATH_SEARCH_PATHS = ( 459 | /usr/lib/swift, 460 | "$(inherited)", 461 | ); 462 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; 463 | MTL_ENABLE_DEBUG_INFO = YES; 464 | ONLY_ACTIVE_ARCH = YES; 465 | OTHER_LDFLAGS = "$(inherited) "; 466 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 467 | SDKROOT = iphoneos; 468 | USE_HERMES = true; 469 | }; 470 | name = Debug; 471 | }; 472 | 83CBBA211A601CBA00E9B192 /* Release */ = { 473 | isa = XCBuildConfiguration; 474 | buildSettings = { 475 | ALWAYS_SEARCH_USER_PATHS = NO; 476 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 477 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 478 | CLANG_CXX_LIBRARY = "libc++"; 479 | CLANG_ENABLE_MODULES = YES; 480 | CLANG_ENABLE_OBJC_ARC = YES; 481 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 482 | CLANG_WARN_BOOL_CONVERSION = YES; 483 | CLANG_WARN_COMMA = YES; 484 | CLANG_WARN_CONSTANT_CONVERSION = YES; 485 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 486 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 487 | CLANG_WARN_EMPTY_BODY = YES; 488 | CLANG_WARN_ENUM_CONVERSION = YES; 489 | CLANG_WARN_INFINITE_RECURSION = YES; 490 | CLANG_WARN_INT_CONVERSION = YES; 491 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 492 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 493 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 494 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 495 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 496 | CLANG_WARN_STRICT_PROTOTYPES = YES; 497 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 498 | CLANG_WARN_UNREACHABLE_CODE = YES; 499 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 500 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 501 | COPY_PHASE_STRIP = YES; 502 | ENABLE_NS_ASSERTIONS = NO; 503 | ENABLE_STRICT_OBJC_MSGSEND = YES; 504 | GCC_C_LANGUAGE_STANDARD = gnu99; 505 | GCC_NO_COMMON_BLOCKS = YES; 506 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 507 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 508 | GCC_WARN_UNDECLARED_SELECTOR = YES; 509 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 510 | GCC_WARN_UNUSED_FUNCTION = YES; 511 | GCC_WARN_UNUSED_VARIABLE = YES; 512 | IPHONEOS_DEPLOYMENT_TARGET = 13.4; 513 | LD_RUNPATH_SEARCH_PATHS = ( 514 | /usr/lib/swift, 515 | "$(inherited)", 516 | ); 517 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; 518 | MTL_ENABLE_DEBUG_INFO = NO; 519 | OTHER_LDFLAGS = "$(inherited) "; 520 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 521 | SDKROOT = iphoneos; 522 | USE_HERMES = true; 523 | VALIDATE_PRODUCT = YES; 524 | }; 525 | name = Release; 526 | }; 527 | /* End XCBuildConfiguration section */ 528 | 529 | /* Begin XCConfigurationList section */ 530 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "jun21" */ = { 531 | isa = XCConfigurationList; 532 | buildConfigurations = ( 533 | 13B07F941A680F5B00A75B9A /* Debug */, 534 | 13B07F951A680F5B00A75B9A /* Release */, 535 | ); 536 | defaultConfigurationIsVisible = 0; 537 | defaultConfigurationName = Release; 538 | }; 539 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "jun21" */ = { 540 | isa = XCConfigurationList; 541 | buildConfigurations = ( 542 | 83CBBA201A601CBA00E9B192 /* Debug */, 543 | 83CBBA211A601CBA00E9B192 /* Release */, 544 | ); 545 | defaultConfigurationIsVisible = 0; 546 | defaultConfigurationName = Release; 547 | }; 548 | /* End XCConfigurationList section */ 549 | 550 | /* Begin XCRemoteSwiftPackageReference section */ 551 | CDC4463C2C273EC20064B0EF /* XCRemoteSwiftPackageReference "ReactBridge" */ = { 552 | isa = XCRemoteSwiftPackageReference; 553 | repositoryURL = "https://github.com/ikhvorost/ReactBridge"; 554 | requirement = { 555 | kind = upToNextMajorVersion; 556 | minimumVersion = 1.2.0; 557 | }; 558 | }; 559 | /* End XCRemoteSwiftPackageReference section */ 560 | 561 | /* Begin XCSwiftPackageProductDependency section */ 562 | CDC4463D2C273EC20064B0EF /* ReactBridge */ = { 563 | isa = XCSwiftPackageProductDependency; 564 | package = CDC4463C2C273EC20064B0EF /* XCRemoteSwiftPackageReference "ReactBridge" */; 565 | productName = ReactBridge; 566 | }; 567 | /* End XCSwiftPackageProductDependency section */ 568 | }; 569 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 570 | } 571 | -------------------------------------------------------------------------------- /ios/jun21.xcodeproj/xcshareddata/xcschemes/jun21.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /ios/jun21.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/jun21.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/jun21.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "originHash" : "855ded526bc8a23d725188d86bbbf056e7c1675df68b13c257ef63609dddae63", 3 | "pins" : [ 4 | { 5 | "identity" : "reactbridge", 6 | "kind" : "remoteSourceControl", 7 | "location" : "https://github.com/ikhvorost/ReactBridge", 8 | "state" : { 9 | "revision" : "93e0318d87cd3f9438ca10120a50e86afab1af65", 10 | "version" : "1.2.0" 11 | } 12 | }, 13 | { 14 | "identity" : "swift-syntax", 15 | "kind" : "remoteSourceControl", 16 | "location" : "https://github.com/apple/swift-syntax.git", 17 | "state" : { 18 | "revision" : "303e5c5c36d6a558407d364878df131c3546fad8", 19 | "version" : "510.0.2" 20 | } 21 | } 22 | ], 23 | "version" : 3 24 | } 25 | -------------------------------------------------------------------------------- /ios/jun21/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | @interface AppDelegate : EXAppDelegateWrapper 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /ios/jun21/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | #import 4 | #import 5 | 6 | @implementation AppDelegate 7 | 8 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 9 | { 10 | self.moduleName = @"main"; 11 | 12 | // You can add your custom initial props in the dictionary below. 13 | // They will be passed down to the ViewController used by React Native. 14 | self.initialProps = @{}; 15 | 16 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 17 | } 18 | 19 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 20 | { 21 | return [self bundleURL]; 22 | } 23 | 24 | - (NSURL *)bundleURL 25 | { 26 | #if DEBUG 27 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"]; 28 | #else 29 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 30 | #endif 31 | } 32 | 33 | // Linking API 34 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { 35 | return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; 36 | } 37 | 38 | // Universal Links 39 | - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler { 40 | BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; 41 | return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; 42 | } 43 | 44 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 45 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 46 | { 47 | return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; 48 | } 49 | 50 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 51 | - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 52 | { 53 | return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; 54 | } 55 | 56 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries 57 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 58 | { 59 | return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; 60 | } 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/ios/jun21/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "filename": "App-Icon-1024x1024@1x.png", 5 | "idiom": "universal", 6 | "platform": "ios", 7 | "size": "1024x1024" 8 | } 9 | ], 10 | "info": { 11 | "version": 1, 12 | "author": "expo" 13 | } 14 | } -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "expo" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/SplashScreen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "idiom": "universal", 5 | "filename": "image.png", 6 | "scale": "1x" 7 | }, 8 | { 9 | "idiom": "universal", 10 | "scale": "2x" 11 | }, 12 | { 13 | "idiom": "universal", 14 | "scale": "3x" 15 | } 16 | ], 17 | "info": { 18 | "version": 1, 19 | "author": "expo" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/SplashScreen.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/ios/jun21/Images.xcassets/SplashScreen.imageset/image.png -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/SplashScreenBackground.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "idiom": "universal", 5 | "filename": "image.png", 6 | "scale": "1x" 7 | }, 8 | { 9 | "idiom": "universal", 10 | "scale": "2x" 11 | }, 12 | { 13 | "idiom": "universal", 14 | "scale": "3x" 15 | } 16 | ], 17 | "info": { 18 | "version": 1, 19 | "author": "expo" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/jun21/Images.xcassets/SplashScreenBackground.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EvanBacon/more-reacty-native-demo/ec54832298f08932006bf91010826efcbc05a68f/ios/jun21/Images.xcassets/SplashScreenBackground.imageset/image.png -------------------------------------------------------------------------------- /ios/jun21/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CADisableMinimumFrameDurationOnPhone 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | jun21 11 | CFBundleExecutable 12 | $(EXECUTABLE_NAME) 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | $(PRODUCT_NAME) 19 | CFBundlePackageType 20 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 21 | CFBundleShortVersionString 22 | 1.0.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleURLTypes 26 | 27 | 28 | CFBundleURLSchemes 29 | 30 | myapp 31 | com.bacon.jun21 32 | 33 | 34 | 35 | CFBundleVersion 36 | 1 37 | LSRequiresIPhoneOS 38 | 39 | NSAppTransportSecurity 40 | 41 | NSAllowsArbitraryLoads 42 | 43 | NSAllowsLocalNetworking 44 | 45 | 46 | NSUserActivityTypes 47 | 48 | $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route 49 | 50 | UILaunchStoryboardName 51 | SplashScreen 52 | UIRequiredDeviceCapabilities 53 | 54 | arm64 55 | 56 | UIRequiresFullScreen 57 | 58 | UIStatusBarStyle 59 | UIStatusBarStyleDefault 60 | UISupportedInterfaceOrientations 61 | 62 | UIInterfaceOrientationPortrait 63 | UIInterfaceOrientationPortraitUpsideDown 64 | 65 | UISupportedInterfaceOrientations~ipad 66 | 67 | UIInterfaceOrientationPortrait 68 | UIInterfaceOrientationPortraitUpsideDown 69 | UIInterfaceOrientationLandscapeLeft 70 | UIInterfaceOrientationLandscapeRight 71 | 72 | UIUserInterfaceStyle 73 | Automatic 74 | UIViewControllerBasedStatusBarAppearance 75 | 76 | 77 | -------------------------------------------------------------------------------- /ios/jun21/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryUserDefaults 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | CA92.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryFileTimestamp 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | 0A2A.1 21 | 3B52.1 22 | C617.1 23 | 24 | 25 | 26 | NSPrivacyAccessedAPIType 27 | NSPrivacyAccessedAPICategoryDiskSpace 28 | NSPrivacyAccessedAPITypeReasons 29 | 30 | E174.1 31 | 85F4.1 32 | 33 | 34 | 35 | NSPrivacyAccessedAPIType 36 | NSPrivacyAccessedAPICategorySystemBootTime 37 | NSPrivacyAccessedAPITypeReasons 38 | 39 | 35F9.1 40 | 41 | 42 | 43 | NSPrivacyCollectedDataTypes 44 | 45 | NSPrivacyTracking 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /ios/jun21/SplashScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /ios/jun21/Supporting/Expo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EXUpdatesCheckOnLaunch 6 | ALWAYS 7 | EXUpdatesEnabled 8 | 9 | EXUpdatesLaunchWaitMs 10 | 0 11 | 12 | -------------------------------------------------------------------------------- /ios/jun21/jun21-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | -------------------------------------------------------------------------------- /ios/jun21/jun21.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ios/jun21/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char * argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /ios/jun21/native-module.swift: -------------------------------------------------------------------------------- 1 | // 2 | // native-module.swift 3 | // jun21 4 | // 5 | // Created by Evan Bacon on 6/22/24. 6 | // 7 | 8 | import Foundation 9 | import React 10 | import ReactBridge 11 | import MapKit 12 | import EventKitUI 13 | 14 | @ReactModule 15 | class calendar: NSObject, RCTBridgeModule { 16 | 17 | @ReactMethod 18 | @objc func createEvent() { 19 | // Create event 20 | let event = EKEvent(eventStore: EKEventStore()) 21 | event.title = "My Event" 22 | event.startDate = Date() 23 | event.endDate = Date().addingTimeInterval(60 * 60) 24 | 25 | // On main thread 26 | DispatchQueue.main.async { 27 | let rootViewController = UIApplication.shared.keyWindow?.rootViewController 28 | // Present event 29 | let controller = EKEventEditViewController() 30 | controller.event = event 31 | rootViewController?.present(controller, animated: true, completion: nil) 32 | } 33 | } 34 | } 35 | 36 | // SwiftUI view available via 37 | @ReactView(jsName: "picker") 38 | class NativePicker: RCTViewManager { 39 | 40 | override func view() -> UIView { 41 | HostingView(content: { 42 | Picker("Picker", selection: .constant(0)) { 43 | Text("Option 1").tag(0) 44 | Text("Option 2").tag(1) 45 | Text("Option 3").tag(2) 46 | } 47 | }) 48 | } 49 | } 50 | 51 | // Map View available via 52 | @ReactView(jsName: "map-view") 53 | class MapView: RCTViewManager { 54 | 55 | @ReactProperty 56 | var zoomEnabled: Bool? 57 | 58 | override func view() -> UIView { 59 | MKMapView() 60 | } 61 | } 62 | 63 | 64 | @ReactView(jsName: "div") 65 | class NativeView: RCTViewManager { 66 | 67 | override func view() -> UIView { 68 | RCTView() 69 | } 70 | } 71 | 72 | @ReactView(jsName: "p") 73 | class NativeP: RCTTextViewManager { 74 | 75 | override func view() -> UIView { 76 | RCTTextView() 77 | } 78 | } 79 | 80 | import SwiftUI 81 | import UIKit 82 | 83 | public final class HostingView: RCTView { 84 | public init(@ViewBuilder content: () -> some View) { 85 | super.init(frame: .zero) 86 | 87 | if #available(iOS 16.0, *) { 88 | let contentView = UIHostingConfiguration(content: content) 89 | .margins(.all, 0) 90 | .makeContentView() 91 | contentView.translatesAutoresizingMaskIntoConstraints = false 92 | addSubview(contentView) 93 | NSLayoutConstraint.activate([ 94 | contentView.topAnchor.constraint(equalTo: topAnchor), 95 | contentView.leadingAnchor.constraint(equalTo: leadingAnchor), 96 | contentView.trailingAnchor.constraint(equalTo: trailingAnchor), 97 | contentView.bottomAnchor.constraint(equalTo: bottomAnchor) 98 | ]) 99 | } else { 100 | 101 | // Fallback on earlier versions 102 | } 103 | 104 | 105 | } 106 | 107 | @available(*, unavailable) 108 | required init?(coder: NSCoder) { 109 | fatalError("init(coder:) has not been implemented") 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /ios/jun21/noop-file.swift: -------------------------------------------------------------------------------- 1 | // 2 | // @generated 3 | // A blank Swift file must be created for native modules with Swift files to work correctly. 4 | // 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jun21", 3 | "main": "./index", 4 | "version": "1.0.0", 5 | "scripts": { 6 | "start": "expo start", 7 | "android": "expo run:android", 8 | "ios": "expo run:ios", 9 | "web": "expo start --web", 10 | "test": "jest --watchAll", 11 | "prepare": "npx patch-package" 12 | }, 13 | "jest": { 14 | "preset": "jest-expo" 15 | }, 16 | "dependencies": { 17 | "@expo/vector-icons": "^14.0.0", 18 | "@react-navigation/native": "^6.0.2", 19 | "expo": "~51.0.14", 20 | "expo-font": "~12.0.7", 21 | "expo-linking": "~6.3.1", 22 | "expo-router": "~3.5.16", 23 | "expo-splash-screen": "~0.27.5", 24 | "expo-status-bar": "~1.12.1", 25 | "expo-system-ui": "~3.0.6", 26 | "expo-web-browser": "~13.0.3", 27 | "react": "18.2.0", 28 | "react-dom": "18.2.0", 29 | "react-native": "0.74.2", 30 | "react-native-reanimated": "~3.10.1", 31 | "react-native-safe-area-context": "4.10.1", 32 | "react-native-screens": "3.31.1", 33 | "react-native-web": "~0.19.10" 34 | }, 35 | "devDependencies": { 36 | "@babel/core": "^7.20.0", 37 | "@types/react": "~18.2.45", 38 | "compression": "^1.7.4", 39 | "express": "^4.19.2", 40 | "jest": "^29.2.1", 41 | "jest-expo": "~51.0.1", 42 | "morgan": "^1.10.0", 43 | "react-test-renderer": "18.2.0", 44 | "typescript": "~5.3.3" 45 | }, 46 | "private": true 47 | } 48 | -------------------------------------------------------------------------------- /patches/react-native+0.74.2.patch: -------------------------------------------------------------------------------- 1 | diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js 2 | index d993f42..736571d 100644 3 | --- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js 4 | +++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js 5 | @@ -5586,6 +5586,9 @@ to return true:wantsResponderID| | 6 | function getChildHostContext(parentHostContext, type) { 7 | var prevIsInAParentText = parentHostContext.isInAParentText; 8 | var isInAParentText = 9 | + // Patch to support custom native view 10 | + type === 'p' || 11 | + // Others... 12 | type === "AndroidTextInput" || // Android 13 | type === "RCTMultilineTextInputView" || // iOS 14 | type === "RCTSinglelineTextInputView" || // iOS 15 | @@ -28551,3 +28554,4 @@ to return true:wantsResponderID| | 16 | } 17 | })(); 18 | } 19 | + 20 | diff --git a/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js b/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js 21 | index cbcdfce..9abda4b 100644 22 | --- a/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js 23 | +++ b/node_modules/react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js 24 | @@ -1,3 +1,4 @@ 25 | + 26 | /** 27 | * Copyright (c) Meta Platforms, Inc. and affiliates. 28 | * 29 | @@ -96,18 +97,42 @@ export function register(name: string, callback: () => ViewConfig): string { 30 | export function get(name: string): ViewConfig { 31 | let viewConfig; 32 | if (!viewConfigs.has(name)) { 33 | - const callback = viewConfigCallbacks.get(name); 34 | + let callback = viewConfigCallbacks.get(name); 35 | if (typeof callback !== 'function') { 36 | - invariant( 37 | - false, 38 | - 'View config getter callback for component `%s` must be a function (received `%s`).%s', 39 | - name, 40 | - callback === null ? 'null' : typeof callback, 41 | - // $FlowFixMe[recursive-definition] 42 | - typeof name[0] === 'string' && /[a-z]/.test(name[0]) 43 | - ? ' Make sure to start component names with a capital letter.' 44 | - : '', 45 | - ); 46 | + 47 | + if (typeof name[0] === 'string' && /[a-z]/.test(name[0])) { 48 | + // Just-in-time register the native view for lowercase names to replicate the behavior of 49 | + // react-dom. 50 | + const createReactNativeComponentClass = require('./createReactNativeComponentClass'); 51 | + const getNativeComponentAttributes = require('../../ReactNative/getNativeComponentAttributes'); 52 | + 53 | + createReactNativeComponentClass(name, () => 54 | + getNativeComponentAttributes(name) 55 | + ); 56 | + callback = viewConfigCallbacks.get(name); 57 | + if (typeof callback !== 'function') { 58 | + // throw new Error('View config getter callback missing for component ' + name); 59 | + invariant( 60 | + false, 61 | + 'View config getter callback for component `%s` must be a function (received `%s`).%s', 62 | + ); 63 | + } 64 | + } 65 | + 66 | + if (typeof callback !== 'function') { 67 | + // throw new Error('View config getter callback missing for component ' + name); 68 | + invariant( 69 | + false, 70 | + 'View config getter callback for component `%s` must be a function (received `%s`).%s', 71 | + name, 72 | + callback === null ? 'null' : typeof callback, 73 | + // $FlowFixMe[recursive-definition] 74 | + typeof name[0] === 'string' && /[a-z]/.test(name[0]) 75 | + ? ' Make sure to start component names with a capital letter.' 76 | + : '', 77 | + ); 78 | + } 79 | + 80 | } 81 | viewConfig = callback(); 82 | processEventTypes(viewConfig); 83 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const path = require("path"); 4 | const { createRequestHandler } = require("@expo/server/adapter/express"); 5 | 6 | const express = require("express"); 7 | const compression = require("compression"); 8 | const morgan = require("morgan"); 9 | 10 | const CLIENT_BUILD_DIR = path.join(process.cwd(), "dist/client"); 11 | const SERVER_BUILD_DIR = path.join(process.cwd(), "dist/server"); 12 | 13 | const app = express(); 14 | 15 | app.use(compression()); 16 | 17 | // http://expressjs.com/en/advanced/best-practice-security.html#at-a-minimum-disable-x-powered-by-header 18 | app.disable("x-powered-by"); 19 | 20 | process.env.NODE_ENV = "production"; 21 | 22 | app.use( 23 | express.static(CLIENT_BUILD_DIR, { 24 | maxAge: "1h", 25 | extensions: ["html"], 26 | }) 27 | ); 28 | 29 | app.use(morgan("tiny")); 30 | 31 | app.all( 32 | "*", 33 | createRequestHandler({ 34 | build: SERVER_BUILD_DIR, 35 | }) 36 | ); 37 | const port = process.env.PORT || 3000; 38 | 39 | app.listen(port, () => { 40 | console.log(`Express server listening on port ${port}`); 41 | }); 42 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "strict": true, 5 | "paths": { 6 | "@/*": [ 7 | "./*" 8 | ] 9 | } 10 | }, 11 | "include": [ 12 | "**/*.ts", 13 | "**/*.tsx", 14 | ".expo/types/**/*.ts", 15 | "expo-env.d.ts" 16 | ] 17 | } 18 | --------------------------------------------------------------------------------