├── jest.config.js ├── .bundle └── config ├── .eslintrc.js ├── app.json ├── tsconfig.json ├── babel.config.js ├── assets ├── home.png ├── icon.jpg ├── favicon.png ├── trekking.png └── screenshot.png ├── android ├── app │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ └── drawable │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── reactnativesampleapp │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── MainApplication.kt │ │ │ └── AndroidManifest.xml │ │ └── debug │ │ │ └── AndroidManifest.xml │ ├── debug.keystore │ ├── proguard-rules.pro │ └── build.gradle ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── settings.gradle ├── build.gradle ├── gradle.properties ├── gradlew.bat └── gradlew ├── ios ├── ReactNativeSampleApp │ ├── Images.xcassets │ │ ├── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 102.png │ │ │ ├── 108.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 128.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 16.png │ │ │ ├── 167.png │ │ │ ├── 172.png │ │ │ ├── 180.png │ │ │ ├── 196.png │ │ │ ├── 20.png │ │ │ ├── 216.png │ │ │ ├── 234.png │ │ │ ├── 256.png │ │ │ ├── 258.png │ │ │ ├── 29.png │ │ │ ├── 32.png │ │ │ ├── 40.png │ │ │ ├── 48.png │ │ │ ├── 50.png │ │ │ ├── 512.png │ │ │ ├── 55.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 64.png │ │ │ ├── 66.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ ├── 88.png │ │ │ ├── 92.png │ │ │ ├── 1024.png │ │ │ └── Contents.json │ ├── ReactNativeSampleApp.entitlements │ ├── PrivacyInfo.xcprivacy │ ├── Info.plist │ ├── AppDelegate.swift │ └── LaunchScreen.storyboard ├── ReactNativeSampleApp.xcworkspace │ └── contents.xcworkspacedata ├── .xcode.env ├── Podfile ├── ReactNativeSampleApp.xcodeproj │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── ReactNativeSampleApp.xcscheme │ └── project.pbxproj └── Podfile.lock ├── .prettierrc.js ├── index.js ├── __tests__ └── App.test.tsx ├── metro.config.js ├── .env.example ├── Gemfile ├── clean.sh ├── .gitignore ├── package.json ├── App.tsx ├── views ├── HomeScreen.tsx ├── simpleFlow │ ├── WelcomeScreen.tsx │ └── SimpleFlowAuthScreen.tsx ├── modalFlow │ ├── WelcomeScreenModal.tsx │ └── ModalFlowAuthScreen.tsx └── inlineFlow │ └── WelcomeScreenInline.tsx ├── Gemfile.lock └── README.md /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeSampleApp", 3 | "displayName": "TrekTribe" 4 | } 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /assets/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/assets/home.png -------------------------------------------------------------------------------- /assets/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/assets/icon.jpg -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/assets/favicon.png -------------------------------------------------------------------------------- /assets/trekking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/assets/trekking.png -------------------------------------------------------------------------------- /assets/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/assets/screenshot.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TrekTribe 3 | 4 | -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/102.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/108.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/234.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/234.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/258.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/258.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/66.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/92.png -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/descope-sample-apps/react-native-sample-app/HEAD/ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import {AppRegistry} from 'react-native'; 6 | import App from './App'; 7 | import {name as appName} from './app.json'; 8 | 9 | AppRegistry.registerComponent(appName, () => App); 10 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /__tests__/App.test.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | 5 | import React from 'react'; 6 | import ReactTestRenderer from 'react-test-renderer'; 7 | import App from '../App'; 8 | 9 | test('renders correctly', async () => { 10 | await ReactTestRenderer.act(() => { 11 | ReactTestRenderer.create(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); 2 | 3 | /** 4 | * Metro configuration 5 | * https://reactnative.dev/docs/metro 6 | * 7 | * @type {import('@react-native/metro-config').MetroConfig} 8 | */ 9 | const config = {}; 10 | 11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 12 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") } 2 | plugins { id("com.facebook.react.settings") } 3 | extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() } 4 | rootProject.name = 'ReactNativeSampleApp' 5 | include ':app' 6 | includeBuild('../node_modules/@react-native/gradle-plugin') 7 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/ReactNativeSampleApp.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.associated-domains 6 | 7 | applinks:sso.descope-devrel.com 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | BASE_API_URL=https://api.descope.com 2 | 3 | # you can find your PROJECT_ID here: https://app.descope.com/settings/project 4 | PROJECT_ID=YOUR-DESCOPE-PROJECT-ID-HERE 5 | 6 | # enter your Descope Flow ID 7 | # only basic flows (without deep link/oauth supported as of now) 8 | FLOW_ID=sign-up-or-in 9 | 10 | # Choose your app's authentication flow by uncommenting it: simple/modal/inline 11 | AUTH_FLOW_TYPE=simple 12 | # AUTH_FLOW_TYPE="modal" 13 | # AUTH_FLOW_TYPE="inline" -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Exclude problematic versions of cocoapods and activesupport that causes build failures. 7 | gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' 8 | gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' 9 | gem 'xcodeproj', '< 1.26.0' 10 | gem 'concurrent-ruby', '< 1.3.4' 11 | 12 | # Ruby 3.4.0 has removed some libraries from the standard library. 13 | gem 'bigdecimal' 14 | gem 'logger' 15 | gem 'benchmark' 16 | gem 'mutex_m' 17 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "35.0.0" 4 | minSdkVersion = 24 5 | compileSdkVersion = 35 6 | targetSdkVersion = 35 7 | ndkVersion = "27.1.12297006" 8 | kotlinVersion = "2.0.21" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | } 20 | 21 | apply plugin: "com.facebook.react.rootproject" 22 | -------------------------------------------------------------------------------- /clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Starting comprehensive clean of React Native project..." 3 | 4 | # Clean iOS 5 | echo "Cleaning iOS..." 6 | cd ios 7 | rm -rf build/ 8 | rm -rf Pods/ 9 | rm -rf ~/Library/Developer/Xcode/DerivedData/* 10 | pod cache clean --all 11 | pod deintegrate 12 | pod setup 13 | cd .. 14 | 15 | # Clean Android 16 | echo "Cleaning Android..." 17 | cd android 18 | ./gradlew clean 19 | rm -rf .gradle 20 | rm -rf build/ 21 | rm -rf app/build/ 22 | cd .. 23 | 24 | # Clean React Native 25 | echo "Cleaning React Native..." 26 | rm -rf node_modules/ 27 | rm -rf /tmp/metro-* 28 | rm -rf /tmp/haste-* 29 | watchman watch-del-all 30 | 31 | # Clean npm/yarn 32 | echo "Cleaning package manager..." 33 | npm cache clean --force 34 | 35 | # Reinstall dependencies 36 | echo "Reinstalling dependencies..." 37 | npm install 38 | 39 | # Reinstall iOS pods 40 | echo "Reinstalling iOS pods..." 41 | cd ios 42 | pod install 43 | cd .. 44 | 45 | echo "Completed." -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativesampleapp/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativesampleapp 2 | 3 | import com.facebook.react.ReactActivity 4 | import com.facebook.react.ReactActivityDelegate 5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 6 | import com.facebook.react.defaults.DefaultReactActivityDelegate 7 | 8 | class MainActivity : ReactActivity() { 9 | 10 | /** 11 | * Returns the name of the main component registered from JavaScript. This is used to schedule 12 | * rendering of the component. 13 | */ 14 | override fun getMainComponentName(): String = "ReactNativeSampleApp" 15 | 16 | /** 17 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 18 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 19 | */ 20 | override fun createReactActivityDelegate(): ReactActivityDelegate = 21 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 22 | } 23 | -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyAccessedAPITypes 6 | 7 | 8 | NSPrivacyAccessedAPIType 9 | NSPrivacyAccessedAPICategoryFileTimestamp 10 | NSPrivacyAccessedAPITypeReasons 11 | 12 | C617.1 13 | 14 | 15 | 16 | NSPrivacyAccessedAPIType 17 | NSPrivacyAccessedAPICategoryUserDefaults 18 | NSPrivacyAccessedAPITypeReasons 19 | 20 | CA92.1 21 | 22 | 23 | 24 | NSPrivacyAccessedAPIType 25 | NSPrivacyAccessedAPICategorySystemBootTime 26 | NSPrivacyAccessedAPITypeReasons 27 | 28 | 35F9.1 29 | 30 | 31 | 32 | NSPrivacyCollectedDataTypes 33 | 34 | NSPrivacyTracking 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Resolve react_native_pods.rb with node to allow for hoisting 2 | require Pod::Executable.execute_command('node', ['-p', 3 | 'require.resolve( 4 | "react-native/scripts/react_native_pods.rb", 5 | {paths: [process.argv[1]]}, 6 | )', __dir__]).strip 7 | 8 | platform :ios, min_ios_version_supported 9 | prepare_react_native_project! 10 | 11 | linkage = ENV['USE_FRAMEWORKS'] 12 | if linkage != nil 13 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green 14 | use_frameworks! :linkage => linkage.to_sym 15 | end 16 | 17 | target 'ReactNativeSampleApp' do 18 | config = use_native_modules! 19 | 20 | use_react_native!( 21 | :path => config[:reactNativePath], 22 | # An absolute path to your application root. 23 | :app_path => "#{Pod::Config.instance.installation_root}/.." 24 | ) 25 | 26 | post_install do |installer| 27 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 28 | react_native_post_install( 29 | installer, 30 | config[:reactNativePath], 31 | :mac_catalyst_enabled => false, 32 | # :ccache_enabled => true 33 | ) 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /.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 | **/.xcode.env.local 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | .cxx/ 34 | *.keystore 35 | !debug.keystore 36 | .kotlin/ 37 | 38 | # node.js 39 | # 40 | node_modules/ 41 | npm-debug.log 42 | yarn-error.log 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | **/fastlane/report.xml 52 | **/fastlane/Preview.html 53 | **/fastlane/screenshots 54 | **/fastlane/test_output 55 | 56 | # Bundle artifact 57 | *.jsbundle 58 | 59 | # Ruby / CocoaPods 60 | **/Pods/ 61 | /vendor/bundle/ 62 | 63 | # Temporary files created by Metro to check the health of the file watcher 64 | .metro-health-check* 65 | 66 | # testing 67 | /coverage 68 | 69 | # Yarn 70 | .yarn/* 71 | !.yarn/patches 72 | !.yarn/plugins 73 | !.yarn/releases 74 | !.yarn/sdks 75 | !.yarn/versions 76 | 77 | .vscode/ 78 | .bundle/ 79 | # react-native-config codegen 80 | ios/tmp.xcconfig 81 | .env -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ReactNativeSampleApp", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "android": "react-native run-android", 7 | "ios": "react-native run-ios", 8 | "lint": "eslint .", 9 | "start": "react-native start", 10 | "test": "jest" 11 | }, 12 | "dependencies": { 13 | "@descope/react-native-sdk": "^0.8.0", 14 | "@react-navigation/native": "^7.1.10", 15 | "@react-navigation/native-stack": "^7.3.14", 16 | "react": "19.0.0", 17 | "react-native": "0.79.3", 18 | "react-native-animatable": "^1.4.0", 19 | "react-native-config": "^1.5.5", 20 | "react-native-safe-area-context": "^5.4.1", 21 | "react-native-screens": "^4.11.1" 22 | }, 23 | "devDependencies": { 24 | "@babel/core": "^7.25.2", 25 | "@babel/preset-env": "^7.25.3", 26 | "@babel/runtime": "^7.25.0", 27 | "@react-native-community/cli": "18.0.0", 28 | "@react-native-community/cli-platform-android": "18.0.0", 29 | "@react-native-community/cli-platform-ios": "18.0.0", 30 | "@react-native/babel-preset": "0.79.3", 31 | "@react-native/eslint-config": "0.79.3", 32 | "@react-native/metro-config": "0.79.3", 33 | "@react-native/typescript-config": "0.79.3", 34 | "@types/jest": "^29.5.13", 35 | "@types/react": "^19.0.0", 36 | "@types/react-test-renderer": "^19.0.0", 37 | "eslint": "^8.19.0", 38 | "jest": "^29.6.3", 39 | "prettier": "2.8.8", 40 | "react-test-renderer": "19.0.0", 41 | "typescript": "5.0.4" 42 | }, 43 | "engines": { 44 | "node": ">=18" 45 | } 46 | } -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | TrekTribe 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(MARKETING_VERSION) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(CURRENT_PROJECT_VERSION) 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | NSAllowsArbitraryLoads 30 | 31 | NSAllowsLocalNetworking 32 | 33 | 34 | NSLocationWhenInUseUsageDescription 35 | 36 | UILaunchStoryboardName 37 | LaunchScreen 38 | UIRequiredDeviceCapabilities 39 | 40 | arm64 41 | 42 | UISupportedInterfaceOrientations 43 | 44 | UIInterfaceOrientationPortrait 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | UIViewControllerBasedStatusBarAppearance 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { AuthProvider } from '@descope/react-native-sdk'; 3 | import { NavigationContainer } from '@react-navigation/native'; 4 | import { createNativeStackNavigator } from '@react-navigation/native-stack'; 5 | import { Config } from 'react-native-config'; 6 | import { enableScreens } from 'react-native-screens'; 7 | import HomeScreen from './views/HomeScreen'; 8 | import WelcomeScreen from './views/simpleFlow/WelcomeScreen'; 9 | import SimpleFlowAuthScreen from './views/simpleFlow/SimpleFlowAuthScreen'; 10 | import WelcomeScreenModal from './views/modalFlow/WelcomeScreenModal'; 11 | import WelcomeScreenInline from './views/inlineFlow/WelcomeScreenInline'; 12 | 13 | enableScreens(); // to optimize screen usage 14 | 15 | const Stack = createNativeStackNavigator(); // navigation stack 16 | 17 | export default function App() { 18 | return ( 19 | 20 | 21 | 22 | 23 | 24 | ); 25 | } 26 | 27 | function MainNavigator() { 28 | const flowType = Config.AUTH_FLOW_TYPE || 'simple'; 29 | 30 | return ( 31 | 32 | 40 | {flowType === 'simple' && ( 41 | 42 | )} 43 | 44 | 45 | ); 46 | } -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m 13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | # AndroidX package structure to make it clearer which packages are bundled with the 21 | # Android operating system, and which are packaged with your app's APK 22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 23 | android.useAndroidX=true 24 | 25 | # Use this property to specify which architecture you want to build. 26 | # You can also override it from the CLI using 27 | # ./gradlew -PreactNativeArchitectures=x86_64 28 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 29 | 30 | # Use this property to enable support to the new architecture. 31 | # This will allow you to use TurboModules and the Fabric render in 32 | # your application. You should enable this flag either if you want 33 | # to write custom TurboModules/Fabric components OR use libraries that 34 | # are providing them. 35 | newArchEnabled=true 36 | 37 | # Use this property to enable or disable the Hermes JS engine. 38 | # If set to false, you will be using JSC instead. 39 | hermesEnabled=true 40 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/reactnativesampleapp/MainApplication.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativesampleapp 2 | 3 | import android.app.Application 4 | import com.facebook.react.PackageList 5 | import com.facebook.react.ReactApplication 6 | import com.facebook.react.ReactHost 7 | import com.facebook.react.ReactNativeHost 8 | import com.facebook.react.ReactPackage 9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load 10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost 11 | import com.facebook.react.defaults.DefaultReactNativeHost 12 | import com.facebook.react.soloader.OpenSourceMergedSoMapping 13 | import com.facebook.soloader.SoLoader 14 | 15 | class MainApplication : Application(), ReactApplication { 16 | 17 | override val reactNativeHost: ReactNativeHost = 18 | object : DefaultReactNativeHost(this) { 19 | override fun getPackages(): List = 20 | PackageList(this).packages.apply { 21 | // Packages that cannot be autolinked yet can be added manually here, for example: 22 | // add(MyReactNativePackage()) 23 | } 24 | 25 | override fun getJSMainModuleName(): String = "index" 26 | 27 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG 28 | 29 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED 30 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED 31 | } 32 | 33 | override val reactHost: ReactHost 34 | get() = getDefaultReactHost(applicationContext, reactNativeHost) 35 | 36 | override fun onCreate() { 37 | super.onCreate() 38 | SoLoader.init(this, OpenSourceMergedSoMapping) 39 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 40 | // If you opted-in for the New Architecture, we load the native entry point for this app. 41 | load() 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/rn_edit_text_material.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 22 | 23 | 24 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import React 3 | import React_RCTAppDelegate 4 | import ReactAppDependencyProvider 5 | 6 | @main 7 | class AppDelegate: UIResponder, UIApplicationDelegate { 8 | var window: UIWindow? 9 | 10 | var reactNativeDelegate: ReactNativeDelegate? 11 | var reactNativeFactory: RCTReactNativeFactory? 12 | 13 | func application( 14 | _ application: UIApplication, 15 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil 16 | ) -> Bool { 17 | let delegate = ReactNativeDelegate() 18 | let factory = RCTReactNativeFactory(delegate: delegate) 19 | delegate.dependencyProvider = RCTAppDependencyProvider() 20 | 21 | reactNativeDelegate = delegate 22 | reactNativeFactory = factory 23 | 24 | window = UIWindow(frame: UIScreen.main.bounds) 25 | 26 | factory.startReactNative( 27 | withModuleName: "ReactNativeSampleApp", 28 | in: window, 29 | launchOptions: launchOptions 30 | ) 31 | 32 | return true 33 | } 34 | 35 | // https://reactnavigation.org/docs/deep-linking/#setup-on-ios 36 | // Required for handling Universal Links on iOS. 37 | // This method is called when the app is opened via a Universal Link (e.g. Magic Link, OAuth callback), 38 | // and forwards the URL to React Native's RCTLinkingManager for proper handling in JavaScript. 39 | func application(_ application: UIApplication, 40 | continue userActivity: NSUserActivity, 41 | restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { 42 | return RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) 43 | } 44 | } 45 | 46 | class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate { 47 | override func sourceURL(for bridge: RCTBridge) -> URL? { 48 | self.bundleURL() 49 | } 50 | 51 | override func bundleURL() -> URL? { 52 | #if DEBUG 53 | RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") 54 | #else 55 | Bundle.main.url(forResource: "main", withExtension: "jsbundle") 56 | #endif 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /views/HomeScreen.tsx: -------------------------------------------------------------------------------- 1 | import React, { useCallback } from 'react'; 2 | import { View, Text, Pressable, Alert, StyleSheet, ImageBackground } from 'react-native'; 3 | import { useDescope, useSession } from '@descope/react-native-sdk'; 4 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 5 | 6 | type HomeScreenProps = { 7 | navigation: NativeStackNavigationProp; 8 | }; 9 | 10 | export default function HomeScreen({ navigation }: HomeScreenProps) { 11 | const { session, clearSession } = useSession(); 12 | const { logout } = useDescope(); 13 | 14 | const handleLogout = useCallback(async () => { 15 | Alert.alert('Success', 'You have been logged out'); 16 | try { 17 | await logout(); 18 | await clearSession(); 19 | navigation.navigate('Welcome'); 20 | } catch (error) { 21 | console.error('Logout failed:', error); 22 | } 23 | }, [logout, clearSession]); 24 | 25 | return ( 26 | 30 | 31 | 32 | 36 | Logout 37 | 38 | 39 | 👋 Welcome,{'\n'}{session?.user?.name || session?.user?.email || 'user'}! 40 | 41 | 42 | ); 43 | } 44 | 45 | const styles = StyleSheet.create({ 46 | backgroundImage: { 47 | flex: 1, 48 | width: '100%', 49 | height: '100%', 50 | }, 51 | container: { 52 | flex: 1, 53 | alignItems: 'center', 54 | backgroundColor: 'rgba(0, 0, 0, 0.5)', 55 | paddingTop: '50%', 56 | }, 57 | header: { 58 | position: 'absolute', 59 | top: 50, 60 | right: 20, 61 | }, 62 | text: { 63 | fontSize: 24, 64 | color: 'white', 65 | marginBottom: 20, 66 | textAlign: 'center', 67 | }, 68 | button: { 69 | paddingVertical: 12, 70 | paddingHorizontal: 12, 71 | borderRadius: 12, 72 | }, 73 | buttonText: { 74 | color: 'white', 75 | fontSize: 16, 76 | fontWeight: 'bold', 77 | }, 78 | }); -------------------------------------------------------------------------------- /views/simpleFlow/WelcomeScreen.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View, Text, StyleSheet, ImageBackground, SafeAreaView, TouchableOpacity } from 'react-native'; 3 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 4 | 5 | type WelcomeScreenProps = { 6 | navigation: NativeStackNavigationProp; 7 | }; 8 | 9 | export default function WelcomeScreen({ navigation }: WelcomeScreenProps) { 10 | return ( 11 | 12 | 17 | 18 | 19 | Welcome to TrekTribe 20 | Find Treks, Buddies, and make memories! 21 | 22 | 23 | 24 | navigation.navigate('Auth')} 27 | activeOpacity={0.8} 28 | > 29 | Sign In 30 | 31 | 32 | 33 | 34 | 35 | ); 36 | } 37 | 38 | const styles = StyleSheet.create({ 39 | container: { 40 | flex: 1, 41 | }, 42 | background: { 43 | flex: 1, 44 | width: '100%', 45 | height: '100%', 46 | }, 47 | safeArea: { 48 | flex: 1, 49 | backgroundColor: 'rgba(0,0,0,0.3)', 50 | }, 51 | textContainer: { 52 | flex: 1, 53 | justifyContent: 'center', 54 | alignItems: 'center', 55 | }, 56 | title: { 57 | fontSize: 32, 58 | fontWeight: '800', 59 | color: '#fff', 60 | textAlign: 'center', 61 | marginBottom: 12, 62 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 63 | textShadowOffset: { width: 0, height: 2 }, 64 | textShadowRadius: 4, 65 | }, 66 | subtitle: { 67 | fontSize: 15, 68 | color: '#fff', 69 | textAlign: 'center', 70 | fontWeight: '500', 71 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 72 | textShadowOffset: { width: 0, height: 1 }, 73 | textShadowRadius: 3, 74 | }, 75 | buttonContainer: { 76 | width: '100%', 77 | paddingHorizontal: 24, 78 | paddingBottom: 40, 79 | }, 80 | button: { 81 | backgroundColor: '#fff', 82 | paddingVertical: 16, 83 | borderRadius: 12, 84 | shadowColor: '#000', 85 | shadowOffset: { 86 | width: 0, 87 | height: 2, 88 | }, 89 | shadowOpacity: 0.25, 90 | shadowRadius: 3.84, 91 | elevation: 5, 92 | }, 93 | buttonText: { 94 | color: '#2c3e50', 95 | fontSize: 18, 96 | fontWeight: '600', 97 | textAlign: 'center', 98 | }, 99 | }); -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/LaunchScreen.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 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | CFPropertyList (3.0.7) 5 | base64 6 | nkf 7 | rexml 8 | activesupport (6.1.7.10) 9 | concurrent-ruby (~> 1.0, >= 1.0.2) 10 | i18n (>= 1.6, < 2) 11 | minitest (>= 5.1) 12 | tzinfo (~> 2.0) 13 | zeitwerk (~> 2.3) 14 | addressable (2.8.7) 15 | public_suffix (>= 2.0.2, < 7.0) 16 | algoliasearch (1.27.5) 17 | httpclient (~> 2.8, >= 2.8.3) 18 | json (>= 1.5.1) 19 | atomos (0.1.3) 20 | base64 (0.3.0) 21 | benchmark (0.4.1) 22 | bigdecimal (3.2.2) 23 | claide (1.1.0) 24 | cocoapods (1.15.2) 25 | addressable (~> 2.8) 26 | claide (>= 1.0.2, < 2.0) 27 | cocoapods-core (= 1.15.2) 28 | cocoapods-deintegrate (>= 1.0.3, < 2.0) 29 | cocoapods-downloader (>= 2.1, < 3.0) 30 | cocoapods-plugins (>= 1.0.0, < 2.0) 31 | cocoapods-search (>= 1.0.0, < 2.0) 32 | cocoapods-trunk (>= 1.6.0, < 2.0) 33 | cocoapods-try (>= 1.1.0, < 2.0) 34 | colored2 (~> 3.1) 35 | escape (~> 0.0.4) 36 | fourflusher (>= 2.3.0, < 3.0) 37 | gh_inspector (~> 1.0) 38 | molinillo (~> 0.8.0) 39 | nap (~> 1.0) 40 | ruby-macho (>= 2.3.0, < 3.0) 41 | xcodeproj (>= 1.23.0, < 2.0) 42 | cocoapods-core (1.15.2) 43 | activesupport (>= 5.0, < 8) 44 | addressable (~> 2.8) 45 | algoliasearch (~> 1.0) 46 | concurrent-ruby (~> 1.1) 47 | fuzzy_match (~> 2.0.4) 48 | nap (~> 1.0) 49 | netrc (~> 0.11) 50 | public_suffix (~> 4.0) 51 | typhoeus (~> 1.0) 52 | cocoapods-deintegrate (1.0.5) 53 | cocoapods-downloader (2.1) 54 | cocoapods-plugins (1.0.0) 55 | nap 56 | cocoapods-search (1.0.1) 57 | cocoapods-trunk (1.6.0) 58 | nap (>= 0.8, < 2.0) 59 | netrc (~> 0.11) 60 | cocoapods-try (1.2.0) 61 | colored2 (3.1.2) 62 | concurrent-ruby (1.3.3) 63 | escape (0.0.4) 64 | ethon (0.16.0) 65 | ffi (>= 1.15.0) 66 | ffi (1.17.2) 67 | fourflusher (2.3.1) 68 | fuzzy_match (2.0.4) 69 | gh_inspector (1.1.3) 70 | httpclient (2.9.0) 71 | mutex_m 72 | i18n (1.14.7) 73 | concurrent-ruby (~> 1.0) 74 | json (2.7.6) 75 | logger (1.7.0) 76 | minitest (5.25.4) 77 | molinillo (0.8.0) 78 | mutex_m (0.3.0) 79 | nanaimo (0.3.0) 80 | nap (1.1.0) 81 | netrc (0.11.0) 82 | nkf (0.2.0) 83 | public_suffix (4.0.7) 84 | rexml (3.4.1) 85 | ruby-macho (2.5.1) 86 | typhoeus (1.4.1) 87 | ethon (>= 0.9.0) 88 | tzinfo (2.0.6) 89 | concurrent-ruby (~> 1.0) 90 | xcodeproj (1.25.1) 91 | CFPropertyList (>= 2.3.3, < 4.0) 92 | atomos (~> 0.1.3) 93 | claide (>= 1.0.2, < 2.0) 94 | colored2 (~> 3.1) 95 | nanaimo (~> 0.3.0) 96 | rexml (>= 3.3.6, < 4.0) 97 | zeitwerk (2.6.18) 98 | 99 | PLATFORMS 100 | ruby 101 | 102 | DEPENDENCIES 103 | activesupport (>= 6.1.7.5, != 7.1.0) 104 | benchmark 105 | bigdecimal 106 | cocoapods (>= 1.13, != 1.15.1, != 1.15.0) 107 | concurrent-ruby (< 1.3.4) 108 | logger 109 | mutex_m 110 | xcodeproj (< 1.26.0) 111 | 112 | RUBY VERSION 113 | ruby 2.6.10p210 114 | 115 | BUNDLED WITH 116 | 1.17.2 117 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | @rem SPDX-License-Identifier: Apache-2.0 17 | @rem 18 | 19 | @if "%DEBUG%"=="" @echo off 20 | @rem ########################################################################## 21 | @rem 22 | @rem Gradle startup script for Windows 23 | @rem 24 | @rem ########################################################################## 25 | 26 | @rem Set local scope for the variables with windows NT shell 27 | if "%OS%"=="Windows_NT" setlocal 28 | 29 | set DIRNAME=%~dp0 30 | if "%DIRNAME%"=="" set DIRNAME=. 31 | @rem This is normally unused 32 | set APP_BASE_NAME=%~n0 33 | set APP_HOME=%DIRNAME% 34 | 35 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 36 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 37 | 38 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 39 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 40 | 41 | @rem Find java.exe 42 | if defined JAVA_HOME goto findJavaFromJavaHome 43 | 44 | set JAVA_EXE=java.exe 45 | %JAVA_EXE% -version >NUL 2>&1 46 | if %ERRORLEVEL% equ 0 goto execute 47 | 48 | echo. 1>&2 49 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 50 | echo. 1>&2 51 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 52 | echo location of your Java installation. 1>&2 53 | 54 | goto fail 55 | 56 | :findJavaFromJavaHome 57 | set JAVA_HOME=%JAVA_HOME:"=% 58 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 59 | 60 | if exist "%JAVA_EXE%" goto execute 61 | 62 | echo. 1>&2 63 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 64 | echo. 1>&2 65 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2 66 | echo location of your Java installation. 1>&2 67 | 68 | goto fail 69 | 70 | :execute 71 | @rem Setup the command line 72 | 73 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 74 | 75 | 76 | @rem Execute Gradle 77 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 78 | 79 | :end 80 | @rem End local scope for the variables with windows NT shell 81 | if %ERRORLEVEL% equ 0 goto mainEnd 82 | 83 | :fail 84 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 85 | rem the _cmd.exe /c_ return code! 86 | set EXIT_CODE=%ERRORLEVEL% 87 | if %EXIT_CODE% equ 0 set EXIT_CODE=1 88 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% 89 | exit /b %EXIT_CODE% 90 | 91 | :mainEnd 92 | if "%OS%"=="Windows_NT" endlocal 93 | 94 | :omega 95 | -------------------------------------------------------------------------------- /views/modalFlow/WelcomeScreenModal.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import { View, Text, StyleSheet, ImageBackground, SafeAreaView, TouchableOpacity, Modal, ActivityIndicator } from 'react-native'; 3 | import ModalFlowAuthScreen from './ModalFlowAuthScreen'; 4 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 5 | 6 | type WelcomeScreenModalProps = { 7 | navigation: NativeStackNavigationProp; 8 | }; 9 | 10 | export default function WelcomeScreenModal({ navigation }: WelcomeScreenModalProps) { 11 | const [showModal, setShowModal] = useState(false); 12 | 13 | return ( 14 | 15 | 20 | 21 | 22 | Welcome to TrekTribe 23 | Find Treks, Buddies, and make memories 24 | 25 | 26 | 27 | setShowModal(true)} 30 | activeOpacity={0.8} 31 | > 32 | Sign In 33 | 34 | 35 | setShowModal(false)} 40 | > 41 | 45 | 46 | 47 | 48 | 49 | ); 50 | } 51 | 52 | const styles = StyleSheet.create({ 53 | container: { 54 | flex: 1, 55 | }, 56 | background: { 57 | flex: 1, 58 | width: '100%', 59 | height: '100%', 60 | }, 61 | safeArea: { 62 | flex: 1, 63 | backgroundColor: 'rgba(0,0,0,0.3)', 64 | }, 65 | textContainer: { 66 | flex: 1, 67 | justifyContent: 'center', 68 | alignItems: 'center', 69 | }, 70 | title: { 71 | fontSize: 32, 72 | fontWeight: '800', 73 | color: '#fff', 74 | textAlign: 'center', 75 | marginBottom: 12, 76 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 77 | textShadowOffset: { width: 0, height: 2 }, 78 | textShadowRadius: 4, 79 | }, 80 | subtitle: { 81 | fontSize: 15, 82 | color: '#fff', 83 | textAlign: 'center', 84 | fontWeight: '500', 85 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 86 | textShadowOffset: { width: 0, height: 1 }, 87 | textShadowRadius: 3, 88 | }, 89 | buttonContainer: { 90 | width: '100%', 91 | paddingHorizontal: 24, 92 | paddingBottom: 40, 93 | }, 94 | button: { 95 | backgroundColor: '#fff', 96 | paddingVertical: 16, 97 | borderRadius: 12, 98 | shadowColor: '#000', 99 | shadowOffset: { 100 | width: 0, 101 | height: 2, 102 | }, 103 | shadowOpacity: 0.25, 104 | shadowRadius: 3.84, 105 | elevation: 5, 106 | }, 107 | buttonText: { 108 | color: '#2c3e50', 109 | fontSize: 18, 110 | fontWeight: '600', 111 | textAlign: 'center', 112 | }, 113 | }); -------------------------------------------------------------------------------- /views/modalFlow/ModalFlowAuthScreen.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react'; 2 | import { StyleSheet, View, TouchableOpacity, Text, ActivityIndicator, Linking } from 'react-native'; 3 | import { FlowView, useSession } from '@descope/react-native-sdk'; 4 | import { Config } from 'react-native-config'; 5 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 6 | 7 | type ModalFlowAuthScreenProps = { 8 | setShowModal: (showModal: boolean) => void; 9 | navigation: NativeStackNavigationProp; 10 | }; 11 | 12 | export default function ModalFlowAuthScreen({ setShowModal, navigation }: ModalFlowAuthScreenProps) { 13 | const { manageSession } = useSession(); 14 | const [ isFlowReady, setIsFlowReady ] = useState(false); 15 | const [ deepLink, setDeepLink ] = useState(undefined); 16 | 17 | const flowUrl = `${Config.BASE_API_URL}/login/${Config.PROJECT_ID}?flow=${Config.FLOW_ID}&shadow=false`; 18 | 19 | useEffect(() => { 20 | const isValidDeepLink = (url: string) => url.startsWith(`${Config.BASE_API_URL}/login`); 21 | 22 | const handleUrl = async (event: { url: string }) => { 23 | if (isValidDeepLink(event.url)) { 24 | setDeepLink(event.url); 25 | } 26 | }; 27 | 28 | Linking.addEventListener('url', handleUrl); 29 | 30 | // Handle deep link if app was cold-launched via a valid URL 31 | Linking.getInitialURL().then((url) => { 32 | if (url && isValidDeepLink(url)) { 33 | setDeepLink(url); 34 | } 35 | }); 36 | 37 | return () => Linking.removeAllListeners('url'); 38 | }, []); 39 | 40 | return ( 41 | 42 | setShowModal(false)}> 43 | ← Back 44 | 45 | 46 | setIsFlowReady(true)} 55 | onSuccess={async (jwtResponse) => { 56 | try { 57 | await manageSession(jwtResponse); 58 | navigation.reset({ 59 | index: 0, 60 | routes: [{ name: 'Home' }], 61 | }); 62 | } catch (e) { 63 | console.error('Session management error:', e); 64 | } 65 | }} 66 | onError={(e) => console.error('Auth error:', e)} 67 | /> 68 | {!isFlowReady && ( 69 | 70 | 71 | 72 | )} 73 | 74 | 75 | ); 76 | } 77 | 78 | const styles = StyleSheet.create({ 79 | container: { 80 | flex: 1, 81 | backgroundColor: 'white', 82 | }, 83 | contentContainer: { 84 | flex: 1, 85 | position: 'relative', 86 | }, 87 | backButton: { 88 | paddingTop: 40, 89 | paddingHorizontal: 16, 90 | marginBottom: 16, 91 | }, 92 | buttonText: { 93 | color: '#007AFF', 94 | fontSize: 16, 95 | }, 96 | fill: { 97 | flex: 1, 98 | }, 99 | loadingContainer: { 100 | ...StyleSheet.absoluteFillObject, 101 | backgroundColor: '#fff', 102 | justifyContent: 'center', 103 | alignItems: 'center', 104 | }, 105 | }); -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp.xcodeproj/xcshareddata/xcschemes/ReactNativeSampleApp.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 | -------------------------------------------------------------------------------- /views/simpleFlow/SimpleFlowAuthScreen.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react'; 2 | import { FlowView, useSession } from '@descope/react-native-sdk'; 3 | import { StyleSheet, View, TouchableOpacity, Text, SafeAreaView, ActivityIndicator, Linking, Alert } from 'react-native'; 4 | import { Config } from 'react-native-config'; 5 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 6 | 7 | type SimpleFlowAuthScreenProps = { 8 | navigation: NativeStackNavigationProp; 9 | }; 10 | 11 | export default function SimpleFlowAuthScreen({ navigation }: SimpleFlowAuthScreenProps) { 12 | const { session, manageSession } = useSession(); 13 | const [ isFlowReady, setIsFlowReady ] = useState(false); 14 | const [ deepLink, setDeepLink ] = useState(undefined); 15 | 16 | const flowUrl = `${Config.BASE_API_URL}/login/${Config.PROJECT_ID}?flow=${Config.FLOW_ID}&shadow=false`; 17 | 18 | useEffect(() => { 19 | const isValidDeepLink = (url: string) => url.startsWith(`${Config.BASE_API_URL}/login`); 20 | 21 | const handleUrl = async (event: { url: string }) => { 22 | if (isValidDeepLink(event.url)) { 23 | setDeepLink(event.url); 24 | } 25 | }; 26 | 27 | Linking.addEventListener('url', handleUrl); 28 | 29 | // Handle deep link if app was cold-launched via a valid URL 30 | Linking.getInitialURL().then((url) => { 31 | if (url && isValidDeepLink(url)) { 32 | setDeepLink(url); 33 | } 34 | }); 35 | 36 | return () => Linking.removeAllListeners('url'); 37 | }, []); 38 | 39 | return ( 40 | 41 | navigation.goBack()} 44 | > 45 | ← Cancel 46 | 47 | 48 | { 57 | setIsFlowReady(true) 58 | console.log("Flow is ready"); 59 | }} 60 | onSuccess={async (jwtResponse) => { 61 | try { 62 | await manageSession(jwtResponse); 63 | navigation.reset({ 64 | index: 0, 65 | routes: [{ name: 'Home' }], 66 | }); 67 | console.log("Flow Success"); 68 | } catch (e) { 69 | console.error('Session management error:', e); 70 | } 71 | }} 72 | onError={(error) => { 73 | console.error('Authentication error:', error); 74 | }} 75 | /> 76 | {!isFlowReady && ( 77 | 78 | 79 | 80 | )} 81 | 82 | ); 83 | } 84 | 85 | const styles = StyleSheet.create({ 86 | container: { 87 | flex: 1, 88 | paddingHorizontal: 4, 89 | paddingTop: 8, 90 | }, 91 | fill: { 92 | flex: 1, 93 | position: 'absolute', 94 | top: 0, 95 | left: 0, 96 | right: 0, 97 | bottom: 0, 98 | }, 99 | cancelButton: { 100 | alignSelf: 'flex-start', 101 | marginBottom: 16, 102 | paddingVertical: 12, 103 | paddingHorizontal: 8, 104 | borderRadius: 12, 105 | zIndex: 1, 106 | }, 107 | backText: { 108 | color: '#007AFF', // ios blue color 109 | fontSize: 18 110 | }, 111 | loadingContainer: { 112 | ...StyleSheet.absoluteFillObject, 113 | backgroundColor: '#fff', 114 | justifyContent: 'center', 115 | alignItems: 'center', 116 | }, 117 | }); -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "com.android.application" 2 | apply plugin: "org.jetbrains.kotlin.android" 3 | apply plugin: "com.facebook.react" 4 | 5 | /** 6 | * This is the configuration block to customize your React Native Android app. 7 | * By default you don't need to apply any configuration, just uncomment the lines you need. 8 | */ 9 | react { 10 | /* Folders */ 11 | // The root of your project, i.e. where "package.json" lives. Default is '../..' 12 | // root = file("../../") 13 | // The folder where the react-native NPM package is. Default is ../../node_modules/react-native 14 | // reactNativeDir = file("../../node_modules/react-native") 15 | // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen 16 | // codegenDir = file("../../node_modules/@react-native/codegen") 17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js 18 | // cliFile = file("../../node_modules/react-native/cli.js") 19 | 20 | /* Variants */ 21 | // The list of variants to that are debuggable. For those we're going to 22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'. 23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. 24 | // debuggableVariants = ["liteDebug", "prodDebug"] 25 | 26 | /* Bundling */ 27 | // A list containing the node command and its flags. Default is just 'node'. 28 | // nodeExecutableAndArgs = ["node"] 29 | // 30 | // The command to run when bundling. By default is 'bundle' 31 | // bundleCommand = "ram-bundle" 32 | // 33 | // The path to the CLI configuration file. Default is empty. 34 | // bundleConfig = file(../rn-cli.config.js) 35 | // 36 | // The name of the generated asset file containing your JS bundle 37 | // bundleAssetName = "MyApplication.android.bundle" 38 | // 39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' 40 | // entryFile = file("../js/MyApplication.android.js") 41 | // 42 | // A list of extra flags to pass to the 'bundle' commands. 43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle 44 | // extraPackagerArgs = [] 45 | 46 | /* Hermes Commands */ 47 | // The hermes compiler command to run. By default it is 'hermesc' 48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" 49 | // 50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" 51 | // hermesFlags = ["-O", "-output-source-map"] 52 | 53 | /* Autolinking */ 54 | autolinkLibrariesWithApp() 55 | } 56 | 57 | /** 58 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode. 59 | */ 60 | def enableProguardInReleaseBuilds = false 61 | 62 | /** 63 | * The preferred build flavor of JavaScriptCore (JSC) 64 | * 65 | * For example, to use the international variant, you can use: 66 | * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+` 67 | * 68 | * The international variant includes ICU i18n library and necessary data 69 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that 70 | * give correct results when using with locales other than en-US. Note that 71 | * this variant is about 6MiB larger per architecture than default. 72 | */ 73 | def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' 74 | 75 | android { 76 | apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" 77 | ndkVersion rootProject.ext.ndkVersion 78 | buildToolsVersion rootProject.ext.buildToolsVersion 79 | compileSdk rootProject.ext.compileSdkVersion 80 | 81 | namespace "com.reactnativesampleapp" 82 | defaultConfig { 83 | applicationId "com.reactnativesampleapp" 84 | minSdkVersion rootProject.ext.minSdkVersion 85 | targetSdkVersion rootProject.ext.targetSdkVersion 86 | versionCode 1 87 | versionName "1.0" 88 | } 89 | signingConfigs { 90 | debug { 91 | storeFile file('keystores/sample-debug.keystore') 92 | storePassword 'itworks' 93 | keyAlias 'sampledebugkey' 94 | keyPassword 'itworks' 95 | } 96 | release { 97 | storeFile file('keystores/sample-debug.keystore') 98 | storePassword 'itworks' 99 | keyAlias 'sampledebugkey' 100 | keyPassword 'itworks' 101 | } 102 | } 103 | buildTypes { 104 | debug { 105 | signingConfig signingConfigs.debug 106 | } 107 | release { 108 | // Caution! In production, you need to generate your own keystore file. 109 | // see https://reactnative.dev/docs/signed-apk-android. 110 | signingConfig signingConfigs.release 111 | minifyEnabled enableProguardInReleaseBuilds 112 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 113 | } 114 | } 115 | } 116 | 117 | dependencies { 118 | // The version of react-native is set by the React Native Gradle Plugin 119 | implementation("com.facebook.react:react-android") 120 | 121 | if (hermesEnabled.toBoolean()) { 122 | implementation("com.facebook.react:hermes-android") 123 | } else { 124 | implementation jscFlavor 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | {"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"102.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"51x51","expected-size":"102","role":"appLauncher"},{"idiom":"watch","filename":"108.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"49mm","scale":"2x","size":"54x54","expected-size":"108","role":"appLauncher"},{"idiom":"watch","filename":"92.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"46x46","expected-size":"92","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"234.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"117x117","expected-size":"234","role":"quickLook"},{"idiom":"watch","filename":"258.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"49mm","scale":"2x","size":"129x129","expected-size":"258","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"idiom":"watch","filename":"66.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"33x33","expected-size":"66","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} -------------------------------------------------------------------------------- /views/inlineFlow/WelcomeScreenInline.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react'; 2 | import { View, Text, StyleSheet, ImageBackground, SafeAreaView, TouchableOpacity, StatusBar, ActivityIndicator, Linking } from 'react-native'; 3 | import { FlowView, useSession } from '@descope/react-native-sdk'; 4 | import { Config } from 'react-native-config'; 5 | import * as Animatable from 'react-native-animatable'; 6 | import { NativeStackNavigationProp } from '@react-navigation/native-stack'; 7 | 8 | type WelcomeScreenInlineProps = { 9 | navigation: NativeStackNavigationProp; 10 | }; 11 | 12 | export default function WelcomeScreenInline({ navigation }: WelcomeScreenInlineProps) { 13 | const { session, manageSession } = useSession(); 14 | const [ showFlow, setShowFlow] = useState(false); // should we show the auth inline component? (i.e, Did user click sign in?) 15 | const [ isFlowReady, setIsFlowReady ] = useState(false); // is the pre-loaded for the flow view ready? 16 | const [ isFlowShown, setIsFlowShown ] = useState(false); // is the auth inline component shown currently? 17 | const [ deepLink, setDeepLink ] = useState(undefined); 18 | 19 | const flowUrl = `${Config.BASE_API_URL}/login/${Config.PROJECT_ID}?flow=${Config.FLOW_ID}&shadow=true`; 20 | 21 | useEffect(() => { 22 | const isValidDeepLink = (url: string) => url.startsWith(`${Config.BASE_API_URL}/login`); 23 | 24 | const handleUrl = async (event: { url: string }) => { 25 | if (isValidDeepLink(event.url)) { 26 | setDeepLink(event.url); 27 | } 28 | }; 29 | 30 | Linking.addEventListener('url', handleUrl); 31 | 32 | // Handle deep link if app was cold-launched via a valid URL 33 | Linking.getInitialURL().then((url) => { 34 | if (url && isValidDeepLink(url)) { 35 | setDeepLink(url); 36 | } 37 | }); 38 | 39 | return () => Linking.removeAllListeners('url'); 40 | }, []); 41 | 42 | useEffect(() => { 43 | if (showFlow && isFlowReady && !isFlowShown) { 44 | setIsFlowShown(true); 45 | } 46 | }, [showFlow, isFlowReady, isFlowShown]); 47 | 48 | const flowViewComponent = ( 49 | { 58 | try { 59 | await manageSession(jwtResponse); 60 | navigation.reset({ 61 | index: 0, 62 | routes: [{ name: 'Home' }], 63 | }); 64 | } catch (e) { 65 | console.error('Session management error:', e); 66 | } 67 | }} 68 | onError={(e) => console.error('Auth error:', e)} 69 | /> 70 | ); 71 | 72 | // to pre-load the flow view, won't be visible 73 | const hiddenFlowView = !isFlowReady ? ( 74 | 75 | setIsFlowReady(true)} 78 | /> 79 | 80 | ) : null; 81 | 82 | // Loading indicator while flow is not ready 83 | const loadingView = showFlow && !isFlowShown ? ( 84 | 85 | 86 | Loading... 87 | 88 | ) : null; 89 | 90 | // will be used once sign in is clicked, and flow view is ready 91 | const visibleFlowView = showFlow && isFlowReady ? ( 92 | setIsFlowShown(true)}> 93 | {flowViewComponent} 94 | 95 | ) : null; 96 | 97 | return ( 98 | 99 | 100 | 105 | 106 | 111 | Welcome to TrekTribe 112 | Find Treks, Buddies, and make memories 113 | 114 | setShowFlow(true)} 117 | activeOpacity={0.8} 118 | > 119 | Sign In 120 | 121 | 122 | 123 | 124 | {hiddenFlowView} 125 | {loadingView} 126 | {visibleFlowView} 127 | 128 | 129 | 130 | 131 | ); 132 | } 133 | 134 | const styles = StyleSheet.create({ 135 | container: { 136 | flex: 1, 137 | }, 138 | background: { 139 | flex: 1, 140 | width: '100%', 141 | height: '100%', 142 | }, 143 | safeArea: { 144 | flex: 1, 145 | backgroundColor: 'rgba(0,0,0,0.3)', 146 | }, 147 | contentContainer: { 148 | flex: 1, 149 | justifyContent: 'space-between', 150 | }, 151 | textContainer: { 152 | flex: 1, 153 | justifyContent: 'center', 154 | alignItems: 'center', 155 | }, 156 | title: { 157 | fontSize: 32, 158 | fontWeight: '800', 159 | color: '#fff', 160 | textAlign: 'center', 161 | marginBottom: 12, 162 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 163 | textShadowOffset: { width: 0, height: 2 }, 164 | textShadowRadius: 4, 165 | }, 166 | subtitle: { 167 | fontSize: 15, 168 | color: '#fff', 169 | textAlign: 'center', 170 | fontWeight: '500', 171 | textShadowColor: 'rgba(0, 0, 0, 0.3)', 172 | textShadowOffset: { width: 0, height: 1 }, 173 | textShadowRadius: 3, 174 | }, 175 | buttonContainer: { 176 | width: '100%', 177 | paddingHorizontal: 24, 178 | paddingBottom: 40, 179 | }, 180 | button: { 181 | backgroundColor: '#fff', 182 | paddingVertical: 16, 183 | borderRadius: 12, 184 | shadowColor: '#000', 185 | shadowOffset: { 186 | width: 0, 187 | height: 2, 188 | }, 189 | shadowOpacity: 0.25, 190 | shadowRadius: 3.84, 191 | elevation: 5, 192 | marginTop: 10, 193 | marginBottom: 10, 194 | }, 195 | buttonText: { 196 | color: '#2c3e50', 197 | fontSize: 18, 198 | fontWeight: '600', 199 | textAlign: 'center', 200 | }, 201 | flowContainer: { 202 | position: 'absolute', 203 | bottom: 0, 204 | left: 0, 205 | right: 0, 206 | height: '70%', 207 | padding: 16, 208 | }, 209 | flowWrapper: { 210 | position: 'absolute', 211 | bottom: 0, 212 | width: '100%', 213 | height: '55%', 214 | padding: 0, 215 | backgroundColor: '#F5F6FA', 216 | borderRadius: 25, 217 | shadowColor: '#000', 218 | shadowOffset: { 219 | width: 0, 220 | height: -5, 221 | }, 222 | shadowOpacity: 0.5, 223 | shadowRadius: 10, 224 | elevation: 5, 225 | overflow: 'visible', 226 | }, 227 | fill: { 228 | flex: 1, 229 | }, 230 | visible: { 231 | opacity: 1, 232 | }, 233 | hidden: { 234 | opacity: 0, 235 | }, 236 | hiddenFlow: { 237 | position: 'absolute', 238 | width: 0, 239 | height: 0, 240 | opacity: 0, 241 | }, 242 | loadingContainer: { 243 | position: 'absolute', 244 | top: 0, 245 | left: 0, 246 | right: 0, 247 | bottom: 0, 248 | justifyContent: 'center', 249 | alignItems: 'center', 250 | backgroundColor: 'rgba(0, 0, 0, 0.7)', 251 | }, 252 | loadingText: { 253 | color: '#fff', 254 | marginTop: 12, 255 | fontSize: 16, 256 | }, 257 | }); -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Copyright © 2015-2021 the original authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | # SPDX-License-Identifier: Apache-2.0 19 | # 20 | 21 | ############################################################################## 22 | # 23 | # Gradle start up script for POSIX generated by Gradle. 24 | # 25 | # Important for running: 26 | # 27 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is 28 | # noncompliant, but you have some other compliant shell such as ksh or 29 | # bash, then to run this script, type that shell name before the whole 30 | # command line, like: 31 | # 32 | # ksh Gradle 33 | # 34 | # Busybox and similar reduced shells will NOT work, because this script 35 | # requires all of these POSIX shell features: 36 | # * functions; 37 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}», 38 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»; 39 | # * compound commands having a testable exit status, especially «case»; 40 | # * various built-in commands including «command», «set», and «ulimit». 41 | # 42 | # Important for patching: 43 | # 44 | # (2) This script targets any POSIX shell, so it avoids extensions provided 45 | # by Bash, Ksh, etc; in particular arrays are avoided. 46 | # 47 | # The "traditional" practice of packing multiple parameters into a 48 | # space-separated string is a well documented source of bugs and security 49 | # problems, so this is (mostly) avoided, by progressively accumulating 50 | # options in "$@", and eventually passing that to Java. 51 | # 52 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, 53 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; 54 | # see the in-line comments for details. 55 | # 56 | # There are tweaks for specific operating systems such as AIX, CygWin, 57 | # Darwin, MinGW, and NonStop. 58 | # 59 | # (3) This script is generated from the Groovy template 60 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt 61 | # within the Gradle project. 62 | # 63 | # You can find Gradle at https://github.com/gradle/gradle/. 64 | # 65 | ############################################################################## 66 | 67 | # Attempt to set APP_HOME 68 | 69 | # Resolve links: $0 may be a link 70 | app_path=$0 71 | 72 | # Need this for daisy-chained symlinks. 73 | while 74 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path 75 | [ -h "$app_path" ] 76 | do 77 | ls=$( ls -ld "$app_path" ) 78 | link=${ls#*' -> '} 79 | case $link in #( 80 | /*) app_path=$link ;; #( 81 | *) app_path=$APP_HOME$link ;; 82 | esac 83 | done 84 | 85 | # This is normally unused 86 | # shellcheck disable=SC2034 87 | APP_BASE_NAME=${0##*/} 88 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) 89 | APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit 90 | 91 | # Use the maximum available, or set MAX_FD != -1 to use that value. 92 | MAX_FD=maximum 93 | 94 | warn () { 95 | echo "$*" 96 | } >&2 97 | 98 | die () { 99 | echo 100 | echo "$*" 101 | echo 102 | exit 1 103 | } >&2 104 | 105 | # OS specific support (must be 'true' or 'false'). 106 | cygwin=false 107 | msys=false 108 | darwin=false 109 | nonstop=false 110 | case "$( uname )" in #( 111 | CYGWIN* ) cygwin=true ;; #( 112 | Darwin* ) darwin=true ;; #( 113 | MSYS* | MINGW* ) msys=true ;; #( 114 | NONSTOP* ) nonstop=true ;; 115 | esac 116 | 117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 118 | 119 | 120 | # Determine the Java command to use to start the JVM. 121 | if [ -n "$JAVA_HOME" ] ; then 122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 123 | # IBM's JDK on AIX uses strange locations for the executables 124 | JAVACMD=$JAVA_HOME/jre/sh/java 125 | else 126 | JAVACMD=$JAVA_HOME/bin/java 127 | fi 128 | if [ ! -x "$JAVACMD" ] ; then 129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 130 | 131 | Please set the JAVA_HOME variable in your environment to match the 132 | location of your Java installation." 133 | fi 134 | else 135 | JAVACMD=java 136 | if ! command -v java >/dev/null 2>&1 137 | then 138 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 139 | 140 | Please set the JAVA_HOME variable in your environment to match the 141 | location of your Java installation." 142 | fi 143 | fi 144 | 145 | # Increase the maximum file descriptors if we can. 146 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then 147 | case $MAX_FD in #( 148 | max*) 149 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. 150 | # shellcheck disable=SC2039,SC3045 151 | MAX_FD=$( ulimit -H -n ) || 152 | warn "Could not query maximum file descriptor limit" 153 | esac 154 | case $MAX_FD in #( 155 | '' | soft) :;; #( 156 | *) 157 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. 158 | # shellcheck disable=SC2039,SC3045 159 | ulimit -n "$MAX_FD" || 160 | warn "Could not set maximum file descriptor limit to $MAX_FD" 161 | esac 162 | fi 163 | 164 | # Collect all arguments for the java command, stacking in reverse order: 165 | # * args from the command line 166 | # * the main class name 167 | # * -classpath 168 | # * -D...appname settings 169 | # * --module-path (only if needed) 170 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. 171 | 172 | # For Cygwin or MSYS, switch paths to Windows format before running java 173 | if "$cygwin" || "$msys" ; then 174 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) 175 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) 176 | 177 | JAVACMD=$( cygpath --unix "$JAVACMD" ) 178 | 179 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 180 | for arg do 181 | if 182 | case $arg in #( 183 | -*) false ;; # don't mess with options #( 184 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath 185 | [ -e "$t" ] ;; #( 186 | *) false ;; 187 | esac 188 | then 189 | arg=$( cygpath --path --ignore --mixed "$arg" ) 190 | fi 191 | # Roll the args list around exactly as many times as the number of 192 | # args, so each arg winds up back in the position where it started, but 193 | # possibly modified. 194 | # 195 | # NB: a `for` loop captures its iteration list before it begins, so 196 | # changing the positional parameters here affects neither the number of 197 | # iterations, nor the values presented in `arg`. 198 | shift # remove old arg 199 | set -- "$@" "$arg" # push replacement arg 200 | done 201 | fi 202 | 203 | 204 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 205 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 206 | 207 | # Collect all arguments for the java command: 208 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, 209 | # and any embedded shellness will be escaped. 210 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be 211 | # treated as '${Hostname}' itself on the command line. 212 | 213 | set -- \ 214 | "-Dorg.gradle.appname=$APP_BASE_NAME" \ 215 | -classpath "$CLASSPATH" \ 216 | org.gradle.wrapper.GradleWrapperMain \ 217 | "$@" 218 | 219 | # Stop when "xargs" is not available. 220 | if ! command -v xargs >/dev/null 2>&1 221 | then 222 | die "xargs is not available" 223 | fi 224 | 225 | # Use "xargs" to parse quoted args. 226 | # 227 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. 228 | # 229 | # In Bash we could simply go: 230 | # 231 | # readarray ARGS < <( xargs -n1 <<<"$var" ) && 232 | # set -- "${ARGS[@]}" "$@" 233 | # 234 | # but POSIX shell has neither arrays nor command substitution, so instead we 235 | # post-process each arg (as a line of input to sed) to backslash-escape any 236 | # character that might be a shell metacharacter, then use eval to reverse 237 | # that process (while maintaining the separation between arguments), and wrap 238 | # the whole thing up as a single "set" statement. 239 | # 240 | # This will of course break if any of these variables contains a newline or 241 | # an unmatched quote. 242 | # 243 | 244 | eval "set -- $( 245 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | 246 | xargs -n1 | 247 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | 248 | tr '\n' ' ' 249 | )" '"$@"' 250 | 251 | exec "$JAVACMD" "$@" 252 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Descope + React Native 2 | 3 | 4 | # Descope React Native Sample App with Native Flows 5 | 6 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 7 | 8 | Welcome to the **Descope React Native Sample App**, a demonstration of how to integrate Descope's powerful native flows into a React Native application. This project is bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli) and leverages the **Descope React Native SDK** to manage session authentication seamlessly. 9 | 10 | ## Features 11 | This sample app includes: 12 | A fully functional React Native application demonstrating multiple approaches to integrate Descope authentication: 13 | - **Option 1: Simple Flow:** A dedicated authentication screen navigated to from the main interface. This approach provides a clear and isolated experience for user sign-in/sign-up. 14 | - **Option 2: Modal Flow:** A modal overlay that presents the authentication interface. This method offers a focused, yet non-intrusive user experience by keeping the user within the same screen context. 15 | - **Option 3: Inline Flow:** The authentication form is embedded directly within the current screen. 16 | 17 | Each option showcases how to use the Descope `FlowView` component, manage sessions, and handle user transitions post-authentication — tailored to different UX preferences and app flows. 18 | 19 | The sample app also includes guidance on integrating **Magic link Authentication** with Descope, using Android **App-Links** and iOS **Universal Links**. 20 | 21 | ## Getting Started 22 | 23 | ### Prerequisites 24 | This sample app demonstrates setting up Descope Authentication on a **barebones React Native app**, **not using Expo**. It is designed for projects that use the native iOS and Android codebases directly, providing full control over platform-specific configuration. As such, this setup is ideal for developers who are building fully native React Native apps and need fine-grained access to Android and iOS features like App Links and Universal Links, which are not as easily configured in managed Expo environments. 25 | 26 | You will require: 27 | - **Node.js** and **npm** or **Yarn** 28 | - **Android Studio** or **Xcode** (for emulators/simulators) 29 | 30 | ### Running the App 31 | 32 | 1. Clone this repository: 33 | 34 | ```bash 35 | git clone https://github.com/descope-sample-apps/react-native-sample-app.git 36 | cd react-native-sample-app 37 | ``` 38 | 39 | 2. Install dependencies: 40 | 41 | The key libraries used in this app are: `@descope/react-native-sdk`, `@react-navigation/native`, `@react-navigation/native-stack`, `react-native-screens`, `react-native-safe-area-context`. All dependencies are listed in the `package.json` file. 42 | 43 | To install the required packages, simply run: 44 | ```bash 45 | npm install 46 | # OR 47 | yarn install 48 | ``` 49 | 50 | 3. (iOS only) Install CocoaPods: 51 | ```bash 52 | cd ios && pod install && cd .. 53 | # OR 54 | yarn ios 55 | ``` 56 | 57 | 4. Create a `.env` file in your root directory, and copy the contents from the example file `.env.example`. 58 | - Change `projectId` and `baseURL` in the `.env` file to match your Descope project. You can find your Descope Project ID [here](https://app.descope.com/settings/project) 59 | - Change `flowId` in the `.env` file to choose your appropriate Descope Flow. 60 | - Select a flow navigation option (simple, or modal, or inline) by uncommenting it's `AUTH_FLOW_TYPE` field. 61 | 62 | 5. Build and run the app for iOS/Android: 63 | #### For iOS 64 | 65 | ```bash 66 | npx react-native run-ios 67 | # OR 68 | yarn ios 69 | ``` 70 | 71 | #### For Android 72 | 73 | ```bash 74 | npx react-native run-android 75 | # OR 76 | yarn android 77 | ``` 78 | 79 | ### Notes on Session Management and Flows 80 | 81 | - The app uses the **`useSession` hook** for session management. Learn more in the [Descope React Native Documentation](https://docs.descope.com/build/guides/client_sdks/react-native/). 82 | 83 | ## Setup for Magic-Link Authentication 84 | **Magic Link authentication** is a passwordless authentication method where the user receives a time-limited, secure link (usually via email). Clicking the link automatically logs them into the app. 85 | 86 | Descope supports Magic Links out of the box in our authentication flows. Read our [Magic Links Documentation](https://docs.descope.com/auth-methods/magic-link) to learn more, and setup Magic Links in your Descope flows. 87 | 88 | In modern authentication, magic links are preferred, as there are no passwords to remember or steal — reduces phishing risk; and they provide a smoother UX, just one tap to log in. They are perfect for modern apps prioritizing ease of use and security. 89 | 90 | ### iOS setup: 91 | To enable Magic Link or OAuth redirection into your iOS app (via Universal Links), follow these steps: 92 | 93 | #### 1. Configure in XCode 94 | Even if you’re using another editor for development (like VS Code), Xcode is required for configuring iOS App Capabilities. 95 | - Open your project in Xcode, and select your target app from the left panel. 96 | - Navigate to Signing & Capabilities tab. 97 | - Ensure the following: 98 | - You’ve selected the correct Team. 99 | - Your Bundle Identifier is correct 100 | - Click the **+Capability** button and add Associated Domains. 101 | - Under “Domains”, add your domain in the format: `applinks:yourdomain.example.com`. This must match exactly with the domain hosting your Apple Site Association file. 102 | 103 | #### 2. Deploy apple-app-site-association file 104 | This JSON file must be deployed publicly at the exact path: `https://yourdomain.example.com/.well-known/apple-app-site-association`. (replace with your domain). 105 | 106 | File Format: 107 | ```json 108 | { 109 | "applinks": { 110 | "details": [ 111 | { 112 | "appID": ".", 113 | "paths": [ 114 | "*/auth/callback", 115 | "/login/*" 116 | ] 117 | } 118 | ], 119 | "comment": "Matches any URL with a path that ends with /auth/callback or starts with /login/*." 120 | }, 121 | "webcredentials": { 122 | "apps": [ 123 | "." 124 | ] 125 | } 126 | } 127 | ``` 128 | - `APPLE_TEAM_ID`: You can find this in your Apple Developer account. 129 | - `BUNDLE_IDENTIFIER`: Should match your app’s bundle ID (e.g., `com.descope.TrekTribe`). 130 | 131 | **Note**: It must be served with `Content-Type: application/json`, and must not have any file extension (i.e., not .json). 132 | 133 | #### 3. Ensure Redirect URLs match 134 | The links sent in Magic Link/OAuth emails must begin with: `https://yourdomain.example.com/login...` (or as per your configuration in the `apple-app-site-association` file), and your app must be configured to handle those paths via the Apple App Site Association. 135 | 136 | 137 | 138 | ### Android Setup: 139 | To set up Android App Links in a React Native app and enable features like Magic Link or OAuth deep linking, follow these steps carefully. This will ensure that clicking a login link from email or browser will open the app automatically if installed. 140 | Follow the steps: 141 | 1. Configure `AndroidManifest.xml` 142 | 2. Generating a Secure Release Keystore (for Production Use) 143 | 3. Generate Your App’s Signing Certificate Fingerprint 144 | 4. Deploy the `./well-known/assetlinks.json` to your domain 145 | 146 | #### 1. Configure `AndroidManifest.xml` 147 | In your app’s `android/app/src/main/AndroidManifest.xml`, add the following inside the block of your main launch activity: 148 | ```xml 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | ``` 160 | `"autoVerify=true"` triggers Android to automatically verify the link association during install, enabling true 'App Links' rather than generic deep links. 161 | 162 | This ensures that Android knows your app can handle links like `https://yourdomain.example.com/login`. 163 | 164 | #### 2. Generating a Secure Release Keystore (for Production Use) 165 | To securely sign your Android app for production (e.g., before publishing to the Play Store or distributing to users), you must generate a **private release keystore**. This keystore is used to prove the identity of your app and must be kept secure and never shared publicly. 166 | 167 | You can run the following command in your terminal from your project root (or a safe directory of your choice): 168 | ```bash 169 | keytool -genkeypair \ 170 | -v \ 171 | -keystore android/app/keystores/your-release-key.jks \ 172 | -alias your-key-alias \ 173 | -keyalg RSA \ 174 | -keysize 2048 \ 175 | -validity 10000 176 | ``` 177 | This will prompt you interactively for: 178 | - Keystore password 179 | - Distinguished Name (name, org, city, etc.) 180 | - Key password (can be same as keystore password) 181 | 182 | This keystore signs the app and becomes your app’s identity on users’ devices. 183 | 184 | **Note**: 185 | - If you’re working at a company, they may already have standard procedures or shared signing keys. In that case, check with your team before creating one manually. 186 | - **DO NOTs**: 187 | - Do NOT Commit this keystore file to version control. 188 | - Do NOT Share the key or passwords with others or store it unencrypted. 189 | - Do NOT Use the same key across multiple production apps unless required. 190 | 191 | 192 | #### 3. Generate Your App’s Signing Certificate Fingerprint 193 | You will need to upload an `assetlinks.json` file under the `./well-known` of your domain, for which you will require your App's Signing Certificate Fingerprint. 194 | 195 | For public user-facing apps, **you must sign the app with a release key**, not debug. 196 | 197 | To generate the SHA256 fingerprint of your release keystore: 198 | ```bash 199 | # Run this from the root of your project (or wherever your keystore file is located) 200 | keytool -list -v \ 201 | -keystore path/to/your-release-key.jks \ 202 | -alias your-key-alias \ 203 | -storepass your-store-password \ 204 | -keypass your-key-password 205 | ``` 206 | Look for the line: `SHA256: AB:CD:EF:...`. Copy that value (with colons) for use in `assetlinks.json`. 207 | **Note**: It is safe to publish the SHA256 fingerprint publicly—it’s only used for verification, not authentication. 208 | 209 | #### 4. Deploy the `./well-known/assetlinks.json` to your domain 210 | Create a JSON file at this path on your domain: `https://yourdomain.example.com/.well-known/assetlinks.json` 211 | The file format is: 212 | ```json 213 | [ 214 | { 215 | "relation": ["delegate_permission/common.handle_all_urls"], 216 | "target": { 217 | "namespace": "android_app", 218 | "package_name": "com.company.MyAppPackageName", // your package name 219 | "sha256_cert_fingerprints": [ 220 | "AB:CD:EF:12:34:56:78:90:..." // Your actual SHA256 fingerprint 221 | ] 222 | } 223 | } 224 | ] 225 | ``` 226 | This file allows your domain to delegate URL handling to your app securely. 227 | 228 | **Additional Notes for Android App Links**: 229 | - Use the same package_name (`applicationId`) as defined in your `android/app/build.gradle`. 230 | - Use a real domain with HTTPS and a valid SSL certificate. 231 | - Android does domain verification the first time the app is installed — so if you change the domain or certificate, you must reinstall the app. 232 | 233 | ## Learn More 234 | 235 | To dive deeper, check out: 236 | 237 | - [Descope Documentation](https://docs.descope.com/getting-started/react-native) – Guides, API references, and more. 238 | - [React Native SDK](https://github.com/descope/descope-react-native) – Official React Native documentation. 239 | 240 | ## License 241 | 242 | This sample app is licensed under the [MIT License](https://opensource.org/licenses/MIT). -------------------------------------------------------------------------------- /ios/ReactNativeSampleApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 11 | 13B96EF8022D159F7F0AA204 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; }; 12 | 761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; }; 13 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; 14 | F2BCB79B40FBC559C9746CCC /* libPods-ReactNativeSampleApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7C8B6D66F8FEA02DB7BA85 /* libPods-ReactNativeSampleApp.a */; }; 15 | /* End PBXBuildFile section */ 16 | 17 | /* Begin PBXFileReference section */ 18 | 13B07F961A680F5B00A75B9A /* ReactNativeSampleApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ReactNativeSampleApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 19 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ReactNativeSampleApp/Images.xcassets; sourceTree = ""; }; 20 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ReactNativeSampleApp/Info.plist; sourceTree = ""; }; 21 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = ReactNativeSampleApp/PrivacyInfo.xcprivacy; sourceTree = ""; }; 22 | 1C626F8343C48269C995D7B7 /* Pods-ReactNativeSampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSampleApp.debug.xcconfig"; path = "Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp.debug.xcconfig"; sourceTree = ""; }; 23 | 4D7C8B6D66F8FEA02DB7BA85 /* libPods-ReactNativeSampleApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ReactNativeSampleApp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 24 | 761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ReactNativeSampleApp/AppDelegate.swift; sourceTree = ""; }; 25 | 8011F1D62DF8C0E8009AAA58 /* ReactNativeSampleApp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = ReactNativeSampleApp.entitlements; path = ReactNativeSampleApp/ReactNativeSampleApp.entitlements; sourceTree = ""; }; 26 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = ReactNativeSampleApp/LaunchScreen.storyboard; sourceTree = ""; }; 27 | D7DE1A0AB6CE9C8446583BBA /* Pods-ReactNativeSampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ReactNativeSampleApp.release.xcconfig"; path = "Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp.release.xcconfig"; sourceTree = ""; }; 28 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 29 | /* End PBXFileReference section */ 30 | 31 | /* Begin PBXFrameworksBuildPhase section */ 32 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { 33 | isa = PBXFrameworksBuildPhase; 34 | buildActionMask = 2147483647; 35 | files = ( 36 | F2BCB79B40FBC559C9746CCC /* libPods-ReactNativeSampleApp.a in Frameworks */, 37 | ); 38 | runOnlyForDeploymentPostprocessing = 0; 39 | }; 40 | /* End PBXFrameworksBuildPhase section */ 41 | 42 | /* Begin PBXGroup section */ 43 | 13B07FAE1A68108700A75B9A /* ReactNativeSampleApp */ = { 44 | isa = PBXGroup; 45 | children = ( 46 | 8011F1D62DF8C0E8009AAA58 /* ReactNativeSampleApp.entitlements */, 47 | 13B07FB51A68108700A75B9A /* Images.xcassets */, 48 | 761780EC2CA45674006654EE /* AppDelegate.swift */, 49 | 13B07FB61A68108700A75B9A /* Info.plist */, 50 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 51 | 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, 52 | ); 53 | name = ReactNativeSampleApp; 54 | sourceTree = ""; 55 | }; 56 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 57 | isa = PBXGroup; 58 | children = ( 59 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */, 60 | 4D7C8B6D66F8FEA02DB7BA85 /* libPods-ReactNativeSampleApp.a */, 61 | ); 62 | name = Frameworks; 63 | sourceTree = ""; 64 | }; 65 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = { 66 | isa = PBXGroup; 67 | children = ( 68 | ); 69 | name = Libraries; 70 | sourceTree = ""; 71 | }; 72 | 83CBB9F61A601CBA00E9B192 = { 73 | isa = PBXGroup; 74 | children = ( 75 | 13B07FAE1A68108700A75B9A /* ReactNativeSampleApp */, 76 | 832341AE1AAA6A7D00B99B32 /* Libraries */, 77 | 83CBBA001A601CBA00E9B192 /* Products */, 78 | 2D16E6871FA4F8E400B85C8A /* Frameworks */, 79 | BBD78D7AC51CEA395F1C20DB /* Pods */, 80 | ); 81 | indentWidth = 2; 82 | sourceTree = ""; 83 | tabWidth = 2; 84 | usesTabs = 0; 85 | }; 86 | 83CBBA001A601CBA00E9B192 /* Products */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 13B07F961A680F5B00A75B9A /* ReactNativeSampleApp.app */, 90 | ); 91 | name = Products; 92 | sourceTree = ""; 93 | }; 94 | BBD78D7AC51CEA395F1C20DB /* Pods */ = { 95 | isa = PBXGroup; 96 | children = ( 97 | 1C626F8343C48269C995D7B7 /* Pods-ReactNativeSampleApp.debug.xcconfig */, 98 | D7DE1A0AB6CE9C8446583BBA /* Pods-ReactNativeSampleApp.release.xcconfig */, 99 | ); 100 | path = Pods; 101 | sourceTree = ""; 102 | }; 103 | /* End PBXGroup section */ 104 | 105 | /* Begin PBXNativeTarget section */ 106 | 13B07F861A680F5B00A75B9A /* ReactNativeSampleApp */ = { 107 | isa = PBXNativeTarget; 108 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSampleApp" */; 109 | buildPhases = ( 110 | B8C41B5CD9128FDF114E1860 /* [CP] Check Pods Manifest.lock */, 111 | 13B07F871A680F5B00A75B9A /* Sources */, 112 | 13B07F8C1A680F5B00A75B9A /* Frameworks */, 113 | 13B07F8E1A680F5B00A75B9A /* Resources */, 114 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 115 | 8F3C98A5B66AD5FFD452D745 /* [CP] Embed Pods Frameworks */, 116 | DE5057A90C550020610518FC /* [CP] Copy Pods Resources */, 117 | ); 118 | buildRules = ( 119 | ); 120 | dependencies = ( 121 | ); 122 | name = ReactNativeSampleApp; 123 | productName = ReactNativeSampleApp; 124 | productReference = 13B07F961A680F5B00A75B9A /* ReactNativeSampleApp.app */; 125 | productType = "com.apple.product-type.application"; 126 | }; 127 | /* End PBXNativeTarget section */ 128 | 129 | /* Begin PBXProject section */ 130 | 83CBB9F71A601CBA00E9B192 /* Project object */ = { 131 | isa = PBXProject; 132 | attributes = { 133 | LastUpgradeCheck = 1210; 134 | TargetAttributes = { 135 | 13B07F861A680F5B00A75B9A = { 136 | LastSwiftMigration = 1120; 137 | }; 138 | }; 139 | }; 140 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeSampleApp" */; 141 | compatibilityVersion = "Xcode 12.0"; 142 | developmentRegion = en; 143 | hasScannedForEncodings = 0; 144 | knownRegions = ( 145 | en, 146 | Base, 147 | ); 148 | mainGroup = 83CBB9F61A601CBA00E9B192; 149 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; 150 | projectDirPath = ""; 151 | projectRoot = ""; 152 | targets = ( 153 | 13B07F861A680F5B00A75B9A /* ReactNativeSampleApp */, 154 | ); 155 | }; 156 | /* End PBXProject section */ 157 | 158 | /* Begin PBXResourcesBuildPhase section */ 159 | 13B07F8E1A680F5B00A75B9A /* Resources */ = { 160 | isa = PBXResourcesBuildPhase; 161 | buildActionMask = 2147483647; 162 | files = ( 163 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, 164 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 165 | 13B96EF8022D159F7F0AA204 /* PrivacyInfo.xcprivacy in Resources */, 166 | ); 167 | runOnlyForDeploymentPostprocessing = 0; 168 | }; 169 | /* End PBXResourcesBuildPhase section */ 170 | 171 | /* Begin PBXShellScriptBuildPhase section */ 172 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { 173 | isa = PBXShellScriptBuildPhase; 174 | buildActionMask = 2147483647; 175 | files = ( 176 | ); 177 | inputPaths = ( 178 | "$(SRCROOT)/.xcode.env.local", 179 | "$(SRCROOT)/.xcode.env", 180 | ); 181 | name = "Bundle React Native code and images"; 182 | outputPaths = ( 183 | ); 184 | runOnlyForDeploymentPostprocessing = 0; 185 | shellPath = /bin/sh; 186 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; 187 | }; 188 | 8F3C98A5B66AD5FFD452D745 /* [CP] Embed Pods Frameworks */ = { 189 | isa = PBXShellScriptBuildPhase; 190 | buildActionMask = 2147483647; 191 | files = ( 192 | ); 193 | inputFileListPaths = ( 194 | "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", 195 | ); 196 | name = "[CP] Embed Pods Frameworks"; 197 | outputFileListPaths = ( 198 | "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", 199 | ); 200 | runOnlyForDeploymentPostprocessing = 0; 201 | shellPath = /bin/sh; 202 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-frameworks.sh\"\n"; 203 | showEnvVarsInLog = 0; 204 | }; 205 | B8C41B5CD9128FDF114E1860 /* [CP] Check Pods Manifest.lock */ = { 206 | isa = PBXShellScriptBuildPhase; 207 | buildActionMask = 2147483647; 208 | files = ( 209 | ); 210 | inputFileListPaths = ( 211 | ); 212 | inputPaths = ( 213 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 214 | "${PODS_ROOT}/Manifest.lock", 215 | ); 216 | name = "[CP] Check Pods Manifest.lock"; 217 | outputFileListPaths = ( 218 | ); 219 | outputPaths = ( 220 | "$(DERIVED_FILE_DIR)/Pods-ReactNativeSampleApp-checkManifestLockResult.txt", 221 | ); 222 | runOnlyForDeploymentPostprocessing = 0; 223 | shellPath = /bin/sh; 224 | 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"; 225 | showEnvVarsInLog = 0; 226 | }; 227 | DE5057A90C550020610518FC /* [CP] Copy Pods Resources */ = { 228 | isa = PBXShellScriptBuildPhase; 229 | buildActionMask = 2147483647; 230 | files = ( 231 | ); 232 | inputFileListPaths = ( 233 | "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-resources-${CONFIGURATION}-input-files.xcfilelist", 234 | ); 235 | name = "[CP] Copy Pods Resources"; 236 | outputFileListPaths = ( 237 | "${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-resources-${CONFIGURATION}-output-files.xcfilelist", 238 | ); 239 | runOnlyForDeploymentPostprocessing = 0; 240 | shellPath = /bin/sh; 241 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ReactNativeSampleApp/Pods-ReactNativeSampleApp-resources.sh\"\n"; 242 | showEnvVarsInLog = 0; 243 | }; 244 | /* End PBXShellScriptBuildPhase section */ 245 | 246 | /* Begin PBXSourcesBuildPhase section */ 247 | 13B07F871A680F5B00A75B9A /* Sources */ = { 248 | isa = PBXSourcesBuildPhase; 249 | buildActionMask = 2147483647; 250 | files = ( 251 | 761780ED2CA45674006654EE /* AppDelegate.swift in Sources */, 252 | ); 253 | runOnlyForDeploymentPostprocessing = 0; 254 | }; 255 | /* End PBXSourcesBuildPhase section */ 256 | 257 | /* Begin XCBuildConfiguration section */ 258 | 13B07F941A680F5B00A75B9A /* Debug */ = { 259 | isa = XCBuildConfiguration; 260 | baseConfigurationReference = 1C626F8343C48269C995D7B7 /* Pods-ReactNativeSampleApp.debug.xcconfig */; 261 | buildSettings = { 262 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 263 | CLANG_ENABLE_MODULES = YES; 264 | CODE_SIGN_ENTITLEMENTS = ReactNativeSampleApp/ReactNativeSampleApp.entitlements; 265 | CURRENT_PROJECT_VERSION = 1; 266 | DEVELOPMENT_TEAM = 6DHGP65953; 267 | ENABLE_BITCODE = NO; 268 | INFOPLIST_FILE = ReactNativeSampleApp/Info.plist; 269 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 270 | LD_RUNPATH_SEARCH_PATHS = ( 271 | "$(inherited)", 272 | "@executable_path/Frameworks", 273 | ); 274 | MARKETING_VERSION = 1.0; 275 | OTHER_LDFLAGS = ( 276 | "$(inherited)", 277 | "-ObjC", 278 | "-lc++", 279 | ); 280 | PRODUCT_BUNDLE_IDENTIFIER = com.descope.TrekTribe; 281 | PRODUCT_NAME = ReactNativeSampleApp; 282 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 283 | SWIFT_VERSION = 5.0; 284 | VERSIONING_SYSTEM = "apple-generic"; 285 | }; 286 | name = Debug; 287 | }; 288 | 13B07F951A680F5B00A75B9A /* Release */ = { 289 | isa = XCBuildConfiguration; 290 | baseConfigurationReference = D7DE1A0AB6CE9C8446583BBA /* Pods-ReactNativeSampleApp.release.xcconfig */; 291 | buildSettings = { 292 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 293 | CLANG_ENABLE_MODULES = YES; 294 | CODE_SIGN_ENTITLEMENTS = ReactNativeSampleApp/ReactNativeSampleApp.entitlements; 295 | CURRENT_PROJECT_VERSION = 1; 296 | DEVELOPMENT_TEAM = 6DHGP65953; 297 | INFOPLIST_FILE = ReactNativeSampleApp/Info.plist; 298 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 299 | LD_RUNPATH_SEARCH_PATHS = ( 300 | "$(inherited)", 301 | "@executable_path/Frameworks", 302 | ); 303 | MARKETING_VERSION = 1.0; 304 | OTHER_LDFLAGS = ( 305 | "$(inherited)", 306 | "-ObjC", 307 | "-lc++", 308 | ); 309 | PRODUCT_BUNDLE_IDENTIFIER = com.descope.TrekTribe; 310 | PRODUCT_NAME = ReactNativeSampleApp; 311 | SWIFT_VERSION = 5.0; 312 | VERSIONING_SYSTEM = "apple-generic"; 313 | }; 314 | name = Release; 315 | }; 316 | 83CBBA201A601CBA00E9B192 /* Debug */ = { 317 | isa = XCBuildConfiguration; 318 | buildSettings = { 319 | ALWAYS_SEARCH_USER_PATHS = NO; 320 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 321 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 322 | CLANG_CXX_LIBRARY = "libc++"; 323 | CLANG_ENABLE_MODULES = YES; 324 | CLANG_ENABLE_OBJC_ARC = YES; 325 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 326 | CLANG_WARN_BOOL_CONVERSION = YES; 327 | CLANG_WARN_COMMA = YES; 328 | CLANG_WARN_CONSTANT_CONVERSION = YES; 329 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 330 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 331 | CLANG_WARN_EMPTY_BODY = YES; 332 | CLANG_WARN_ENUM_CONVERSION = YES; 333 | CLANG_WARN_INFINITE_RECURSION = YES; 334 | CLANG_WARN_INT_CONVERSION = YES; 335 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 336 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 337 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 338 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 339 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 340 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 341 | CLANG_WARN_STRICT_PROTOTYPES = YES; 342 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 343 | CLANG_WARN_UNREACHABLE_CODE = YES; 344 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 345 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 346 | COPY_PHASE_STRIP = NO; 347 | ENABLE_STRICT_OBJC_MSGSEND = YES; 348 | ENABLE_TESTABILITY = YES; 349 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 350 | GCC_C_LANGUAGE_STANDARD = gnu99; 351 | GCC_DYNAMIC_NO_PIC = NO; 352 | GCC_NO_COMMON_BLOCKS = YES; 353 | GCC_OPTIMIZATION_LEVEL = 0; 354 | GCC_PREPROCESSOR_DEFINITIONS = ( 355 | "DEBUG=1", 356 | "$(inherited)", 357 | ); 358 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 359 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 360 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 361 | GCC_WARN_UNDECLARED_SELECTOR = YES; 362 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 363 | GCC_WARN_UNUSED_FUNCTION = YES; 364 | GCC_WARN_UNUSED_VARIABLE = YES; 365 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 366 | LD_RUNPATH_SEARCH_PATHS = ( 367 | /usr/lib/swift, 368 | "$(inherited)", 369 | ); 370 | LIBRARY_SEARCH_PATHS = ( 371 | "\"$(SDKROOT)/usr/lib/swift\"", 372 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 373 | "\"$(inherited)\"", 374 | ); 375 | MTL_ENABLE_DEBUG_INFO = YES; 376 | ONLY_ACTIVE_ARCH = YES; 377 | OTHER_CPLUSPLUSFLAGS = ( 378 | "$(OTHER_CFLAGS)", 379 | "-DFOLLY_NO_CONFIG", 380 | "-DFOLLY_MOBILE=1", 381 | "-DFOLLY_USE_LIBCPP=1", 382 | "-DFOLLY_CFG_NO_COROUTINES=1", 383 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 384 | ); 385 | OTHER_LDFLAGS = ( 386 | "$(inherited)", 387 | " ", 388 | ); 389 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 390 | SDKROOT = iphoneos; 391 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; 392 | USE_HERMES = true; 393 | }; 394 | name = Debug; 395 | }; 396 | 83CBBA211A601CBA00E9B192 /* Release */ = { 397 | isa = XCBuildConfiguration; 398 | buildSettings = { 399 | ALWAYS_SEARCH_USER_PATHS = NO; 400 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 401 | CLANG_CXX_LANGUAGE_STANDARD = "c++20"; 402 | CLANG_CXX_LIBRARY = "libc++"; 403 | CLANG_ENABLE_MODULES = YES; 404 | CLANG_ENABLE_OBJC_ARC = YES; 405 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 406 | CLANG_WARN_BOOL_CONVERSION = YES; 407 | CLANG_WARN_COMMA = YES; 408 | CLANG_WARN_CONSTANT_CONVERSION = YES; 409 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 410 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 411 | CLANG_WARN_EMPTY_BODY = YES; 412 | CLANG_WARN_ENUM_CONVERSION = YES; 413 | CLANG_WARN_INFINITE_RECURSION = YES; 414 | CLANG_WARN_INT_CONVERSION = YES; 415 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 416 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 417 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 418 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 419 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 420 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 421 | CLANG_WARN_STRICT_PROTOTYPES = YES; 422 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 423 | CLANG_WARN_UNREACHABLE_CODE = YES; 424 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 425 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 426 | COPY_PHASE_STRIP = YES; 427 | ENABLE_NS_ASSERTIONS = NO; 428 | ENABLE_STRICT_OBJC_MSGSEND = YES; 429 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; 430 | GCC_C_LANGUAGE_STANDARD = gnu99; 431 | GCC_NO_COMMON_BLOCKS = YES; 432 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 433 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 434 | GCC_WARN_UNDECLARED_SELECTOR = YES; 435 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 436 | GCC_WARN_UNUSED_FUNCTION = YES; 437 | GCC_WARN_UNUSED_VARIABLE = YES; 438 | IPHONEOS_DEPLOYMENT_TARGET = 15.1; 439 | LD_RUNPATH_SEARCH_PATHS = ( 440 | /usr/lib/swift, 441 | "$(inherited)", 442 | ); 443 | LIBRARY_SEARCH_PATHS = ( 444 | "\"$(SDKROOT)/usr/lib/swift\"", 445 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", 446 | "\"$(inherited)\"", 447 | ); 448 | MTL_ENABLE_DEBUG_INFO = NO; 449 | OTHER_CPLUSPLUSFLAGS = ( 450 | "$(OTHER_CFLAGS)", 451 | "-DFOLLY_NO_CONFIG", 452 | "-DFOLLY_MOBILE=1", 453 | "-DFOLLY_USE_LIBCPP=1", 454 | "-DFOLLY_CFG_NO_COROUTINES=1", 455 | "-DFOLLY_HAVE_CLOCK_GETTIME=1", 456 | ); 457 | OTHER_LDFLAGS = ( 458 | "$(inherited)", 459 | " ", 460 | ); 461 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; 462 | SDKROOT = iphoneos; 463 | USE_HERMES = true; 464 | VALIDATE_PRODUCT = YES; 465 | }; 466 | name = Release; 467 | }; 468 | /* End XCBuildConfiguration section */ 469 | 470 | /* Begin XCConfigurationList section */ 471 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ReactNativeSampleApp" */ = { 472 | isa = XCConfigurationList; 473 | buildConfigurations = ( 474 | 13B07F941A680F5B00A75B9A /* Debug */, 475 | 13B07F951A680F5B00A75B9A /* Release */, 476 | ); 477 | defaultConfigurationIsVisible = 0; 478 | defaultConfigurationName = Release; 479 | }; 480 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ReactNativeSampleApp" */ = { 481 | isa = XCConfigurationList; 482 | buildConfigurations = ( 483 | 83CBBA201A601CBA00E9B192 /* Debug */, 484 | 83CBBA211A601CBA00E9B192 /* Release */, 485 | ); 486 | defaultConfigurationIsVisible = 0; 487 | defaultConfigurationName = Release; 488 | }; 489 | /* End XCConfigurationList section */ 490 | }; 491 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; 492 | } 493 | -------------------------------------------------------------------------------- /ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - boost (1.84.0) 3 | - descope-react-native (0.8.0): 4 | - DoubleConversion 5 | - glog 6 | - hermes-engine 7 | - RCT-Folly (= 2024.11.18.00) 8 | - RCTRequired 9 | - RCTTypeSafety 10 | - React-Core 11 | - React-debug 12 | - React-Fabric 13 | - React-featureflags 14 | - React-graphics 15 | - React-hermes 16 | - React-ImageManager 17 | - React-jsi 18 | - React-NativeModulesApple 19 | - React-RCTFabric 20 | - React-renderercss 21 | - React-rendererdebug 22 | - React-utils 23 | - ReactCodegen 24 | - ReactCommon/turbomodule/bridging 25 | - ReactCommon/turbomodule/core 26 | - Yoga 27 | - DoubleConversion (1.1.6) 28 | - fast_float (6.1.4) 29 | - FBLazyVector (0.79.3) 30 | - fmt (11.0.2) 31 | - glog (0.3.5) 32 | - hermes-engine (0.79.3): 33 | - hermes-engine/Pre-built (= 0.79.3) 34 | - hermes-engine/Pre-built (0.79.3) 35 | - RCT-Folly (2024.11.18.00): 36 | - boost 37 | - DoubleConversion 38 | - fast_float (= 6.1.4) 39 | - fmt (= 11.0.2) 40 | - glog 41 | - RCT-Folly/Default (= 2024.11.18.00) 42 | - RCT-Folly/Default (2024.11.18.00): 43 | - boost 44 | - DoubleConversion 45 | - fast_float (= 6.1.4) 46 | - fmt (= 11.0.2) 47 | - glog 48 | - RCT-Folly/Fabric (2024.11.18.00): 49 | - boost 50 | - DoubleConversion 51 | - fast_float (= 6.1.4) 52 | - fmt (= 11.0.2) 53 | - glog 54 | - RCTDeprecation (0.79.3) 55 | - RCTRequired (0.79.3) 56 | - RCTTypeSafety (0.79.3): 57 | - FBLazyVector (= 0.79.3) 58 | - RCTRequired (= 0.79.3) 59 | - React-Core (= 0.79.3) 60 | - React (0.79.3): 61 | - React-Core (= 0.79.3) 62 | - React-Core/DevSupport (= 0.79.3) 63 | - React-Core/RCTWebSocket (= 0.79.3) 64 | - React-RCTActionSheet (= 0.79.3) 65 | - React-RCTAnimation (= 0.79.3) 66 | - React-RCTBlob (= 0.79.3) 67 | - React-RCTImage (= 0.79.3) 68 | - React-RCTLinking (= 0.79.3) 69 | - React-RCTNetwork (= 0.79.3) 70 | - React-RCTSettings (= 0.79.3) 71 | - React-RCTText (= 0.79.3) 72 | - React-RCTVibration (= 0.79.3) 73 | - React-callinvoker (0.79.3) 74 | - React-Core (0.79.3): 75 | - glog 76 | - hermes-engine 77 | - RCT-Folly (= 2024.11.18.00) 78 | - RCTDeprecation 79 | - React-Core/Default (= 0.79.3) 80 | - React-cxxreact 81 | - React-featureflags 82 | - React-hermes 83 | - React-jsi 84 | - React-jsiexecutor 85 | - React-jsinspector 86 | - React-jsitooling 87 | - React-perflogger 88 | - React-runtimescheduler 89 | - React-utils 90 | - SocketRocket (= 0.7.1) 91 | - Yoga 92 | - React-Core/CoreModulesHeaders (0.79.3): 93 | - glog 94 | - hermes-engine 95 | - RCT-Folly (= 2024.11.18.00) 96 | - RCTDeprecation 97 | - React-Core/Default 98 | - React-cxxreact 99 | - React-featureflags 100 | - React-hermes 101 | - React-jsi 102 | - React-jsiexecutor 103 | - React-jsinspector 104 | - React-jsitooling 105 | - React-perflogger 106 | - React-runtimescheduler 107 | - React-utils 108 | - SocketRocket (= 0.7.1) 109 | - Yoga 110 | - React-Core/Default (0.79.3): 111 | - glog 112 | - hermes-engine 113 | - RCT-Folly (= 2024.11.18.00) 114 | - RCTDeprecation 115 | - React-cxxreact 116 | - React-featureflags 117 | - React-hermes 118 | - React-jsi 119 | - React-jsiexecutor 120 | - React-jsinspector 121 | - React-jsitooling 122 | - React-perflogger 123 | - React-runtimescheduler 124 | - React-utils 125 | - SocketRocket (= 0.7.1) 126 | - Yoga 127 | - React-Core/DevSupport (0.79.3): 128 | - glog 129 | - hermes-engine 130 | - RCT-Folly (= 2024.11.18.00) 131 | - RCTDeprecation 132 | - React-Core/Default (= 0.79.3) 133 | - React-Core/RCTWebSocket (= 0.79.3) 134 | - React-cxxreact 135 | - React-featureflags 136 | - React-hermes 137 | - React-jsi 138 | - React-jsiexecutor 139 | - React-jsinspector 140 | - React-jsitooling 141 | - React-perflogger 142 | - React-runtimescheduler 143 | - React-utils 144 | - SocketRocket (= 0.7.1) 145 | - Yoga 146 | - React-Core/RCTActionSheetHeaders (0.79.3): 147 | - glog 148 | - hermes-engine 149 | - RCT-Folly (= 2024.11.18.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-jsitooling 159 | - React-perflogger 160 | - React-runtimescheduler 161 | - React-utils 162 | - SocketRocket (= 0.7.1) 163 | - Yoga 164 | - React-Core/RCTAnimationHeaders (0.79.3): 165 | - glog 166 | - hermes-engine 167 | - RCT-Folly (= 2024.11.18.00) 168 | - RCTDeprecation 169 | - React-Core/Default 170 | - React-cxxreact 171 | - React-featureflags 172 | - React-hermes 173 | - React-jsi 174 | - React-jsiexecutor 175 | - React-jsinspector 176 | - React-jsitooling 177 | - React-perflogger 178 | - React-runtimescheduler 179 | - React-utils 180 | - SocketRocket (= 0.7.1) 181 | - Yoga 182 | - React-Core/RCTBlobHeaders (0.79.3): 183 | - glog 184 | - hermes-engine 185 | - RCT-Folly (= 2024.11.18.00) 186 | - RCTDeprecation 187 | - React-Core/Default 188 | - React-cxxreact 189 | - React-featureflags 190 | - React-hermes 191 | - React-jsi 192 | - React-jsiexecutor 193 | - React-jsinspector 194 | - React-jsitooling 195 | - React-perflogger 196 | - React-runtimescheduler 197 | - React-utils 198 | - SocketRocket (= 0.7.1) 199 | - Yoga 200 | - React-Core/RCTImageHeaders (0.79.3): 201 | - glog 202 | - hermes-engine 203 | - RCT-Folly (= 2024.11.18.00) 204 | - RCTDeprecation 205 | - React-Core/Default 206 | - React-cxxreact 207 | - React-featureflags 208 | - React-hermes 209 | - React-jsi 210 | - React-jsiexecutor 211 | - React-jsinspector 212 | - React-jsitooling 213 | - React-perflogger 214 | - React-runtimescheduler 215 | - React-utils 216 | - SocketRocket (= 0.7.1) 217 | - Yoga 218 | - React-Core/RCTLinkingHeaders (0.79.3): 219 | - glog 220 | - hermes-engine 221 | - RCT-Folly (= 2024.11.18.00) 222 | - RCTDeprecation 223 | - React-Core/Default 224 | - React-cxxreact 225 | - React-featureflags 226 | - React-hermes 227 | - React-jsi 228 | - React-jsiexecutor 229 | - React-jsinspector 230 | - React-jsitooling 231 | - React-perflogger 232 | - React-runtimescheduler 233 | - React-utils 234 | - SocketRocket (= 0.7.1) 235 | - Yoga 236 | - React-Core/RCTNetworkHeaders (0.79.3): 237 | - glog 238 | - hermes-engine 239 | - RCT-Folly (= 2024.11.18.00) 240 | - RCTDeprecation 241 | - React-Core/Default 242 | - React-cxxreact 243 | - React-featureflags 244 | - React-hermes 245 | - React-jsi 246 | - React-jsiexecutor 247 | - React-jsinspector 248 | - React-jsitooling 249 | - React-perflogger 250 | - React-runtimescheduler 251 | - React-utils 252 | - SocketRocket (= 0.7.1) 253 | - Yoga 254 | - React-Core/RCTSettingsHeaders (0.79.3): 255 | - glog 256 | - hermes-engine 257 | - RCT-Folly (= 2024.11.18.00) 258 | - RCTDeprecation 259 | - React-Core/Default 260 | - React-cxxreact 261 | - React-featureflags 262 | - React-hermes 263 | - React-jsi 264 | - React-jsiexecutor 265 | - React-jsinspector 266 | - React-jsitooling 267 | - React-perflogger 268 | - React-runtimescheduler 269 | - React-utils 270 | - SocketRocket (= 0.7.1) 271 | - Yoga 272 | - React-Core/RCTTextHeaders (0.79.3): 273 | - glog 274 | - hermes-engine 275 | - RCT-Folly (= 2024.11.18.00) 276 | - RCTDeprecation 277 | - React-Core/Default 278 | - React-cxxreact 279 | - React-featureflags 280 | - React-hermes 281 | - React-jsi 282 | - React-jsiexecutor 283 | - React-jsinspector 284 | - React-jsitooling 285 | - React-perflogger 286 | - React-runtimescheduler 287 | - React-utils 288 | - SocketRocket (= 0.7.1) 289 | - Yoga 290 | - React-Core/RCTVibrationHeaders (0.79.3): 291 | - glog 292 | - hermes-engine 293 | - RCT-Folly (= 2024.11.18.00) 294 | - RCTDeprecation 295 | - React-Core/Default 296 | - React-cxxreact 297 | - React-featureflags 298 | - React-hermes 299 | - React-jsi 300 | - React-jsiexecutor 301 | - React-jsinspector 302 | - React-jsitooling 303 | - React-perflogger 304 | - React-runtimescheduler 305 | - React-utils 306 | - SocketRocket (= 0.7.1) 307 | - Yoga 308 | - React-Core/RCTWebSocket (0.79.3): 309 | - glog 310 | - hermes-engine 311 | - RCT-Folly (= 2024.11.18.00) 312 | - RCTDeprecation 313 | - React-Core/Default (= 0.79.3) 314 | - React-cxxreact 315 | - React-featureflags 316 | - React-hermes 317 | - React-jsi 318 | - React-jsiexecutor 319 | - React-jsinspector 320 | - React-jsitooling 321 | - React-perflogger 322 | - React-runtimescheduler 323 | - React-utils 324 | - SocketRocket (= 0.7.1) 325 | - Yoga 326 | - React-CoreModules (0.79.3): 327 | - DoubleConversion 328 | - fast_float (= 6.1.4) 329 | - fmt (= 11.0.2) 330 | - RCT-Folly (= 2024.11.18.00) 331 | - RCTTypeSafety (= 0.79.3) 332 | - React-Core/CoreModulesHeaders (= 0.79.3) 333 | - React-jsi (= 0.79.3) 334 | - React-jsinspector 335 | - React-jsinspectortracing 336 | - React-NativeModulesApple 337 | - React-RCTBlob 338 | - React-RCTFBReactNativeSpec 339 | - React-RCTImage (= 0.79.3) 340 | - ReactCommon 341 | - SocketRocket (= 0.7.1) 342 | - React-cxxreact (0.79.3): 343 | - boost 344 | - DoubleConversion 345 | - fast_float (= 6.1.4) 346 | - fmt (= 11.0.2) 347 | - glog 348 | - hermes-engine 349 | - RCT-Folly (= 2024.11.18.00) 350 | - React-callinvoker (= 0.79.3) 351 | - React-debug (= 0.79.3) 352 | - React-jsi (= 0.79.3) 353 | - React-jsinspector 354 | - React-jsinspectortracing 355 | - React-logger (= 0.79.3) 356 | - React-perflogger (= 0.79.3) 357 | - React-runtimeexecutor (= 0.79.3) 358 | - React-timing (= 0.79.3) 359 | - React-debug (0.79.3) 360 | - React-defaultsnativemodule (0.79.3): 361 | - hermes-engine 362 | - RCT-Folly 363 | - React-domnativemodule 364 | - React-featureflagsnativemodule 365 | - React-hermes 366 | - React-idlecallbacksnativemodule 367 | - React-jsi 368 | - React-jsiexecutor 369 | - React-microtasksnativemodule 370 | - React-RCTFBReactNativeSpec 371 | - React-domnativemodule (0.79.3): 372 | - hermes-engine 373 | - RCT-Folly 374 | - React-Fabric 375 | - React-FabricComponents 376 | - React-graphics 377 | - React-hermes 378 | - React-jsi 379 | - React-jsiexecutor 380 | - React-RCTFBReactNativeSpec 381 | - ReactCommon/turbomodule/core 382 | - Yoga 383 | - React-Fabric (0.79.3): 384 | - DoubleConversion 385 | - fast_float (= 6.1.4) 386 | - fmt (= 11.0.2) 387 | - glog 388 | - hermes-engine 389 | - RCT-Folly/Fabric (= 2024.11.18.00) 390 | - RCTRequired 391 | - RCTTypeSafety 392 | - React-Core 393 | - React-cxxreact 394 | - React-debug 395 | - React-Fabric/animations (= 0.79.3) 396 | - React-Fabric/attributedstring (= 0.79.3) 397 | - React-Fabric/componentregistry (= 0.79.3) 398 | - React-Fabric/componentregistrynative (= 0.79.3) 399 | - React-Fabric/components (= 0.79.3) 400 | - React-Fabric/consistency (= 0.79.3) 401 | - React-Fabric/core (= 0.79.3) 402 | - React-Fabric/dom (= 0.79.3) 403 | - React-Fabric/imagemanager (= 0.79.3) 404 | - React-Fabric/leakchecker (= 0.79.3) 405 | - React-Fabric/mounting (= 0.79.3) 406 | - React-Fabric/observers (= 0.79.3) 407 | - React-Fabric/scheduler (= 0.79.3) 408 | - React-Fabric/telemetry (= 0.79.3) 409 | - React-Fabric/templateprocessor (= 0.79.3) 410 | - React-Fabric/uimanager (= 0.79.3) 411 | - React-featureflags 412 | - React-graphics 413 | - React-hermes 414 | - React-jsi 415 | - React-jsiexecutor 416 | - React-logger 417 | - React-rendererdebug 418 | - React-runtimescheduler 419 | - React-utils 420 | - ReactCommon/turbomodule/core 421 | - React-Fabric/animations (0.79.3): 422 | - DoubleConversion 423 | - fast_float (= 6.1.4) 424 | - fmt (= 11.0.2) 425 | - glog 426 | - hermes-engine 427 | - RCT-Folly/Fabric (= 2024.11.18.00) 428 | - RCTRequired 429 | - RCTTypeSafety 430 | - React-Core 431 | - React-cxxreact 432 | - React-debug 433 | - React-featureflags 434 | - React-graphics 435 | - React-hermes 436 | - React-jsi 437 | - React-jsiexecutor 438 | - React-logger 439 | - React-rendererdebug 440 | - React-runtimescheduler 441 | - React-utils 442 | - ReactCommon/turbomodule/core 443 | - React-Fabric/attributedstring (0.79.3): 444 | - DoubleConversion 445 | - fast_float (= 6.1.4) 446 | - fmt (= 11.0.2) 447 | - glog 448 | - hermes-engine 449 | - RCT-Folly/Fabric (= 2024.11.18.00) 450 | - RCTRequired 451 | - RCTTypeSafety 452 | - React-Core 453 | - React-cxxreact 454 | - React-debug 455 | - React-featureflags 456 | - React-graphics 457 | - React-hermes 458 | - React-jsi 459 | - React-jsiexecutor 460 | - React-logger 461 | - React-rendererdebug 462 | - React-runtimescheduler 463 | - React-utils 464 | - ReactCommon/turbomodule/core 465 | - React-Fabric/componentregistry (0.79.3): 466 | - DoubleConversion 467 | - fast_float (= 6.1.4) 468 | - fmt (= 11.0.2) 469 | - glog 470 | - hermes-engine 471 | - RCT-Folly/Fabric (= 2024.11.18.00) 472 | - RCTRequired 473 | - RCTTypeSafety 474 | - React-Core 475 | - React-cxxreact 476 | - React-debug 477 | - React-featureflags 478 | - React-graphics 479 | - React-hermes 480 | - React-jsi 481 | - React-jsiexecutor 482 | - React-logger 483 | - React-rendererdebug 484 | - React-runtimescheduler 485 | - React-utils 486 | - ReactCommon/turbomodule/core 487 | - React-Fabric/componentregistrynative (0.79.3): 488 | - DoubleConversion 489 | - fast_float (= 6.1.4) 490 | - fmt (= 11.0.2) 491 | - glog 492 | - hermes-engine 493 | - RCT-Folly/Fabric (= 2024.11.18.00) 494 | - RCTRequired 495 | - RCTTypeSafety 496 | - React-Core 497 | - React-cxxreact 498 | - React-debug 499 | - React-featureflags 500 | - React-graphics 501 | - React-hermes 502 | - React-jsi 503 | - React-jsiexecutor 504 | - React-logger 505 | - React-rendererdebug 506 | - React-runtimescheduler 507 | - React-utils 508 | - ReactCommon/turbomodule/core 509 | - React-Fabric/components (0.79.3): 510 | - DoubleConversion 511 | - fast_float (= 6.1.4) 512 | - fmt (= 11.0.2) 513 | - glog 514 | - hermes-engine 515 | - RCT-Folly/Fabric (= 2024.11.18.00) 516 | - RCTRequired 517 | - RCTTypeSafety 518 | - React-Core 519 | - React-cxxreact 520 | - React-debug 521 | - React-Fabric/components/legacyviewmanagerinterop (= 0.79.3) 522 | - React-Fabric/components/root (= 0.79.3) 523 | - React-Fabric/components/scrollview (= 0.79.3) 524 | - React-Fabric/components/view (= 0.79.3) 525 | - React-featureflags 526 | - React-graphics 527 | - React-hermes 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/legacyviewmanagerinterop (0.79.3): 536 | - DoubleConversion 537 | - fast_float (= 6.1.4) 538 | - fmt (= 11.0.2) 539 | - glog 540 | - hermes-engine 541 | - RCT-Folly/Fabric (= 2024.11.18.00) 542 | - RCTRequired 543 | - RCTTypeSafety 544 | - React-Core 545 | - React-cxxreact 546 | - React-debug 547 | - React-featureflags 548 | - React-graphics 549 | - React-hermes 550 | - React-jsi 551 | - React-jsiexecutor 552 | - React-logger 553 | - React-rendererdebug 554 | - React-runtimescheduler 555 | - React-utils 556 | - ReactCommon/turbomodule/core 557 | - React-Fabric/components/root (0.79.3): 558 | - DoubleConversion 559 | - fast_float (= 6.1.4) 560 | - fmt (= 11.0.2) 561 | - glog 562 | - hermes-engine 563 | - RCT-Folly/Fabric (= 2024.11.18.00) 564 | - RCTRequired 565 | - RCTTypeSafety 566 | - React-Core 567 | - React-cxxreact 568 | - React-debug 569 | - React-featureflags 570 | - React-graphics 571 | - React-hermes 572 | - React-jsi 573 | - React-jsiexecutor 574 | - React-logger 575 | - React-rendererdebug 576 | - React-runtimescheduler 577 | - React-utils 578 | - ReactCommon/turbomodule/core 579 | - React-Fabric/components/scrollview (0.79.3): 580 | - DoubleConversion 581 | - fast_float (= 6.1.4) 582 | - fmt (= 11.0.2) 583 | - glog 584 | - hermes-engine 585 | - RCT-Folly/Fabric (= 2024.11.18.00) 586 | - RCTRequired 587 | - RCTTypeSafety 588 | - React-Core 589 | - React-cxxreact 590 | - React-debug 591 | - React-featureflags 592 | - React-graphics 593 | - React-hermes 594 | - React-jsi 595 | - React-jsiexecutor 596 | - React-logger 597 | - React-rendererdebug 598 | - React-runtimescheduler 599 | - React-utils 600 | - ReactCommon/turbomodule/core 601 | - React-Fabric/components/view (0.79.3): 602 | - DoubleConversion 603 | - fast_float (= 6.1.4) 604 | - fmt (= 11.0.2) 605 | - glog 606 | - hermes-engine 607 | - RCT-Folly/Fabric (= 2024.11.18.00) 608 | - RCTRequired 609 | - RCTTypeSafety 610 | - React-Core 611 | - React-cxxreact 612 | - React-debug 613 | - React-featureflags 614 | - React-graphics 615 | - React-hermes 616 | - React-jsi 617 | - React-jsiexecutor 618 | - React-logger 619 | - React-renderercss 620 | - React-rendererdebug 621 | - React-runtimescheduler 622 | - React-utils 623 | - ReactCommon/turbomodule/core 624 | - Yoga 625 | - React-Fabric/consistency (0.79.3): 626 | - DoubleConversion 627 | - fast_float (= 6.1.4) 628 | - fmt (= 11.0.2) 629 | - glog 630 | - hermes-engine 631 | - RCT-Folly/Fabric (= 2024.11.18.00) 632 | - RCTRequired 633 | - RCTTypeSafety 634 | - React-Core 635 | - React-cxxreact 636 | - React-debug 637 | - React-featureflags 638 | - React-graphics 639 | - React-hermes 640 | - React-jsi 641 | - React-jsiexecutor 642 | - React-logger 643 | - React-rendererdebug 644 | - React-runtimescheduler 645 | - React-utils 646 | - ReactCommon/turbomodule/core 647 | - React-Fabric/core (0.79.3): 648 | - DoubleConversion 649 | - fast_float (= 6.1.4) 650 | - fmt (= 11.0.2) 651 | - glog 652 | - hermes-engine 653 | - RCT-Folly/Fabric (= 2024.11.18.00) 654 | - RCTRequired 655 | - RCTTypeSafety 656 | - React-Core 657 | - React-cxxreact 658 | - React-debug 659 | - React-featureflags 660 | - React-graphics 661 | - React-hermes 662 | - React-jsi 663 | - React-jsiexecutor 664 | - React-logger 665 | - React-rendererdebug 666 | - React-runtimescheduler 667 | - React-utils 668 | - ReactCommon/turbomodule/core 669 | - React-Fabric/dom (0.79.3): 670 | - DoubleConversion 671 | - fast_float (= 6.1.4) 672 | - fmt (= 11.0.2) 673 | - glog 674 | - hermes-engine 675 | - RCT-Folly/Fabric (= 2024.11.18.00) 676 | - RCTRequired 677 | - RCTTypeSafety 678 | - React-Core 679 | - React-cxxreact 680 | - React-debug 681 | - React-featureflags 682 | - React-graphics 683 | - React-hermes 684 | - React-jsi 685 | - React-jsiexecutor 686 | - React-logger 687 | - React-rendererdebug 688 | - React-runtimescheduler 689 | - React-utils 690 | - ReactCommon/turbomodule/core 691 | - React-Fabric/imagemanager (0.79.3): 692 | - DoubleConversion 693 | - fast_float (= 6.1.4) 694 | - fmt (= 11.0.2) 695 | - glog 696 | - hermes-engine 697 | - RCT-Folly/Fabric (= 2024.11.18.00) 698 | - RCTRequired 699 | - RCTTypeSafety 700 | - React-Core 701 | - React-cxxreact 702 | - React-debug 703 | - React-featureflags 704 | - React-graphics 705 | - React-hermes 706 | - React-jsi 707 | - React-jsiexecutor 708 | - React-logger 709 | - React-rendererdebug 710 | - React-runtimescheduler 711 | - React-utils 712 | - ReactCommon/turbomodule/core 713 | - React-Fabric/leakchecker (0.79.3): 714 | - DoubleConversion 715 | - fast_float (= 6.1.4) 716 | - fmt (= 11.0.2) 717 | - glog 718 | - hermes-engine 719 | - RCT-Folly/Fabric (= 2024.11.18.00) 720 | - RCTRequired 721 | - RCTTypeSafety 722 | - React-Core 723 | - React-cxxreact 724 | - React-debug 725 | - React-featureflags 726 | - React-graphics 727 | - React-hermes 728 | - React-jsi 729 | - React-jsiexecutor 730 | - React-logger 731 | - React-rendererdebug 732 | - React-runtimescheduler 733 | - React-utils 734 | - ReactCommon/turbomodule/core 735 | - React-Fabric/mounting (0.79.3): 736 | - DoubleConversion 737 | - fast_float (= 6.1.4) 738 | - fmt (= 11.0.2) 739 | - glog 740 | - hermes-engine 741 | - RCT-Folly/Fabric (= 2024.11.18.00) 742 | - RCTRequired 743 | - RCTTypeSafety 744 | - React-Core 745 | - React-cxxreact 746 | - React-debug 747 | - React-featureflags 748 | - React-graphics 749 | - React-hermes 750 | - React-jsi 751 | - React-jsiexecutor 752 | - React-logger 753 | - React-rendererdebug 754 | - React-runtimescheduler 755 | - React-utils 756 | - ReactCommon/turbomodule/core 757 | - React-Fabric/observers (0.79.3): 758 | - DoubleConversion 759 | - fast_float (= 6.1.4) 760 | - fmt (= 11.0.2) 761 | - glog 762 | - hermes-engine 763 | - RCT-Folly/Fabric (= 2024.11.18.00) 764 | - RCTRequired 765 | - RCTTypeSafety 766 | - React-Core 767 | - React-cxxreact 768 | - React-debug 769 | - React-Fabric/observers/events (= 0.79.3) 770 | - React-featureflags 771 | - React-graphics 772 | - React-hermes 773 | - React-jsi 774 | - React-jsiexecutor 775 | - React-logger 776 | - React-rendererdebug 777 | - React-runtimescheduler 778 | - React-utils 779 | - ReactCommon/turbomodule/core 780 | - React-Fabric/observers/events (0.79.3): 781 | - DoubleConversion 782 | - fast_float (= 6.1.4) 783 | - fmt (= 11.0.2) 784 | - glog 785 | - hermes-engine 786 | - RCT-Folly/Fabric (= 2024.11.18.00) 787 | - RCTRequired 788 | - RCTTypeSafety 789 | - React-Core 790 | - React-cxxreact 791 | - React-debug 792 | - React-featureflags 793 | - React-graphics 794 | - React-hermes 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/scheduler (0.79.3): 803 | - DoubleConversion 804 | - fast_float (= 6.1.4) 805 | - fmt (= 11.0.2) 806 | - glog 807 | - hermes-engine 808 | - RCT-Folly/Fabric (= 2024.11.18.00) 809 | - RCTRequired 810 | - RCTTypeSafety 811 | - React-Core 812 | - React-cxxreact 813 | - React-debug 814 | - React-Fabric/observers/events 815 | - React-featureflags 816 | - React-graphics 817 | - React-hermes 818 | - React-jsi 819 | - React-jsiexecutor 820 | - React-logger 821 | - React-performancetimeline 822 | - React-rendererdebug 823 | - React-runtimescheduler 824 | - React-utils 825 | - ReactCommon/turbomodule/core 826 | - React-Fabric/telemetry (0.79.3): 827 | - DoubleConversion 828 | - fast_float (= 6.1.4) 829 | - fmt (= 11.0.2) 830 | - glog 831 | - hermes-engine 832 | - RCT-Folly/Fabric (= 2024.11.18.00) 833 | - RCTRequired 834 | - RCTTypeSafety 835 | - React-Core 836 | - React-cxxreact 837 | - React-debug 838 | - React-featureflags 839 | - React-graphics 840 | - React-hermes 841 | - React-jsi 842 | - React-jsiexecutor 843 | - React-logger 844 | - React-rendererdebug 845 | - React-runtimescheduler 846 | - React-utils 847 | - ReactCommon/turbomodule/core 848 | - React-Fabric/templateprocessor (0.79.3): 849 | - DoubleConversion 850 | - fast_float (= 6.1.4) 851 | - fmt (= 11.0.2) 852 | - glog 853 | - hermes-engine 854 | - RCT-Folly/Fabric (= 2024.11.18.00) 855 | - RCTRequired 856 | - RCTTypeSafety 857 | - React-Core 858 | - React-cxxreact 859 | - React-debug 860 | - React-featureflags 861 | - React-graphics 862 | - React-hermes 863 | - React-jsi 864 | - React-jsiexecutor 865 | - React-logger 866 | - React-rendererdebug 867 | - React-runtimescheduler 868 | - React-utils 869 | - ReactCommon/turbomodule/core 870 | - React-Fabric/uimanager (0.79.3): 871 | - DoubleConversion 872 | - fast_float (= 6.1.4) 873 | - fmt (= 11.0.2) 874 | - glog 875 | - hermes-engine 876 | - RCT-Folly/Fabric (= 2024.11.18.00) 877 | - RCTRequired 878 | - RCTTypeSafety 879 | - React-Core 880 | - React-cxxreact 881 | - React-debug 882 | - React-Fabric/uimanager/consistency (= 0.79.3) 883 | - React-featureflags 884 | - React-graphics 885 | - React-hermes 886 | - React-jsi 887 | - React-jsiexecutor 888 | - React-logger 889 | - React-rendererconsistency 890 | - React-rendererdebug 891 | - React-runtimescheduler 892 | - React-utils 893 | - ReactCommon/turbomodule/core 894 | - React-Fabric/uimanager/consistency (0.79.3): 895 | - DoubleConversion 896 | - fast_float (= 6.1.4) 897 | - fmt (= 11.0.2) 898 | - glog 899 | - hermes-engine 900 | - RCT-Folly/Fabric (= 2024.11.18.00) 901 | - RCTRequired 902 | - RCTTypeSafety 903 | - React-Core 904 | - React-cxxreact 905 | - React-debug 906 | - React-featureflags 907 | - React-graphics 908 | - React-hermes 909 | - React-jsi 910 | - React-jsiexecutor 911 | - React-logger 912 | - React-rendererconsistency 913 | - React-rendererdebug 914 | - React-runtimescheduler 915 | - React-utils 916 | - ReactCommon/turbomodule/core 917 | - React-FabricComponents (0.79.3): 918 | - DoubleConversion 919 | - fast_float (= 6.1.4) 920 | - fmt (= 11.0.2) 921 | - glog 922 | - hermes-engine 923 | - RCT-Folly/Fabric (= 2024.11.18.00) 924 | - RCTRequired 925 | - RCTTypeSafety 926 | - React-Core 927 | - React-cxxreact 928 | - React-debug 929 | - React-Fabric 930 | - React-FabricComponents/components (= 0.79.3) 931 | - React-FabricComponents/textlayoutmanager (= 0.79.3) 932 | - React-featureflags 933 | - React-graphics 934 | - React-hermes 935 | - React-jsi 936 | - React-jsiexecutor 937 | - React-logger 938 | - React-rendererdebug 939 | - React-runtimescheduler 940 | - React-utils 941 | - ReactCommon/turbomodule/core 942 | - Yoga 943 | - React-FabricComponents/components (0.79.3): 944 | - DoubleConversion 945 | - fast_float (= 6.1.4) 946 | - fmt (= 11.0.2) 947 | - glog 948 | - hermes-engine 949 | - RCT-Folly/Fabric (= 2024.11.18.00) 950 | - RCTRequired 951 | - RCTTypeSafety 952 | - React-Core 953 | - React-cxxreact 954 | - React-debug 955 | - React-Fabric 956 | - React-FabricComponents/components/inputaccessory (= 0.79.3) 957 | - React-FabricComponents/components/iostextinput (= 0.79.3) 958 | - React-FabricComponents/components/modal (= 0.79.3) 959 | - React-FabricComponents/components/rncore (= 0.79.3) 960 | - React-FabricComponents/components/safeareaview (= 0.79.3) 961 | - React-FabricComponents/components/scrollview (= 0.79.3) 962 | - React-FabricComponents/components/text (= 0.79.3) 963 | - React-FabricComponents/components/textinput (= 0.79.3) 964 | - React-FabricComponents/components/unimplementedview (= 0.79.3) 965 | - React-featureflags 966 | - React-graphics 967 | - React-hermes 968 | - React-jsi 969 | - React-jsiexecutor 970 | - React-logger 971 | - React-rendererdebug 972 | - React-runtimescheduler 973 | - React-utils 974 | - ReactCommon/turbomodule/core 975 | - Yoga 976 | - React-FabricComponents/components/inputaccessory (0.79.3): 977 | - DoubleConversion 978 | - fast_float (= 6.1.4) 979 | - fmt (= 11.0.2) 980 | - glog 981 | - hermes-engine 982 | - RCT-Folly/Fabric (= 2024.11.18.00) 983 | - RCTRequired 984 | - RCTTypeSafety 985 | - React-Core 986 | - React-cxxreact 987 | - React-debug 988 | - React-Fabric 989 | - React-featureflags 990 | - React-graphics 991 | - React-hermes 992 | - React-jsi 993 | - React-jsiexecutor 994 | - React-logger 995 | - React-rendererdebug 996 | - React-runtimescheduler 997 | - React-utils 998 | - ReactCommon/turbomodule/core 999 | - Yoga 1000 | - React-FabricComponents/components/iostextinput (0.79.3): 1001 | - DoubleConversion 1002 | - fast_float (= 6.1.4) 1003 | - fmt (= 11.0.2) 1004 | - glog 1005 | - hermes-engine 1006 | - RCT-Folly/Fabric (= 2024.11.18.00) 1007 | - RCTRequired 1008 | - RCTTypeSafety 1009 | - React-Core 1010 | - React-cxxreact 1011 | - React-debug 1012 | - React-Fabric 1013 | - React-featureflags 1014 | - React-graphics 1015 | - React-hermes 1016 | - React-jsi 1017 | - React-jsiexecutor 1018 | - React-logger 1019 | - React-rendererdebug 1020 | - React-runtimescheduler 1021 | - React-utils 1022 | - ReactCommon/turbomodule/core 1023 | - Yoga 1024 | - React-FabricComponents/components/modal (0.79.3): 1025 | - DoubleConversion 1026 | - fast_float (= 6.1.4) 1027 | - fmt (= 11.0.2) 1028 | - glog 1029 | - hermes-engine 1030 | - RCT-Folly/Fabric (= 2024.11.18.00) 1031 | - RCTRequired 1032 | - RCTTypeSafety 1033 | - React-Core 1034 | - React-cxxreact 1035 | - React-debug 1036 | - React-Fabric 1037 | - React-featureflags 1038 | - React-graphics 1039 | - React-hermes 1040 | - React-jsi 1041 | - React-jsiexecutor 1042 | - React-logger 1043 | - React-rendererdebug 1044 | - React-runtimescheduler 1045 | - React-utils 1046 | - ReactCommon/turbomodule/core 1047 | - Yoga 1048 | - React-FabricComponents/components/rncore (0.79.3): 1049 | - DoubleConversion 1050 | - fast_float (= 6.1.4) 1051 | - fmt (= 11.0.2) 1052 | - glog 1053 | - hermes-engine 1054 | - RCT-Folly/Fabric (= 2024.11.18.00) 1055 | - RCTRequired 1056 | - RCTTypeSafety 1057 | - React-Core 1058 | - React-cxxreact 1059 | - React-debug 1060 | - React-Fabric 1061 | - React-featureflags 1062 | - React-graphics 1063 | - React-hermes 1064 | - React-jsi 1065 | - React-jsiexecutor 1066 | - React-logger 1067 | - React-rendererdebug 1068 | - React-runtimescheduler 1069 | - React-utils 1070 | - ReactCommon/turbomodule/core 1071 | - Yoga 1072 | - React-FabricComponents/components/safeareaview (0.79.3): 1073 | - DoubleConversion 1074 | - fast_float (= 6.1.4) 1075 | - fmt (= 11.0.2) 1076 | - glog 1077 | - hermes-engine 1078 | - RCT-Folly/Fabric (= 2024.11.18.00) 1079 | - RCTRequired 1080 | - RCTTypeSafety 1081 | - React-Core 1082 | - React-cxxreact 1083 | - React-debug 1084 | - React-Fabric 1085 | - React-featureflags 1086 | - React-graphics 1087 | - React-hermes 1088 | - React-jsi 1089 | - React-jsiexecutor 1090 | - React-logger 1091 | - React-rendererdebug 1092 | - React-runtimescheduler 1093 | - React-utils 1094 | - ReactCommon/turbomodule/core 1095 | - Yoga 1096 | - React-FabricComponents/components/scrollview (0.79.3): 1097 | - DoubleConversion 1098 | - fast_float (= 6.1.4) 1099 | - fmt (= 11.0.2) 1100 | - glog 1101 | - hermes-engine 1102 | - RCT-Folly/Fabric (= 2024.11.18.00) 1103 | - RCTRequired 1104 | - RCTTypeSafety 1105 | - React-Core 1106 | - React-cxxreact 1107 | - React-debug 1108 | - React-Fabric 1109 | - React-featureflags 1110 | - React-graphics 1111 | - React-hermes 1112 | - React-jsi 1113 | - React-jsiexecutor 1114 | - React-logger 1115 | - React-rendererdebug 1116 | - React-runtimescheduler 1117 | - React-utils 1118 | - ReactCommon/turbomodule/core 1119 | - Yoga 1120 | - React-FabricComponents/components/text (0.79.3): 1121 | - DoubleConversion 1122 | - fast_float (= 6.1.4) 1123 | - fmt (= 11.0.2) 1124 | - glog 1125 | - hermes-engine 1126 | - RCT-Folly/Fabric (= 2024.11.18.00) 1127 | - RCTRequired 1128 | - RCTTypeSafety 1129 | - React-Core 1130 | - React-cxxreact 1131 | - React-debug 1132 | - React-Fabric 1133 | - React-featureflags 1134 | - React-graphics 1135 | - React-hermes 1136 | - React-jsi 1137 | - React-jsiexecutor 1138 | - React-logger 1139 | - React-rendererdebug 1140 | - React-runtimescheduler 1141 | - React-utils 1142 | - ReactCommon/turbomodule/core 1143 | - Yoga 1144 | - React-FabricComponents/components/textinput (0.79.3): 1145 | - DoubleConversion 1146 | - fast_float (= 6.1.4) 1147 | - fmt (= 11.0.2) 1148 | - glog 1149 | - hermes-engine 1150 | - RCT-Folly/Fabric (= 2024.11.18.00) 1151 | - RCTRequired 1152 | - RCTTypeSafety 1153 | - React-Core 1154 | - React-cxxreact 1155 | - React-debug 1156 | - React-Fabric 1157 | - React-featureflags 1158 | - React-graphics 1159 | - React-hermes 1160 | - React-jsi 1161 | - React-jsiexecutor 1162 | - React-logger 1163 | - React-rendererdebug 1164 | - React-runtimescheduler 1165 | - React-utils 1166 | - ReactCommon/turbomodule/core 1167 | - Yoga 1168 | - React-FabricComponents/components/unimplementedview (0.79.3): 1169 | - DoubleConversion 1170 | - fast_float (= 6.1.4) 1171 | - fmt (= 11.0.2) 1172 | - glog 1173 | - hermes-engine 1174 | - RCT-Folly/Fabric (= 2024.11.18.00) 1175 | - RCTRequired 1176 | - RCTTypeSafety 1177 | - React-Core 1178 | - React-cxxreact 1179 | - React-debug 1180 | - React-Fabric 1181 | - React-featureflags 1182 | - React-graphics 1183 | - React-hermes 1184 | - React-jsi 1185 | - React-jsiexecutor 1186 | - React-logger 1187 | - React-rendererdebug 1188 | - React-runtimescheduler 1189 | - React-utils 1190 | - ReactCommon/turbomodule/core 1191 | - Yoga 1192 | - React-FabricComponents/textlayoutmanager (0.79.3): 1193 | - DoubleConversion 1194 | - fast_float (= 6.1.4) 1195 | - fmt (= 11.0.2) 1196 | - glog 1197 | - hermes-engine 1198 | - RCT-Folly/Fabric (= 2024.11.18.00) 1199 | - RCTRequired 1200 | - RCTTypeSafety 1201 | - React-Core 1202 | - React-cxxreact 1203 | - React-debug 1204 | - React-Fabric 1205 | - React-featureflags 1206 | - React-graphics 1207 | - React-hermes 1208 | - React-jsi 1209 | - React-jsiexecutor 1210 | - React-logger 1211 | - React-rendererdebug 1212 | - React-runtimescheduler 1213 | - React-utils 1214 | - ReactCommon/turbomodule/core 1215 | - Yoga 1216 | - React-FabricImage (0.79.3): 1217 | - DoubleConversion 1218 | - fast_float (= 6.1.4) 1219 | - fmt (= 11.0.2) 1220 | - glog 1221 | - hermes-engine 1222 | - RCT-Folly/Fabric (= 2024.11.18.00) 1223 | - RCTRequired (= 0.79.3) 1224 | - RCTTypeSafety (= 0.79.3) 1225 | - React-Fabric 1226 | - React-featureflags 1227 | - React-graphics 1228 | - React-hermes 1229 | - React-ImageManager 1230 | - React-jsi 1231 | - React-jsiexecutor (= 0.79.3) 1232 | - React-logger 1233 | - React-rendererdebug 1234 | - React-utils 1235 | - ReactCommon 1236 | - Yoga 1237 | - React-featureflags (0.79.3): 1238 | - RCT-Folly (= 2024.11.18.00) 1239 | - React-featureflagsnativemodule (0.79.3): 1240 | - hermes-engine 1241 | - RCT-Folly 1242 | - React-featureflags 1243 | - React-hermes 1244 | - React-jsi 1245 | - React-jsiexecutor 1246 | - React-RCTFBReactNativeSpec 1247 | - ReactCommon/turbomodule/core 1248 | - React-graphics (0.79.3): 1249 | - DoubleConversion 1250 | - fast_float (= 6.1.4) 1251 | - fmt (= 11.0.2) 1252 | - glog 1253 | - hermes-engine 1254 | - RCT-Folly/Fabric (= 2024.11.18.00) 1255 | - React-hermes 1256 | - React-jsi 1257 | - React-jsiexecutor 1258 | - React-utils 1259 | - React-hermes (0.79.3): 1260 | - DoubleConversion 1261 | - fast_float (= 6.1.4) 1262 | - fmt (= 11.0.2) 1263 | - glog 1264 | - hermes-engine 1265 | - RCT-Folly (= 2024.11.18.00) 1266 | - React-cxxreact (= 0.79.3) 1267 | - React-jsi 1268 | - React-jsiexecutor (= 0.79.3) 1269 | - React-jsinspector 1270 | - React-jsinspectortracing 1271 | - React-perflogger (= 0.79.3) 1272 | - React-runtimeexecutor 1273 | - React-idlecallbacksnativemodule (0.79.3): 1274 | - glog 1275 | - hermes-engine 1276 | - RCT-Folly 1277 | - React-hermes 1278 | - React-jsi 1279 | - React-jsiexecutor 1280 | - React-RCTFBReactNativeSpec 1281 | - React-runtimescheduler 1282 | - ReactCommon/turbomodule/core 1283 | - React-ImageManager (0.79.3): 1284 | - glog 1285 | - RCT-Folly/Fabric 1286 | - React-Core/Default 1287 | - React-debug 1288 | - React-Fabric 1289 | - React-graphics 1290 | - React-rendererdebug 1291 | - React-utils 1292 | - React-jserrorhandler (0.79.3): 1293 | - glog 1294 | - hermes-engine 1295 | - RCT-Folly/Fabric (= 2024.11.18.00) 1296 | - React-cxxreact 1297 | - React-debug 1298 | - React-featureflags 1299 | - React-jsi 1300 | - ReactCommon/turbomodule/bridging 1301 | - React-jsi (0.79.3): 1302 | - boost 1303 | - DoubleConversion 1304 | - fast_float (= 6.1.4) 1305 | - fmt (= 11.0.2) 1306 | - glog 1307 | - hermes-engine 1308 | - RCT-Folly (= 2024.11.18.00) 1309 | - React-jsiexecutor (0.79.3): 1310 | - DoubleConversion 1311 | - fast_float (= 6.1.4) 1312 | - fmt (= 11.0.2) 1313 | - glog 1314 | - hermes-engine 1315 | - RCT-Folly (= 2024.11.18.00) 1316 | - React-cxxreact (= 0.79.3) 1317 | - React-jsi (= 0.79.3) 1318 | - React-jsinspector 1319 | - React-jsinspectortracing 1320 | - React-perflogger (= 0.79.3) 1321 | - React-jsinspector (0.79.3): 1322 | - DoubleConversion 1323 | - glog 1324 | - hermes-engine 1325 | - RCT-Folly 1326 | - React-featureflags 1327 | - React-jsi 1328 | - React-jsinspectortracing 1329 | - React-perflogger (= 0.79.3) 1330 | - React-runtimeexecutor (= 0.79.3) 1331 | - React-jsinspectortracing (0.79.3): 1332 | - RCT-Folly 1333 | - React-oscompat 1334 | - React-jsitooling (0.79.3): 1335 | - DoubleConversion 1336 | - fast_float (= 6.1.4) 1337 | - fmt (= 11.0.2) 1338 | - glog 1339 | - RCT-Folly (= 2024.11.18.00) 1340 | - React-cxxreact (= 0.79.3) 1341 | - React-jsi (= 0.79.3) 1342 | - React-jsinspector 1343 | - React-jsinspectortracing 1344 | - React-jsitracing (0.79.3): 1345 | - React-jsi 1346 | - React-logger (0.79.3): 1347 | - glog 1348 | - React-Mapbuffer (0.79.3): 1349 | - glog 1350 | - React-debug 1351 | - React-microtasksnativemodule (0.79.3): 1352 | - hermes-engine 1353 | - RCT-Folly 1354 | - React-hermes 1355 | - React-jsi 1356 | - React-jsiexecutor 1357 | - React-RCTFBReactNativeSpec 1358 | - ReactCommon/turbomodule/core 1359 | - react-native-config (1.5.5): 1360 | - react-native-config/App (= 1.5.5) 1361 | - react-native-config/App (1.5.5): 1362 | - React-Core 1363 | - react-native-safe-area-context (5.4.1): 1364 | - DoubleConversion 1365 | - glog 1366 | - hermes-engine 1367 | - RCT-Folly (= 2024.11.18.00) 1368 | - RCTRequired 1369 | - RCTTypeSafety 1370 | - React-Core 1371 | - React-debug 1372 | - React-Fabric 1373 | - React-featureflags 1374 | - React-graphics 1375 | - React-hermes 1376 | - React-ImageManager 1377 | - React-jsi 1378 | - react-native-safe-area-context/common (= 5.4.1) 1379 | - react-native-safe-area-context/fabric (= 5.4.1) 1380 | - React-NativeModulesApple 1381 | - React-RCTFabric 1382 | - React-renderercss 1383 | - React-rendererdebug 1384 | - React-utils 1385 | - ReactCodegen 1386 | - ReactCommon/turbomodule/bridging 1387 | - ReactCommon/turbomodule/core 1388 | - Yoga 1389 | - react-native-safe-area-context/common (5.4.1): 1390 | - DoubleConversion 1391 | - glog 1392 | - hermes-engine 1393 | - RCT-Folly (= 2024.11.18.00) 1394 | - RCTRequired 1395 | - RCTTypeSafety 1396 | - React-Core 1397 | - React-debug 1398 | - React-Fabric 1399 | - React-featureflags 1400 | - React-graphics 1401 | - React-hermes 1402 | - React-ImageManager 1403 | - React-jsi 1404 | - React-NativeModulesApple 1405 | - React-RCTFabric 1406 | - React-renderercss 1407 | - React-rendererdebug 1408 | - React-utils 1409 | - ReactCodegen 1410 | - ReactCommon/turbomodule/bridging 1411 | - ReactCommon/turbomodule/core 1412 | - Yoga 1413 | - react-native-safe-area-context/fabric (5.4.1): 1414 | - DoubleConversion 1415 | - glog 1416 | - hermes-engine 1417 | - RCT-Folly (= 2024.11.18.00) 1418 | - RCTRequired 1419 | - RCTTypeSafety 1420 | - React-Core 1421 | - React-debug 1422 | - React-Fabric 1423 | - React-featureflags 1424 | - React-graphics 1425 | - React-hermes 1426 | - React-ImageManager 1427 | - React-jsi 1428 | - react-native-safe-area-context/common 1429 | - React-NativeModulesApple 1430 | - React-RCTFabric 1431 | - React-renderercss 1432 | - React-rendererdebug 1433 | - React-utils 1434 | - ReactCodegen 1435 | - ReactCommon/turbomodule/bridging 1436 | - ReactCommon/turbomodule/core 1437 | - Yoga 1438 | - React-NativeModulesApple (0.79.3): 1439 | - glog 1440 | - hermes-engine 1441 | - React-callinvoker 1442 | - React-Core 1443 | - React-cxxreact 1444 | - React-featureflags 1445 | - React-hermes 1446 | - React-jsi 1447 | - React-jsinspector 1448 | - React-runtimeexecutor 1449 | - ReactCommon/turbomodule/bridging 1450 | - ReactCommon/turbomodule/core 1451 | - React-oscompat (0.79.3) 1452 | - React-perflogger (0.79.3): 1453 | - DoubleConversion 1454 | - RCT-Folly (= 2024.11.18.00) 1455 | - React-performancetimeline (0.79.3): 1456 | - RCT-Folly (= 2024.11.18.00) 1457 | - React-cxxreact 1458 | - React-featureflags 1459 | - React-jsinspectortracing 1460 | - React-perflogger 1461 | - React-timing 1462 | - React-RCTActionSheet (0.79.3): 1463 | - React-Core/RCTActionSheetHeaders (= 0.79.3) 1464 | - React-RCTAnimation (0.79.3): 1465 | - RCT-Folly (= 2024.11.18.00) 1466 | - RCTTypeSafety 1467 | - React-Core/RCTAnimationHeaders 1468 | - React-jsi 1469 | - React-NativeModulesApple 1470 | - React-RCTFBReactNativeSpec 1471 | - ReactCommon 1472 | - React-RCTAppDelegate (0.79.3): 1473 | - hermes-engine 1474 | - RCT-Folly (= 2024.11.18.00) 1475 | - RCTRequired 1476 | - RCTTypeSafety 1477 | - React-Core 1478 | - React-CoreModules 1479 | - React-debug 1480 | - React-defaultsnativemodule 1481 | - React-Fabric 1482 | - React-featureflags 1483 | - React-graphics 1484 | - React-hermes 1485 | - React-jsitooling 1486 | - React-NativeModulesApple 1487 | - React-RCTFabric 1488 | - React-RCTFBReactNativeSpec 1489 | - React-RCTImage 1490 | - React-RCTNetwork 1491 | - React-RCTRuntime 1492 | - React-rendererdebug 1493 | - React-RuntimeApple 1494 | - React-RuntimeCore 1495 | - React-runtimescheduler 1496 | - React-utils 1497 | - ReactCommon 1498 | - React-RCTBlob (0.79.3): 1499 | - DoubleConversion 1500 | - fast_float (= 6.1.4) 1501 | - fmt (= 11.0.2) 1502 | - hermes-engine 1503 | - RCT-Folly (= 2024.11.18.00) 1504 | - React-Core/RCTBlobHeaders 1505 | - React-Core/RCTWebSocket 1506 | - React-jsi 1507 | - React-jsinspector 1508 | - React-NativeModulesApple 1509 | - React-RCTFBReactNativeSpec 1510 | - React-RCTNetwork 1511 | - ReactCommon 1512 | - React-RCTFabric (0.79.3): 1513 | - glog 1514 | - hermes-engine 1515 | - RCT-Folly/Fabric (= 2024.11.18.00) 1516 | - React-Core 1517 | - React-debug 1518 | - React-Fabric 1519 | - React-FabricComponents 1520 | - React-FabricImage 1521 | - React-featureflags 1522 | - React-graphics 1523 | - React-hermes 1524 | - React-ImageManager 1525 | - React-jsi 1526 | - React-jsinspector 1527 | - React-jsinspectortracing 1528 | - React-performancetimeline 1529 | - React-RCTAnimation 1530 | - React-RCTImage 1531 | - React-RCTText 1532 | - React-rendererconsistency 1533 | - React-renderercss 1534 | - React-rendererdebug 1535 | - React-runtimescheduler 1536 | - React-utils 1537 | - Yoga 1538 | - React-RCTFBReactNativeSpec (0.79.3): 1539 | - hermes-engine 1540 | - RCT-Folly 1541 | - RCTRequired 1542 | - RCTTypeSafety 1543 | - React-Core 1544 | - React-hermes 1545 | - React-jsi 1546 | - React-jsiexecutor 1547 | - React-NativeModulesApple 1548 | - ReactCommon 1549 | - React-RCTImage (0.79.3): 1550 | - RCT-Folly (= 2024.11.18.00) 1551 | - RCTTypeSafety 1552 | - React-Core/RCTImageHeaders 1553 | - React-jsi 1554 | - React-NativeModulesApple 1555 | - React-RCTFBReactNativeSpec 1556 | - React-RCTNetwork 1557 | - ReactCommon 1558 | - React-RCTLinking (0.79.3): 1559 | - React-Core/RCTLinkingHeaders (= 0.79.3) 1560 | - React-jsi (= 0.79.3) 1561 | - React-NativeModulesApple 1562 | - React-RCTFBReactNativeSpec 1563 | - ReactCommon 1564 | - ReactCommon/turbomodule/core (= 0.79.3) 1565 | - React-RCTNetwork (0.79.3): 1566 | - RCT-Folly (= 2024.11.18.00) 1567 | - RCTTypeSafety 1568 | - React-Core/RCTNetworkHeaders 1569 | - React-jsi 1570 | - React-NativeModulesApple 1571 | - React-RCTFBReactNativeSpec 1572 | - ReactCommon 1573 | - React-RCTRuntime (0.79.3): 1574 | - glog 1575 | - hermes-engine 1576 | - RCT-Folly/Fabric (= 2024.11.18.00) 1577 | - React-Core 1578 | - React-hermes 1579 | - React-jsi 1580 | - React-jsinspector 1581 | - React-jsinspectortracing 1582 | - React-jsitooling 1583 | - React-RuntimeApple 1584 | - React-RuntimeCore 1585 | - React-RuntimeHermes 1586 | - React-RCTSettings (0.79.3): 1587 | - RCT-Folly (= 2024.11.18.00) 1588 | - RCTTypeSafety 1589 | - React-Core/RCTSettingsHeaders 1590 | - React-jsi 1591 | - React-NativeModulesApple 1592 | - React-RCTFBReactNativeSpec 1593 | - ReactCommon 1594 | - React-RCTText (0.79.3): 1595 | - React-Core/RCTTextHeaders (= 0.79.3) 1596 | - Yoga 1597 | - React-RCTVibration (0.79.3): 1598 | - RCT-Folly (= 2024.11.18.00) 1599 | - React-Core/RCTVibrationHeaders 1600 | - React-jsi 1601 | - React-NativeModulesApple 1602 | - React-RCTFBReactNativeSpec 1603 | - ReactCommon 1604 | - React-rendererconsistency (0.79.3) 1605 | - React-renderercss (0.79.3): 1606 | - React-debug 1607 | - React-utils 1608 | - React-rendererdebug (0.79.3): 1609 | - DoubleConversion 1610 | - fast_float (= 6.1.4) 1611 | - fmt (= 11.0.2) 1612 | - RCT-Folly (= 2024.11.18.00) 1613 | - React-debug 1614 | - React-rncore (0.79.3) 1615 | - React-RuntimeApple (0.79.3): 1616 | - hermes-engine 1617 | - RCT-Folly/Fabric (= 2024.11.18.00) 1618 | - React-callinvoker 1619 | - React-Core/Default 1620 | - React-CoreModules 1621 | - React-cxxreact 1622 | - React-featureflags 1623 | - React-jserrorhandler 1624 | - React-jsi 1625 | - React-jsiexecutor 1626 | - React-jsinspector 1627 | - React-jsitooling 1628 | - React-Mapbuffer 1629 | - React-NativeModulesApple 1630 | - React-RCTFabric 1631 | - React-RCTFBReactNativeSpec 1632 | - React-RuntimeCore 1633 | - React-runtimeexecutor 1634 | - React-RuntimeHermes 1635 | - React-runtimescheduler 1636 | - React-utils 1637 | - React-RuntimeCore (0.79.3): 1638 | - glog 1639 | - hermes-engine 1640 | - RCT-Folly/Fabric (= 2024.11.18.00) 1641 | - React-cxxreact 1642 | - React-Fabric 1643 | - React-featureflags 1644 | - React-hermes 1645 | - React-jserrorhandler 1646 | - React-jsi 1647 | - React-jsiexecutor 1648 | - React-jsinspector 1649 | - React-jsitooling 1650 | - React-performancetimeline 1651 | - React-runtimeexecutor 1652 | - React-runtimescheduler 1653 | - React-utils 1654 | - React-runtimeexecutor (0.79.3): 1655 | - React-jsi (= 0.79.3) 1656 | - React-RuntimeHermes (0.79.3): 1657 | - hermes-engine 1658 | - RCT-Folly/Fabric (= 2024.11.18.00) 1659 | - React-featureflags 1660 | - React-hermes 1661 | - React-jsi 1662 | - React-jsinspector 1663 | - React-jsinspectortracing 1664 | - React-jsitooling 1665 | - React-jsitracing 1666 | - React-RuntimeCore 1667 | - React-utils 1668 | - React-runtimescheduler (0.79.3): 1669 | - glog 1670 | - hermes-engine 1671 | - RCT-Folly (= 2024.11.18.00) 1672 | - React-callinvoker 1673 | - React-cxxreact 1674 | - React-debug 1675 | - React-featureflags 1676 | - React-hermes 1677 | - React-jsi 1678 | - React-jsinspectortracing 1679 | - React-performancetimeline 1680 | - React-rendererconsistency 1681 | - React-rendererdebug 1682 | - React-runtimeexecutor 1683 | - React-timing 1684 | - React-utils 1685 | - React-timing (0.79.3) 1686 | - React-utils (0.79.3): 1687 | - glog 1688 | - hermes-engine 1689 | - RCT-Folly (= 2024.11.18.00) 1690 | - React-debug 1691 | - React-hermes 1692 | - React-jsi (= 0.79.3) 1693 | - ReactAppDependencyProvider (0.79.3): 1694 | - ReactCodegen 1695 | - ReactCodegen (0.79.3): 1696 | - DoubleConversion 1697 | - glog 1698 | - hermes-engine 1699 | - RCT-Folly 1700 | - RCTRequired 1701 | - RCTTypeSafety 1702 | - React-Core 1703 | - React-debug 1704 | - React-Fabric 1705 | - React-FabricImage 1706 | - React-featureflags 1707 | - React-graphics 1708 | - React-hermes 1709 | - React-jsi 1710 | - React-jsiexecutor 1711 | - React-NativeModulesApple 1712 | - React-RCTAppDelegate 1713 | - React-rendererdebug 1714 | - React-utils 1715 | - ReactCommon/turbomodule/bridging 1716 | - ReactCommon/turbomodule/core 1717 | - ReactCommon (0.79.3): 1718 | - ReactCommon/turbomodule (= 0.79.3) 1719 | - ReactCommon/turbomodule (0.79.3): 1720 | - DoubleConversion 1721 | - fast_float (= 6.1.4) 1722 | - fmt (= 11.0.2) 1723 | - glog 1724 | - hermes-engine 1725 | - RCT-Folly (= 2024.11.18.00) 1726 | - React-callinvoker (= 0.79.3) 1727 | - React-cxxreact (= 0.79.3) 1728 | - React-jsi (= 0.79.3) 1729 | - React-logger (= 0.79.3) 1730 | - React-perflogger (= 0.79.3) 1731 | - ReactCommon/turbomodule/bridging (= 0.79.3) 1732 | - ReactCommon/turbomodule/core (= 0.79.3) 1733 | - ReactCommon/turbomodule/bridging (0.79.3): 1734 | - DoubleConversion 1735 | - fast_float (= 6.1.4) 1736 | - fmt (= 11.0.2) 1737 | - glog 1738 | - hermes-engine 1739 | - RCT-Folly (= 2024.11.18.00) 1740 | - React-callinvoker (= 0.79.3) 1741 | - React-cxxreact (= 0.79.3) 1742 | - React-jsi (= 0.79.3) 1743 | - React-logger (= 0.79.3) 1744 | - React-perflogger (= 0.79.3) 1745 | - ReactCommon/turbomodule/core (0.79.3): 1746 | - DoubleConversion 1747 | - fast_float (= 6.1.4) 1748 | - fmt (= 11.0.2) 1749 | - glog 1750 | - hermes-engine 1751 | - RCT-Folly (= 2024.11.18.00) 1752 | - React-callinvoker (= 0.79.3) 1753 | - React-cxxreact (= 0.79.3) 1754 | - React-debug (= 0.79.3) 1755 | - React-featureflags (= 0.79.3) 1756 | - React-jsi (= 0.79.3) 1757 | - React-logger (= 0.79.3) 1758 | - React-perflogger (= 0.79.3) 1759 | - React-utils (= 0.79.3) 1760 | - RNScreens (4.11.1): 1761 | - DoubleConversion 1762 | - glog 1763 | - hermes-engine 1764 | - RCT-Folly (= 2024.11.18.00) 1765 | - RCTRequired 1766 | - RCTTypeSafety 1767 | - React-Core 1768 | - React-debug 1769 | - React-Fabric 1770 | - React-featureflags 1771 | - React-graphics 1772 | - React-hermes 1773 | - React-ImageManager 1774 | - React-jsi 1775 | - React-NativeModulesApple 1776 | - React-RCTFabric 1777 | - React-RCTImage 1778 | - React-renderercss 1779 | - React-rendererdebug 1780 | - React-utils 1781 | - ReactCodegen 1782 | - ReactCommon/turbomodule/bridging 1783 | - ReactCommon/turbomodule/core 1784 | - RNScreens/common (= 4.11.1) 1785 | - Yoga 1786 | - RNScreens/common (4.11.1): 1787 | - DoubleConversion 1788 | - glog 1789 | - hermes-engine 1790 | - RCT-Folly (= 2024.11.18.00) 1791 | - RCTRequired 1792 | - RCTTypeSafety 1793 | - React-Core 1794 | - React-debug 1795 | - React-Fabric 1796 | - React-featureflags 1797 | - React-graphics 1798 | - React-hermes 1799 | - React-ImageManager 1800 | - React-jsi 1801 | - React-NativeModulesApple 1802 | - React-RCTFabric 1803 | - React-RCTImage 1804 | - React-renderercss 1805 | - React-rendererdebug 1806 | - React-utils 1807 | - ReactCodegen 1808 | - ReactCommon/turbomodule/bridging 1809 | - ReactCommon/turbomodule/core 1810 | - Yoga 1811 | - SocketRocket (0.7.1) 1812 | - Yoga (0.0.0) 1813 | 1814 | DEPENDENCIES: 1815 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) 1816 | - "descope-react-native (from `../node_modules/@descope/react-native-sdk`)" 1817 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) 1818 | - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) 1819 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) 1820 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) 1821 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) 1822 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) 1823 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1824 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) 1825 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) 1826 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`) 1827 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) 1828 | - React (from `../node_modules/react-native/`) 1829 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) 1830 | - React-Core (from `../node_modules/react-native/`) 1831 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`) 1832 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) 1833 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) 1834 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) 1835 | - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) 1836 | - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) 1837 | - React-Fabric (from `../node_modules/react-native/ReactCommon`) 1838 | - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) 1839 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`) 1840 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) 1841 | - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) 1842 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) 1843 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) 1844 | - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) 1845 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) 1846 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) 1847 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) 1848 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) 1849 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) 1850 | - React-jsinspectortracing (from `../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) 1851 | - React-jsitooling (from `../node_modules/react-native/ReactCommon/jsitooling`) 1852 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) 1853 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`) 1854 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) 1855 | - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) 1856 | - react-native-config (from `../node_modules/react-native-config`) 1857 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) 1858 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) 1859 | - React-oscompat (from `../node_modules/react-native/ReactCommon/oscompat`) 1860 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) 1861 | - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) 1862 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) 1863 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) 1864 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) 1865 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) 1866 | - React-RCTFabric (from `../node_modules/react-native/React`) 1867 | - React-RCTFBReactNativeSpec (from `../node_modules/react-native/React`) 1868 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) 1869 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) 1870 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) 1871 | - React-RCTRuntime (from `../node_modules/react-native/React/Runtime`) 1872 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) 1873 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`) 1874 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) 1875 | - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) 1876 | - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) 1877 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) 1878 | - React-rncore (from `../node_modules/react-native/ReactCommon`) 1879 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) 1880 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) 1881 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) 1882 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) 1883 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) 1884 | - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) 1885 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) 1886 | - ReactAppDependencyProvider (from `build/generated/ios`) 1887 | - ReactCodegen (from `build/generated/ios`) 1888 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) 1889 | - RNScreens (from `../node_modules/react-native-screens`) 1890 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) 1891 | 1892 | SPEC REPOS: 1893 | trunk: 1894 | - SocketRocket 1895 | 1896 | EXTERNAL SOURCES: 1897 | boost: 1898 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" 1899 | descope-react-native: 1900 | :path: "../node_modules/@descope/react-native-sdk" 1901 | DoubleConversion: 1902 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" 1903 | fast_float: 1904 | :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" 1905 | FBLazyVector: 1906 | :path: "../node_modules/react-native/Libraries/FBLazyVector" 1907 | fmt: 1908 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 1909 | glog: 1910 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" 1911 | hermes-engine: 1912 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" 1913 | :tag: hermes-2025-06-04-RNv0.79.3-7f9a871eefeb2c3852365ee80f0b6733ec12ac3b 1914 | RCT-Folly: 1915 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" 1916 | RCTDeprecation: 1917 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" 1918 | RCTRequired: 1919 | :path: "../node_modules/react-native/Libraries/Required" 1920 | RCTTypeSafety: 1921 | :path: "../node_modules/react-native/Libraries/TypeSafety" 1922 | React: 1923 | :path: "../node_modules/react-native/" 1924 | React-callinvoker: 1925 | :path: "../node_modules/react-native/ReactCommon/callinvoker" 1926 | React-Core: 1927 | :path: "../node_modules/react-native/" 1928 | React-CoreModules: 1929 | :path: "../node_modules/react-native/React/CoreModules" 1930 | React-cxxreact: 1931 | :path: "../node_modules/react-native/ReactCommon/cxxreact" 1932 | React-debug: 1933 | :path: "../node_modules/react-native/ReactCommon/react/debug" 1934 | React-defaultsnativemodule: 1935 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" 1936 | React-domnativemodule: 1937 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" 1938 | React-Fabric: 1939 | :path: "../node_modules/react-native/ReactCommon" 1940 | React-FabricComponents: 1941 | :path: "../node_modules/react-native/ReactCommon" 1942 | React-FabricImage: 1943 | :path: "../node_modules/react-native/ReactCommon" 1944 | React-featureflags: 1945 | :path: "../node_modules/react-native/ReactCommon/react/featureflags" 1946 | React-featureflagsnativemodule: 1947 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" 1948 | React-graphics: 1949 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" 1950 | React-hermes: 1951 | :path: "../node_modules/react-native/ReactCommon/hermes" 1952 | React-idlecallbacksnativemodule: 1953 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" 1954 | React-ImageManager: 1955 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" 1956 | React-jserrorhandler: 1957 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler" 1958 | React-jsi: 1959 | :path: "../node_modules/react-native/ReactCommon/jsi" 1960 | React-jsiexecutor: 1961 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor" 1962 | React-jsinspector: 1963 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" 1964 | React-jsinspectortracing: 1965 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" 1966 | React-jsitooling: 1967 | :path: "../node_modules/react-native/ReactCommon/jsitooling" 1968 | React-jsitracing: 1969 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/" 1970 | React-logger: 1971 | :path: "../node_modules/react-native/ReactCommon/logger" 1972 | React-Mapbuffer: 1973 | :path: "../node_modules/react-native/ReactCommon" 1974 | React-microtasksnativemodule: 1975 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" 1976 | react-native-config: 1977 | :path: "../node_modules/react-native-config" 1978 | react-native-safe-area-context: 1979 | :path: "../node_modules/react-native-safe-area-context" 1980 | React-NativeModulesApple: 1981 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" 1982 | React-oscompat: 1983 | :path: "../node_modules/react-native/ReactCommon/oscompat" 1984 | React-perflogger: 1985 | :path: "../node_modules/react-native/ReactCommon/reactperflogger" 1986 | React-performancetimeline: 1987 | :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" 1988 | React-RCTActionSheet: 1989 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS" 1990 | React-RCTAnimation: 1991 | :path: "../node_modules/react-native/Libraries/NativeAnimation" 1992 | React-RCTAppDelegate: 1993 | :path: "../node_modules/react-native/Libraries/AppDelegate" 1994 | React-RCTBlob: 1995 | :path: "../node_modules/react-native/Libraries/Blob" 1996 | React-RCTFabric: 1997 | :path: "../node_modules/react-native/React" 1998 | React-RCTFBReactNativeSpec: 1999 | :path: "../node_modules/react-native/React" 2000 | React-RCTImage: 2001 | :path: "../node_modules/react-native/Libraries/Image" 2002 | React-RCTLinking: 2003 | :path: "../node_modules/react-native/Libraries/LinkingIOS" 2004 | React-RCTNetwork: 2005 | :path: "../node_modules/react-native/Libraries/Network" 2006 | React-RCTRuntime: 2007 | :path: "../node_modules/react-native/React/Runtime" 2008 | React-RCTSettings: 2009 | :path: "../node_modules/react-native/Libraries/Settings" 2010 | React-RCTText: 2011 | :path: "../node_modules/react-native/Libraries/Text" 2012 | React-RCTVibration: 2013 | :path: "../node_modules/react-native/Libraries/Vibration" 2014 | React-rendererconsistency: 2015 | :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" 2016 | React-renderercss: 2017 | :path: "../node_modules/react-native/ReactCommon/react/renderer/css" 2018 | React-rendererdebug: 2019 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" 2020 | React-rncore: 2021 | :path: "../node_modules/react-native/ReactCommon" 2022 | React-RuntimeApple: 2023 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" 2024 | React-RuntimeCore: 2025 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 2026 | React-runtimeexecutor: 2027 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" 2028 | React-RuntimeHermes: 2029 | :path: "../node_modules/react-native/ReactCommon/react/runtime" 2030 | React-runtimescheduler: 2031 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" 2032 | React-timing: 2033 | :path: "../node_modules/react-native/ReactCommon/react/timing" 2034 | React-utils: 2035 | :path: "../node_modules/react-native/ReactCommon/react/utils" 2036 | ReactAppDependencyProvider: 2037 | :path: build/generated/ios 2038 | ReactCodegen: 2039 | :path: build/generated/ios 2040 | ReactCommon: 2041 | :path: "../node_modules/react-native/ReactCommon" 2042 | RNScreens: 2043 | :path: "../node_modules/react-native-screens" 2044 | Yoga: 2045 | :path: "../node_modules/react-native/ReactCommon/yoga" 2046 | 2047 | SPEC CHECKSUMS: 2048 | boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 2049 | descope-react-native: e214f5dc2dc67a7cff9db37efe44adea2f42e949 2050 | DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb 2051 | fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 2052 | FBLazyVector: a62a7a5760929b6265e27bc01ab7598dde93ebd3 2053 | fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd 2054 | glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 2055 | hermes-engine: 94ed01537bdeccaab1adbf94b040d115d6fa1a7f 2056 | RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82 2057 | RCTDeprecation: c3e3f5b4ea83e7ff3bc86ce09e2a54b7affd687d 2058 | RCTRequired: ee438439880dffc9425930d1dd1a3c883ee6879c 2059 | RCTTypeSafety: fe728195791e1a0222aa83596a570cf377cd475e 2060 | React: 114ee161feb204412580928b743e6716aebac987 2061 | React-callinvoker: d175cf3640a993f6cd960044a7657543157f0ba9 2062 | React-Core: cd487c9eeb125c902242bcc76ced12e14adf4ea4 2063 | React-CoreModules: 202df4f342e5c2893d5d1899b2856879a90d4bf1 2064 | React-cxxreact: 72be57cebb9976199e6130ec6f9d511c6ae3b310 2065 | React-debug: 5414189118050ebad6c701942c01c63bb499f5a6 2066 | React-defaultsnativemodule: d9683a9187744c14c6ce7eb1a1a3649d33591e43 2067 | React-domnativemodule: ea54d8fd1ee946a97654635f5a4d9245f6588006 2068 | React-Fabric: 3cdce860fd1079c27f8cd8e029f716e6c4b34a4e 2069 | React-FabricComponents: 126c59bb8d69d795492e2a2c97a0c1738a29730b 2070 | React-FabricImage: 6cf335909c59746e7aca2180901367978cc21959 2071 | React-featureflags: 670eb7cdf1495ea7bf392f653c19268291acaad1 2072 | React-featureflagsnativemodule: 16b4eae0bf4d838e0a807c6b0cde2b4ae84534ef 2073 | React-graphics: 0d6b3201d0414e56897f09693df82d601cac0613 2074 | React-hermes: a40e47b18c31efe4baa7942357e2327ddab63918 2075 | React-idlecallbacksnativemodule: 37c6d6053ad5123405b0fbb695c44841273482dd 2076 | React-ImageManager: 1f5cb695a06454329759bfce8548ac0d4fcd069e 2077 | React-jserrorhandler: a8214a9f297af6ee3cb004e2cb5185214cfc4360 2078 | React-jsi: ae02c9d6d68dbed80a9fde8f6d6198035ca154ce 2079 | React-jsiexecutor: 8c266057f23430685a2d928703e77eda80e1742e 2080 | React-jsinspector: 8789c28cbd63ff818d23550556490883caa89cdb 2081 | React-jsinspectortracing: 150180f7ed6fd2252308b5608b62ea698ca087b6 2082 | React-jsitooling: 1fd5c99a3688a5152781be4ecfb88ca9c6cb11d8 2083 | React-jsitracing: c87b3d789f4d5053a2518fb8202c1e1ccd6848a9 2084 | React-logger: 514fac028fee60c84591f951c7c04ba1c5023334 2085 | React-Mapbuffer: fae8da2c01aeb7f26ad739731b6dba61fd02fd97 2086 | React-microtasksnativemodule: 20454ffccff553f0ee73fd20873aa8555a5867fb 2087 | react-native-config: 644074ab88db883fcfaa584f03520ec29589d7df 2088 | react-native-safe-area-context: 5594ec631ede9c311c5c0efa244228eff845ce88 2089 | React-NativeModulesApple: 65b2735133d6ce8a3cb5f23215ef85e427b0139c 2090 | React-oscompat: f26aa2a4adc84c34212ab12c07988fe19e9cf16a 2091 | React-perflogger: e15a0d43d1928e1c82f4f0b7fc05f7e9bccfede8 2092 | React-performancetimeline: 064f2767a5d4d71547ea32a3cd8a76a101dfd11f 2093 | React-RCTActionSheet: c89c8b9b7c3ef87cb6a67e20f5eaea271f4b5f67 2094 | React-RCTAnimation: e00af558ccb5fedd380ae32329be4c38e92e9b90 2095 | React-RCTAppDelegate: 10d98d4867643322fa4fcd04548359ac88c74656 2096 | React-RCTBlob: ef645bccf9c33d3b4391794983744da897474dfb 2097 | React-RCTFabric: 06ff9416fc48742bba58ed81a0d0a62bf0f8c7ec 2098 | React-RCTFBReactNativeSpec: e0942c2c7efa10303c63e287c1c1788aeb6d99ef 2099 | React-RCTImage: 0e3669a0bda8995874736d0f8f12c21d522df3c4 2100 | React-RCTLinking: bd81ec3d1b6686a7c58bc8ed8b7a1f05ff2b3f8b 2101 | React-RCTNetwork: 20b8044841a043b80e7027e1bc4049ffa552d1fa 2102 | React-RCTRuntime: 0084733b33619670bea35cb02c96412d9271718e 2103 | React-RCTSettings: fa1d3e6c302e9980b5670315e2ccc998255ce32a 2104 | React-RCTText: 71f01a9261c015b76702e9d7a4153c9ca45f2341 2105 | React-RCTVibration: 0e05fa4647ec1391c409fcc1cbd7cdb4894d80ef 2106 | React-rendererconsistency: 6a79c0a31890942940480f6e761365c4f604394f 2107 | React-renderercss: 18c7ae4971ae6eb6c6c1d4c8f241a856a8e4243f 2108 | React-rendererdebug: d621c08946310b44e58a80b6bf96a6c13e779cff 2109 | React-rncore: 91456f1e8feadf5216b37073968c16c14061f8d7 2110 | React-RuntimeApple: 013c318ce9b3506b4fc7abe67369fdd14fc18bea 2111 | React-RuntimeCore: 66eaaf42eae393a1d592557493a70b80f051f885 2112 | React-runtimeexecutor: 4e7bc0119ff38f80df43d109ef9508497cac1eee 2113 | React-RuntimeHermes: 2878d6e471ac3eb88ecc946d07938c4f9ec4f63e 2114 | React-runtimescheduler: ea0278e84e37a64a0f02b5bcb98fec1d49450fe7 2115 | React-timing: 4e298a80e9a41c31d884df0422c9eb73a240ec0d 2116 | React-utils: fbb79f805d13e0613bc1f799c7bbe5659a0d5ba9 2117 | ReactAppDependencyProvider: e6d0c3c3cc9862a3ccef0c252835cd7ccb96313d 2118 | ReactCodegen: c2f2ec5dd32215237420bedebae0e66867e1e8ea 2119 | ReactCommon: e243aa261effc83c10208f0794bade55ca9ae5b6 2120 | RNScreens: 482e9707f9826230810c92e765751af53826d509 2121 | SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 2122 | Yoga: 29f74a5b77dca8c37669e1e1e867e5f4e12407df 2123 | 2124 | PODFILE CHECKSUM: b66bbb90cf5ec964eb6e3f89d0458be7232eb866 2125 | 2126 | COCOAPODS: 1.16.2 2127 | --------------------------------------------------------------------------------