expo-template-bare-minimum 48.0.18 → 49.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,7 @@
1
1
  apply plugin: "com.android.application"
2
2
  apply plugin: "com.facebook.react"
3
3
 
4
- import com.android.build.OutputFile
5
-
6
4
  def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()
7
- def expoDebuggableVariants = ['debug']
8
- // Override `debuggableVariants` for expo-updates debugging
9
- if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == "1") {
10
- react {
11
- expoDebuggableVariants = []
12
- }
13
- }
14
-
15
5
 
16
6
  /**
17
7
  * This is the configuration block to customize your React Native Android app.
@@ -21,17 +11,20 @@ react {
21
11
  entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim())
22
12
  reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
23
13
  hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc"
24
- debuggableVariants = expoDebuggableVariants
14
+ codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
15
+
16
+ // Use Expo CLI to bundle the app, this ensures the Metro config
17
+ // works correctly with Expo projects.
18
+ cliFile = new File(["node", "--print", "require.resolve('@expo/cli')"].execute(null, rootDir).text.trim())
19
+ bundleCommand = "export:embed"
25
20
 
26
21
  /* Folders */
27
22
  // The root of your project, i.e. where "package.json" lives. Default is '..'
28
23
  // root = file("../")
29
24
  // The folder where the react-native NPM package is. Default is ../node_modules/react-native
30
25
  // reactNativeDir = file("../node_modules/react-native")
31
- // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen
32
- // codegenDir = file("../node_modules/react-native-codegen")
33
- // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
34
- // cliFile = file("../node_modules/react-native/cli.js")
26
+ // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
27
+ // codegenDir = file("../node_modules/@react-native/codegen")
35
28
 
36
29
  /* Variants */
37
30
  // The list of variants to that are debuggable. For those we're going to
@@ -42,9 +35,7 @@ react {
42
35
  /* Bundling */
43
36
  // A list containing the node command and its flags. Default is just 'node'.
44
37
  // nodeExecutableAndArgs = ["node"]
45
- //
46
- // The command to run when bundling. By default is 'bundle'
47
- // bundleCommand = "ram-bundle"
38
+
48
39
  //
49
40
  // The path to the CLI configuration file. Default is empty.
50
41
  // bundleConfig = file(../rn-cli.config.js)
@@ -67,19 +58,6 @@ react {
67
58
  // hermesFlags = ["-O", "-output-source-map"]
68
59
  }
69
60
 
70
- // Override `hermesEnabled` by `expo.jsEngine`
71
- ext {
72
- hermesEnabled = (findProperty('expo.jsEngine') ?: "hermes") == "hermes"
73
- }
74
-
75
- /**
76
- * Set this to true to create four separate APKs instead of one,
77
- * one for each native architecture. This is useful if you don't
78
- * use App Bundles (https://developer.android.com/guide/app-bundle/)
79
- * and want to have separate APKs to upload to the Play Store.
80
- */
81
- def enableSeparateBuildPerCPUArchitecture = false
82
-
83
61
  /**
84
62
  * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
85
63
  */
@@ -98,16 +76,6 @@ def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInRelea
98
76
  */
99
77
  def jscFlavor = 'org.webkit:android-jsc:+'
100
78
 
101
- /**
102
- * Private function to get the list of Native Architectures you want to build.
103
- * This reads the value from reactNativeArchitectures in your gradle.properties
104
- * file and works together with the --active-arch-only flag of react-native run-android.
105
- */
106
- def reactNativeArchitectures() {
107
- def value = project.getProperties().get("reactNativeArchitectures")
108
- return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
109
- }
110
-
111
79
  android {
112
80
  ndkVersion rootProject.ext.ndkVersion
113
81
 
@@ -121,15 +89,6 @@ android {
121
89
  versionCode 1
122
90
  versionName "1.0"
123
91
  }
124
-
125
- splits {
126
- abi {
127
- reset()
128
- enable enableSeparateBuildPerCPUArchitecture
129
- universalApk false // If true, also generate a universal APK
130
- include (*reactNativeArchitectures())
131
- }
132
- }
133
92
  signingConfigs {
134
93
  debug {
135
94
  storeFile file('debug.keystore')
@@ -151,22 +110,6 @@ android {
151
110
  proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
152
111
  }
153
112
  }
154
-
155
- // applicationVariants are e.g. debug, release
156
- applicationVariants.all { variant ->
157
- variant.outputs.each { output ->
158
- // For each separate APK per architecture, set a unique version code as described here:
159
- // https://developer.android.com/studio/build/configure-apk-splits.html
160
- // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
161
- def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
162
- def abi = output.getFilter(OutputFile.ABI)
163
- if (abi != null) { // null for the universal-debug, universal-release variants
164
- output.versionCodeOverride =
165
- defaultConfig.versionCode * 1000 + versionCodes.get(abi)
166
- }
167
-
168
- }
169
- }
170
113
  }
171
114
 
172
115
  // Apply static values from `gradle.properties` to the `android.packagingOptions`
@@ -218,8 +161,6 @@ dependencies {
218
161
  }
219
162
  }
220
163
 
221
- implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
222
-
223
164
  debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
224
165
  debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
225
166
  exclude group:'com.squareup.okhttp3', module:'okhttp'
@@ -40,10 +40,7 @@ public class MainActivity extends ReactActivity {
40
40
  this,
41
41
  getMainComponentName(),
42
42
  // If you opted-in for the New Architecture, we enable the Fabric Renderer.
43
- DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled
44
- // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).
45
- DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled
46
- ));
43
+ DefaultNewArchitectureEntryPoint.getFabricEnabled()));
47
44
  }
48
45
 
49
46
  /**
@@ -37,7 +37,7 @@ public class MainApplication extends Application implements ReactApplication {
37
37
 
38
38
  @Override
39
39
  protected String getJSMainModuleName() {
40
- return "index";
40
+ return ".expo/.virtual-metro-entry";
41
41
  }
42
42
 
43
43
  @Override
@@ -20,7 +20,7 @@
20
20
  android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
21
21
 
22
22
  <selector>
23
- <!--
23
+ <!--
24
24
  This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
25
25
  The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
26
26
  NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
@@ -19,7 +19,7 @@ buildscript {
19
19
  mavenCentral()
20
20
  }
21
21
  dependencies {
22
- classpath('com.android.tools.build:gradle:7.4.1')
22
+ classpath('com.android.tools.build:gradle:7.4.2')
23
23
  classpath('com.facebook.react:react-native-gradle-plugin')
24
24
  }
25
25
  }
@@ -1,5 +1,6 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
4
+ networkTimeout=10000
4
5
  zipStoreBase=GRADLE_USER_HOME
5
6
  zipStorePath=wrapper/dists
@@ -26,7 +26,7 @@ android.useAndroidX=true
26
26
  android.enableJetifier=true
27
27
 
28
28
  # Version of flipper SDK to use with React Native
29
- FLIPPER_VERSION=0.125.0
29
+ FLIPPER_VERSION=0.182.0
30
30
 
31
31
  # Use this property to specify which architecture you want to build.
32
32
  # You can also override it from the CLI using
@@ -40,9 +40,9 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
40
40
  # are providing them.
41
41
  newArchEnabled=false
42
42
 
43
- # The hosted JavaScript engine
44
- # Supported values: expo.jsEngine = "hermes" | "jsc"
45
- expo.jsEngine=hermes
43
+ # Use this property to enable or disable the Hermes JS engine.
44
+ # If set to false, you will be using JSC instead.
45
+ hermesEnabled=true
46
46
 
47
47
  # Enable GIF support in React Native images (~200 B increase)
48
48
  expo.gif.enabled=true
@@ -51,3 +51,6 @@ expo.webp.enabled=true
51
51
  # Enable animated webp support (~3.4 MB increase)
52
52
  # Disabled by default because iOS doesn't support animated webp
53
53
  expo.webp.animated=false
54
+
55
+ # Remove this workaround when upgrading to react-native@0.72.1
56
+ kotlin.jvm.target.validation.mode=warning
@@ -7,4 +7,4 @@ apply from: new File(["node", "--print", "require.resolve('@react-native-communi
7
7
  applyNativeModulesSettingsGradle(settings)
8
8
 
9
9
  include ':app'
10
- includeBuild(new File(["node", "--print", "require.resolve('react-native-gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile())
10
+ includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile())
package/gitignore CHANGED
@@ -1,55 +1,35 @@
1
- # OSX
2
- #
3
- .DS_Store
1
+ # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
4
2
 
5
- # Xcode
6
- #
7
- build/
8
- *.pbxuser
9
- !default.pbxuser
10
- *.mode1v3
11
- !default.mode1v3
12
- *.mode2v3
13
- !default.mode2v3
14
- *.perspectivev3
15
- !default.perspectivev3
16
- xcuserdata
17
- *.xccheckout
18
- *.moved-aside
19
- DerivedData
20
- *.hmap
21
- *.ipa
22
- *.xcuserstate
23
- project.xcworkspace
24
-
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
-
37
- # node.js
38
- #
3
+ # dependencies
39
4
  node_modules/
40
- npm-debug.log
41
- yarn-error.log
42
5
 
43
- # Bundle artifacts
44
- *.jsbundle
6
+ # Expo
7
+ .expo/
8
+ dist/
9
+ web-build/
45
10
 
46
- # CocoaPods
47
- /ios/Pods/
11
+ # Native
12
+ *.orig.*
13
+ *.jks
14
+ *.p8
15
+ *.p12
16
+ *.key
17
+ *.mobileprovision
48
18
 
49
- # Temporary files created by Metro to check the health of the file watcher
19
+ # Metro
50
20
  .metro-health-check*
51
21
 
52
- # Expo
53
- .expo/
54
- web-build/
55
- dist/
22
+ # debug
23
+ npm-debug.*
24
+ yarn-debug.*
25
+ yarn-error.*
26
+
27
+ # macOS
28
+ .DS_Store
29
+ *.pem
30
+
31
+ # local env files
32
+ .env*.local
33
+
34
+ # typescript
35
+ *.tsbuildinfo
@@ -0,0 +1 @@
1
+ export NODE_BINARY="/Users/brentvatne/.nvm/versions/node/v16.18.1/bin/node"
@@ -19,22 +19,12 @@
19
19
  - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
20
20
  {
21
21
  #if DEBUG
22
- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
22
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
23
23
  #else
24
24
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
25
25
  #endif
26
26
  }
27
27
 
28
- /// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.
29
- ///
30
- /// @see: https://reactjs.org/blog/2022/03/29/react-v18.html
31
- /// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).
32
- /// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.
33
- - (BOOL)concurrentRootEnabled
34
- {
35
- return true;
36
- }
37
-
38
28
  // Linking API
39
29
  - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
40
30
  return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
@@ -51,5 +51,7 @@
51
51
  <false/>
52
52
  <key>UIStatusBarStyle</key>
53
53
  <string>UIStatusBarStyleDefault</string>
54
+ <key>CADisableMinimumFrameDurationOnPhone</key>
55
+ <true/>
54
56
  </dict>
55
57
  </plist>
@@ -17,7 +17,6 @@
17
17
  /* End PBXBuildFile section */
18
18
 
19
19
  /* Begin PBXFileReference section */
20
- 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
21
20
  13B07F961A680F5B00A75B9A /* HelloWorld.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorld.app; sourceTree = BUILT_PRODUCTS_DIR; };
22
21
  13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = HelloWorld/AppDelegate.h; sourceTree = "<group>"; };
23
22
  13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = HelloWorld/AppDelegate.mm; sourceTree = "<group>"; };
@@ -49,7 +48,6 @@
49
48
  isa = PBXGroup;
50
49
  children = (
51
50
  BB2F792B24A3F905000567C9 /* Supporting */,
52
- 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
53
51
  13B07FAF1A68108700A75B9A /* AppDelegate.h */,
54
52
  13B07FB01A68108700A75B9A /* AppDelegate.mm */,
55
53
  13B07FB51A68108700A75B9A /* Images.xcassets */,
@@ -214,7 +212,7 @@
214
212
  );
215
213
  runOnlyForDeploymentPostprocessing = 0;
216
214
  shellPath = /bin/sh;
217
- shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" $PROJECT_ROOT ios relative | tail -n 1)\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
215
+ shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli')\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
218
216
  };
219
217
  08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
220
218
  isa = PBXShellScriptBuildPhase;
@@ -276,7 +274,7 @@
276
274
  );
277
275
  runOnlyForDeploymentPostprocessing = 0;
278
276
  shellPath = /bin/sh;
279
- shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n";
277
+ shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('expo/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n";
280
278
  showEnvVarsInLog = 0;
281
279
  };
282
280
  /* End PBXShellScriptBuildPhase section */
package/ios/Podfile CHANGED
@@ -1,6 +1,5 @@
1
1
  require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
2
2
  require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
3
- require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
4
3
 
5
4
  require 'json'
6
5
  podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
@@ -62,8 +61,6 @@ target 'HelloWorld' do
62
61
  react_native_post_install(
63
62
  installer,
64
63
  config[:reactNativePath],
65
- # Set `mac_catalyst_enabled` to `true` in order to apply patches
66
- # necessary for Mac Catalyst builds
67
64
  :mac_catalyst_enabled => false
68
65
  )
69
66
  __apply_Xcode_12_5_M1_post_install_workaround(installer)
package/metro.config.js CHANGED
@@ -1,4 +1,7 @@
1
1
  // Learn more https://docs.expo.io/guides/customizing-metro
2
2
  const { getDefaultConfig } = require('expo/metro-config');
3
3
 
4
- module.exports = getDefaultConfig(__dirname);
4
+ /** @type {import('expo/metro-config').MetroConfig} */
5
+ const config = getDefaultConfig(__dirname);
6
+
7
+ module.exports = config;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-template-bare-minimum",
3
3
  "description": "This bare project template includes a minimal setup for using unimodules with React Native.",
4
- "version": "48.0.18",
4
+ "version": "49.0.0",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
7
  "start": "expo start --dev-client",
@@ -10,11 +10,11 @@
10
10
  "web": "expo start --web"
11
11
  },
12
12
  "dependencies": {
13
- "expo": "~48.0.18",
14
- "expo-splash-screen": "~0.18.2",
15
- "expo-status-bar": "~1.4.4",
13
+ "expo": "~49.0.0-alpha.5",
14
+ "expo-splash-screen": "~0.20.0",
15
+ "expo-status-bar": "~1.6.0",
16
16
  "react": "18.2.0",
17
- "react-native": "0.71.8"
17
+ "react-native": "0.72.0-rc.6"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@babel/core": "^7.20.0"