diff --git a/packages/TesterApp/.gitignore b/packages/TesterApp/.gitignore
index cead506cb..1204d234c 100644
--- a/packages/TesterApp/.gitignore
+++ b/packages/TesterApp/.gitignore
@@ -20,6 +20,7 @@ DerivedData
*.hmap
*.ipa
*.xcuserstate
+**/.xcode.env
**/.xcode.env.local
# Android/IntelliJ
diff --git a/packages/TesterApp/.watchmanconfig b/packages/TesterApp/.watchmanconfig
deleted file mode 100644
index 9e26dfeeb..000000000
--- a/packages/TesterApp/.watchmanconfig
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/packages/TesterApp/Gemfile b/packages/TesterApp/Gemfile
index 1ef62e84d..a020a0e38 100644
--- a/packages/TesterApp/Gemfile
+++ b/packages/TesterApp/Gemfile
@@ -3,7 +3,6 @@ source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '>= 2.6.10'
-# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
-# bound in the template on Cocoapods with next React Native release.
-gem 'cocoapods', '>= 1.13', '< 1.15'
-gem 'activesupport', '>= 6.1.7.5', '< 7.1.0'
+# Exclude problematic versions of cocoapods and activesupport that causes build failures.
+gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
+gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
diff --git a/packages/TesterApp/Gemfile.lock b/packages/TesterApp/Gemfile.lock
index 262e5c671..93b4ad5c6 100644
--- a/packages/TesterApp/Gemfile.lock
+++ b/packages/TesterApp/Gemfile.lock
@@ -1,26 +1,35 @@
GEM
remote: https://rubygems.org/
specs:
- CFPropertyList (3.0.6)
+ CFPropertyList (3.0.7)
+ base64
+ nkf
rexml
- activesupport (7.0.8)
+ activesupport (7.1.3.3)
+ base64
+ bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
+ connection_pool (>= 2.2.5)
+ drb
i18n (>= 1.6, < 2)
minitest (>= 5.1)
+ mutex_m
tzinfo (~> 2.0)
- addressable (2.8.5)
+ addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
+ base64 (0.2.0)
+ bigdecimal (3.1.8)
claide (1.1.0)
- cocoapods (1.14.2)
+ cocoapods (1.15.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.14.2)
+ cocoapods-core (= 1.15.2)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 2.0)
+ cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
@@ -33,7 +42,7 @@ GEM
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.23.0, < 2.0)
- cocoapods-core (1.14.2)
+ cocoapods-core (1.15.2)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
@@ -44,7 +53,7 @@ GEM
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
- cocoapods-downloader (2.0)
+ cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
@@ -53,31 +62,38 @@ GEM
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
- concurrent-ruby (1.2.2)
+ concurrent-ruby (1.3.1)
+ connection_pool (2.4.1)
+ drb (2.2.1)
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
- ffi (1.16.3)
+ ffi (1.17.0)
+ ffi (1.17.0-arm64-darwin)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
- i18n (1.14.1)
+ i18n (1.14.5)
concurrent-ruby (~> 1.0)
- json (2.6.3)
- minitest (5.20.0)
+ json (2.7.2)
+ minitest (5.23.1)
molinillo (0.8.0)
+ mutex_m (0.2.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
+ nkf (0.2.0)
public_suffix (4.0.7)
- rexml (3.2.6)
+ rexml (3.2.8)
+ strscan (>= 3.0.9)
ruby-macho (2.5.1)
- typhoeus (1.4.0)
+ strscan (3.1.0)
+ typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- xcodeproj (1.23.0)
+ xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
@@ -91,8 +107,8 @@ PLATFORMS
ruby
DEPENDENCIES
- activesupport (>= 6.1.7.5, < 7.1.0)
- cocoapods (>= 1.13, < 1.15)
+ activesupport (>= 6.1.7.5, != 7.1.0)
+ cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
RUBY VERSION
ruby 2.7.6p219
diff --git a/packages/TesterApp/android/app/build.gradle b/packages/TesterApp/android/app/build.gradle
deleted file mode 100644
index a6acf6056..000000000
--- a/packages/TesterApp/android/app/build.gradle
+++ /dev/null
@@ -1,125 +0,0 @@
-apply plugin: "com.android.application"
-apply plugin: "org.jetbrains.kotlin.android"
-apply plugin: "com.facebook.react"
-
-apply from: file("../resolveNodePackage.gradle")
-
-def reactNativeRoot = resolveNodePackage('react-native', rootDir)
-def reactNativeCodegenPath = resolveNodePackage('@react-native/codegen', reactNativeRoot)
-def cliPlatformAndroidPath = resolveNodePackage('@react-native-community/cli-platform-android', reactNativeRoot)
-
-/**
- * This is the configuration block to customize your React Native Android app.
- * By default you don't need to apply any configuration, just uncomment the lines you need.
- */
-react {
- /* Folders */
- // The root of your project, i.e. where "package.json" lives. Default is '..'
- // root = file("../")
- // The folder where the react-native NPM package is. Default is ../node_modules/react-native
- // reactNativeDir = file("../node_modules/react-native")
- // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
- codegenDir = reactNativeCodegenPath
- // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
- // cliFile = file("../node_modules/react-native/cli.js")
-
- /* Variants */
- // The list of variants to that are debuggable. For those we're going to
- // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
- // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
- // debuggableVariants = ["liteDebug", "prodDebug"]
-
- /* Bundling */
- // A list containing the node command and its flags. Default is just 'node'.
- // nodeExecutableAndArgs = ["node"]
- //
- // The command to run when bundling. By default is 'bundle'
- bundleCommand = "webpack-bundle"
- //
- // The path to the CLI configuration file. Default is empty.
- // bundleConfig = file(../rn-cli.config.js)
- //
- // The name of the generated asset file containing your JS bundle
- // bundleAssetName = "MyApplication.android.bundle"
- //
- // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
- // entryFile = file("../js/MyApplication.android.js")
- //
- // A list of extra flags to pass to the 'bundle' commands.
- // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
- // extraPackagerArgs = []
-
- /* Hermes Commands */
- // The hermes compiler command to run. By default it is 'hermesc'
- // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
- //
- // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
- // hermesFlags = ["-O", "-output-source-map"]
-}
-
-/**
- * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
- */
-def enableProguardInReleaseBuilds = false
-
-/**
- * The preferred build flavor of JavaScriptCore (JSC)
- *
- * For example, to use the international variant, you can use:
- * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
- *
- * The international variant includes ICU i18n library and necessary data
- * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
- * give correct results when using with locales other than en-US. Note that
- * this variant is about 6MiB larger per architecture than default.
- */
-def jscFlavor = 'org.webkit:android-jsc:+'
-
-android {
- ndkVersion rootProject.ext.ndkVersion
-
- buildToolsVersion rootProject.ext.buildToolsVersion
- compileSdk rootProject.ext.compileSdkVersion
-
- namespace "com.testerapp"
- defaultConfig {
- applicationId "com.testerapp"
- minSdkVersion rootProject.ext.minSdkVersion
- targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 1
- versionName "1.0"
- }
- signingConfigs {
- debug {
- storeFile file('debug.keystore')
- storePassword 'android'
- keyAlias 'androiddebugkey'
- keyPassword 'android'
- }
- }
- buildTypes {
- debug {
- signingConfig signingConfigs.debug
- }
- release {
- // Caution! In production, you need to generate your own keystore file.
- // see https://reactnative.dev/docs/signed-apk-android.
- signingConfig signingConfigs.debug
- minifyEnabled enableProguardInReleaseBuilds
- proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
- }
- }
-}
-
-dependencies {
- // The version of react-native is set by the React Native Gradle Plugin
- implementation("com.facebook.react:react-android")
-
- if (hermesEnabled.toBoolean()) {
- implementation("com.facebook.react:hermes-android")
- } else {
- implementation jscFlavor
- }
-}
-
-apply from: new File(cliPlatformAndroidPath, "native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
diff --git a/packages/TesterApp/android/app/proguard-rules.pro b/packages/TesterApp/android/app/proguard-rules.pro
deleted file mode 100644
index 3cc0f30e4..000000000
--- a/packages/TesterApp/android/app/proguard-rules.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
--keep class com.facebook.hermes.unicode.** { *; }
--keep class com.facebook.jni.** { *; }
diff --git a/packages/TesterApp/android/app/src/debug/AndroidManifest.xml b/packages/TesterApp/android/app/src/debug/AndroidManifest.xml
deleted file mode 100644
index 4b185bc15..000000000
--- a/packages/TesterApp/android/app/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/packages/TesterApp/android/app/src/main/AndroidManifest.xml b/packages/TesterApp/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 07d6364c9..000000000
--- a/packages/TesterApp/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/TesterApp/android/app/src/main/java/com/testerapp/MainActivity.kt b/packages/TesterApp/android/app/src/main/java/com/testerapp/MainActivity.kt
deleted file mode 100644
index 7166eb7c8..000000000
--- a/packages/TesterApp/android/app/src/main/java/com/testerapp/MainActivity.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.testerapp
-
-import com.facebook.react.ReactActivity
-import com.facebook.react.ReactActivityDelegate
-import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
-import com.facebook.react.defaults.DefaultReactActivityDelegate
-
-class MainActivity : ReactActivity() {
-
- /**
- * Returns the name of the main component registered from JavaScript. This is used to schedule
- * rendering of the component.
- */
- override fun getMainComponentName(): String = "TesterApp"
-
- /**
- * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
- * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
- */
- override fun createReactActivityDelegate(): ReactActivityDelegate =
- DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
-}
\ No newline at end of file
diff --git a/packages/TesterApp/android/app/src/main/java/com/testerapp/MainApplication.kt b/packages/TesterApp/android/app/src/main/java/com/testerapp/MainApplication.kt
deleted file mode 100644
index 7e575e69e..000000000
--- a/packages/TesterApp/android/app/src/main/java/com/testerapp/MainApplication.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.testerapp
-
-import android.app.Application
-import com.facebook.react.PackageList
-import com.facebook.react.ReactApplication
-import com.facebook.react.ReactHost
-import com.facebook.react.ReactNativeHost
-import com.facebook.react.ReactPackage
-import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
-import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
-import com.facebook.react.defaults.DefaultReactNativeHost
-import com.facebook.soloader.SoLoader
-
-class MainApplication : Application(), ReactApplication {
-
- override val reactNativeHost: ReactNativeHost =
- object : DefaultReactNativeHost(this) {
- override fun getPackages(): List {
- // Packages that cannot be autolinked yet can be added manually here, for example:
- // packages.add(new MyReactNativePackage());
- return PackageList(this).packages
- }
-
- override fun getJSMainModuleName(): String = "index"
-
- override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
-
- override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
- override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
- }
-
- override val reactHost: ReactHost
- get() = getDefaultReactHost(applicationContext, reactNativeHost)
-
- override fun onCreate() {
- super.onCreate()
- SoLoader.init(this, false)
- if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
- // If you opted-in for the New Architecture, we load the native entry point for this app.
- load(bridgelessEnabled = true)
- }
- }
-}
diff --git a/packages/TesterApp/android/app/src/main/res/drawable/rn_edit_text_material.xml b/packages/TesterApp/android/app/src/main/res/drawable/rn_edit_text_material.xml
deleted file mode 100644
index 73b37e4d9..000000000
--- a/packages/TesterApp/android/app/src/main/res/drawable/rn_edit_text_material.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index a2f590828..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index 1b5239980..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index ff10afd6e..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 115a4c768..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index dcd3cd808..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 459ca609d..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 8ca12fe02..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index 8e19b410a..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index b824ebdd4..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index 4c19a13c2..000000000
Binary files a/packages/TesterApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ
diff --git a/packages/TesterApp/android/app/src/main/res/values/strings.xml b/packages/TesterApp/android/app/src/main/res/values/strings.xml
deleted file mode 100644
index 975e9de25..000000000
--- a/packages/TesterApp/android/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- TesterApp
-
diff --git a/packages/TesterApp/android/app/src/main/res/values/styles.xml b/packages/TesterApp/android/app/src/main/res/values/styles.xml
deleted file mode 100644
index d435cfae5..000000000
--- a/packages/TesterApp/android/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
diff --git a/packages/TesterApp/android/build.gradle b/packages/TesterApp/android/build.gradle
index 719023797..d8bcc3aeb 100644
--- a/packages/TesterApp/android/build.gradle
+++ b/packages/TesterApp/android/build.gradle
@@ -1,23 +1,43 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
buildscript {
- ext {
- buildToolsVersion = "34.0.0"
- minSdkVersion = 23
- compileSdkVersion = 34
- targetSdkVersion = 34
- ndkVersion = "26.1.10909125"
- kotlinVersion = "1.9.22"
- }
+ apply(from: {
+ def searchDir = rootDir.toPath()
+ do {
+ def p = searchDir.resolve("node_modules/react-native-test-app/android/dependencies.gradle")
+ if (p.toFile().exists()) {
+ return p.toRealPath().toString()
+ }
+ } while (searchDir = searchDir.getParent())
+ throw new GradleException("Could not find `react-native-test-app`");
+ }())
+
repositories {
- google()
mavenCentral()
+ google()
}
+
dependencies {
- classpath("com.android.tools.build:gradle")
- classpath("com.facebook.react:react-native-gradle-plugin")
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
+ getReactNativeDependencies().each { dependency ->
+ classpath(dependency)
+ }
}
}
-apply plugin: "com.facebook.react.rootproject"
+allprojects {
+ repositories {
+ maven {
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
+ url({
+ def searchDir = rootDir.toPath()
+ do {
+ def p = searchDir.resolve("node_modules/react-native/android")
+ if (p.toFile().exists()) {
+ return p.toRealPath().toString()
+ }
+ } while (searchDir = searchDir.getParent())
+ throw new GradleException("Could not find `react-native`");
+ }())
+ }
+ mavenCentral()
+ google()
+ }
+}
diff --git a/packages/TesterApp/android/app/debug.keystore b/packages/TesterApp/android/debug.keystore
similarity index 100%
rename from packages/TesterApp/android/app/debug.keystore
rename to packages/TesterApp/android/debug.keystore
diff --git a/packages/TesterApp/android/gradle.properties b/packages/TesterApp/android/gradle.properties
index 99fc223ed..0c541f3a9 100644
--- a/packages/TesterApp/android/gradle.properties
+++ b/packages/TesterApp/android/gradle.properties
@@ -7,22 +7,23 @@
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
-org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
-
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
+# Specifies the JVM arguments used for the Gradle Daemon. The setting is
+# particularly useful for configuring JVM memory settings for build performance.
+# This does not affect the JVM settings for the Gradle client VM.
+# The default is `-Xmx512m -XX:MaxMetaspaceSize=256m`.
+org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+
+# When configured, Gradle will fork up to org.gradle.workers.max JVMs to execute
+# projects in parallel. To learn more about parallel task execution, see the
+# section on Gradle build performance:
+# https://docs.gradle.org/current/userguide/performance.html#parallel_execution.
+# Default is `false`.
+#org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
-# Automatically convert third-party libraries to use AndroidX
-android.enableJetifier=true
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
@@ -34,8 +35,15 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
+# Note that this is incompatible with web debugging.
newArchEnabled=true
+bridgelessEnabled=true
+
+# Uncomment the line below to build React Native from source.
+#react.buildFromSource=true
+
+# Version of Android NDK to build against.
+#ANDROID_NDK_VERSION=26.1.10909125
-# Use this property to enable or disable the Hermes JS engine.
-# If set to false, you will be using JSC instead.
-hermesEnabled=true
+# Version of Kotlin to build against.
+#KOTLIN_VERSION=1.8.22
diff --git a/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.jar b/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.jar
index 7f93135c4..d64cd4917 100644
Binary files a/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.jar and b/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.properties b/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.properties
index 2ea3535dc..b82aa23a4 100644
--- a/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/TesterApp/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/packages/TesterApp/android/gradlew.bat b/packages/TesterApp/android/gradlew.bat
index 25da30dbd..7101f8e46 100644
--- a/packages/TesterApp/android/gradlew.bat
+++ b/packages/TesterApp/android/gradlew.bat
@@ -1,92 +1,92 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%"=="" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%"=="" set DIRNAME=.
-@rem This is normally unused
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if %ERRORLEVEL% equ 0 goto execute
-
-echo. 1>&2
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
-echo. 1>&2
-echo Please set the JAVA_HOME variable in your environment to match the 1>&2
-echo location of your Java installation. 1>&2
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo. 1>&2
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
-echo. 1>&2
-echo Please set the JAVA_HOME variable in your environment to match the 1>&2
-echo location of your Java installation. 1>&2
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if %ERRORLEVEL% equ 0 goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-set EXIT_CODE=%ERRORLEVEL%
-if %EXIT_CODE% equ 0 set EXIT_CODE=1
-if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
-exit /b %EXIT_CODE%
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/packages/TesterApp/android/resolveNodePackage.gradle b/packages/TesterApp/android/resolveNodePackage.gradle
deleted file mode 100644
index b14515b0c..000000000
--- a/packages/TesterApp/android/resolveNodePackage.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// source: https://github.com/facebook/react-native/pull/39520
-// TODO remove in the future when this lands in RN
-
-ext.resolveNodePackage = { String packageName, File startDir ->
- def candidate
-
- def osName = System.getProperty("os.name").toLowerCase()
- if (osName.contains("win")) {
- // for Windows OS
- candidate = new File(startDir, "node_modules\\$packageName")
- } else {
- // for Unix-likely OS (MacOS/Linux)
- candidate = new File(startDir, "node_modules/$packageName")
- }
-
- if (candidate.exists()) {
- // workaround for `candidate.canonicalPath` because it doesn't resolve final path to symlink on Windows
- return new File(candidate.toPath().toRealPath().toString())
- }
-
- def parentDir = startDir.parentFile
- if (parentDir == null || startDir.canonicalPath == parentDir.canonicalPath) {
- throw new GradleException("Failed to find the package '$packageName'. Ensure you have installed node_modules.")
- }
-
- return resolveNodePackage(packageName, parentDir)
-}
diff --git a/packages/TesterApp/android/settings.gradle b/packages/TesterApp/android/settings.gradle
index 370fbf89f..965be5285 100644
--- a/packages/TesterApp/android/settings.gradle
+++ b/packages/TesterApp/android/settings.gradle
@@ -1,12 +1,21 @@
-apply from: "./resolveNodePackage.gradle"
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ mavenCentral()
+ google()
+ }
+}
-rootProject.name = 'TesterApp'
+rootProject.name = "TesterApp"
-def reactNativePath = resolveNodePackage('react-native', rootDir)
-def cliPlatformAndroidPath = resolveNodePackage('@react-native-community/cli-platform-android', reactNativePath)
-def gradlePluginPath = resolveNodePackage("@react-native/gradle-plugin", reactNativePath)
-
-apply from: new File(cliPlatformAndroidPath, "native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
-
-include ':app'
-includeBuild(gradlePluginPath)
+apply(from: {
+ def searchDir = rootDir.toPath()
+ do {
+ def p = searchDir.resolve("node_modules/react-native-test-app/test-app.gradle")
+ if (p.toFile().exists()) {
+ return p.toRealPath().toString()
+ }
+ } while (searchDir = searchDir.getParent())
+ throw new GradleException("Could not find `react-native-test-app`");
+}())
+applyTestAppSettings(settings)
diff --git a/packages/TesterApp/app.json b/packages/TesterApp/app.json
index 15df36da4..29d848b2a 100644
--- a/packages/TesterApp/app.json
+++ b/packages/TesterApp/app.json
@@ -1,4 +1,39 @@
{
+ "$schema": "https://raw.githubusercontent.com/microsoft/react-native-test-app/trunk/schema.json",
"name": "TesterApp",
- "displayName": "TesterApp"
-}
\ No newline at end of file
+ "displayName": "TesterApp",
+ "singleApp": "tester-app",
+ "components": [
+ {
+ "appKey": "TesterApp",
+ "displayName": "TesterApp",
+ "slug": "tester-app"
+ }
+ ],
+ "android": {
+ "package": "com.testerapp",
+ "signingConfigs": {
+ "debug": {
+ "storeFile": "android/debug.keystore"
+ },
+ "release": {
+ "storeFile": "android/debug.keystore"
+ }
+ }
+ },
+ "ios": {
+ "bundleIdentifier": "com.testerapp"
+ },
+ "resources": {
+ "android": [
+ "build/output/android/index.android.bundle",
+ "build/output/android/src_asyncChunks_Async_local_tsx.chunk.bundle",
+ "build/output/android/res"
+ ],
+ "ios": [
+ "build/output/ios/main.jsbundle",
+ "build/output/ios/src_asyncChunks_Async_local_tsx.chunk.bundle",
+ "build/output/ios/assets"
+ ]
+ }
+}
diff --git a/packages/TesterApp/ios/Podfile b/packages/TesterApp/ios/Podfile
index 898f5116b..05a2fa50d 100644
--- a/packages/TesterApp/ios/Podfile
+++ b/packages/TesterApp/ios/Podfile
@@ -1,41 +1,15 @@
-# Resolve react_native_pods.rb with node to allow for hoisting
-require Pod::Executable.execute_command('node', ['-p',
- 'require.resolve(
- "react-native/scripts/react_native_pods.rb",
- {paths: [process.argv[1]]},
- )', __dir__]).strip
+ws_dir = Pathname.new(__dir__)
+ws_dir = ws_dir.parent until
+ File.exist?("#{ws_dir}/node_modules/react-native-test-app/test_app.rb") ||
+ ws_dir.expand_path.to_s == '/'
+require "#{ws_dir}/node_modules/react-native-test-app/test_app.rb"
-platform :ios, min_ios_version_supported
-prepare_react_native_project!
+workspace 'TesterApp.xcworkspace'
-linkage = ENV['USE_FRAMEWORKS']
-if linkage != nil
- Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
- use_frameworks! :linkage => linkage.to_sym
-end
+options = {
+ :bridgeless_enabled => true,
+ :fabric_enabled => true,
+ :hermes_enabled => true,
+}
-target 'TesterApp' do
- config = use_native_modules!
-
- use_react_native!(
- :path => config[:reactNativePath],
-
- # An absolute path to your application root.
- :app_path => "#{Pod::Config.instance.installation_root}/.."
- )
-
- target 'TesterAppTests' do
- inherit! :complete
- # Pods for testing
- end
-
- post_install do |installer|
- # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
- react_native_post_install(
- installer,
- config[:reactNativePath],
- :mac_catalyst_enabled => false,
- # :ccache_enabled => true
- )
- end
-end
+use_test_app! options
diff --git a/packages/TesterApp/ios/Podfile.lock b/packages/TesterApp/ios/Podfile.lock
index 81a690c20..bf8c72609 100644
--- a/packages/TesterApp/ios/Podfile.lock
+++ b/packages/TesterApp/ios/Podfile.lock
@@ -1,6 +1,6 @@
PODS:
- boost (1.83.0)
- - callstack-repack (4.0.0):
+ - callstack-repack (4.1.1):
- DoubleConversion
- glog
- hermes-engine
@@ -1188,6 +1188,33 @@ PODS:
- React-logger (= 0.74.1)
- React-perflogger (= 0.74.1)
- React-utils (= 0.74.1)
+ - ReactNativeHost (0.4.9):
+ - DoubleConversion
+ - glog
+ - hermes-engine
+ - RCT-Folly (= 2024.01.01.00)
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Codegen
+ - React-Core
+ - React-cxxreact
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-NativeModulesApple
+ - React-RCTAppDelegate
+ - React-RCTFabric
+ - React-rendererdebug
+ - React-utils
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - Yoga
+ - ReactTestApp-DevSupport (3.7.4):
+ - React-Core
+ - React-jsi
+ - ReactTestApp-Resources (1.0.0-dev)
- RNCAsyncStorage (1.23.1):
- DoubleConversion
- glog
@@ -1209,7 +1236,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- - RNSVG (15.2.0-rc.0):
+ - RNSVG (15.3.0):
- DoubleConversion
- glog
- hermes-engine
@@ -1229,9 +1256,9 @@ PODS:
- React-utils
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - RNSVG/common (= 15.2.0-rc.0)
+ - RNSVG/common (= 15.3.0)
- Yoga
- - RNSVG/common (15.2.0-rc.0):
+ - RNSVG/common (15.3.0):
- DoubleConversion
- glog
- hermes-engine
@@ -1315,6 +1342,9 @@ DEPENDENCIES:
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - "ReactNativeHost (from `../../../node_modules/.pnpm/react-native-test-app@3.7.4_react-native@0.74.1_@babel+core@7.24.0_@babel+preset-env@7.24.0_@_xo2g2bdwyxr2iccu654qlqc2hi/node_modules/@rnx-kit/react-native-host`)"
+ - ReactTestApp-DevSupport (from `../node_modules/react-native-test-app`)
+ - ReactTestApp-Resources (from `..`)
- "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
- RNSVG (from `../node_modules/react-native-svg`)
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
@@ -1435,6 +1465,12 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/react/utils"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
+ ReactNativeHost:
+ :path: "../../../node_modules/.pnpm/react-native-test-app@3.7.4_react-native@0.74.1_@babel+core@7.24.0_@babel+preset-env@7.24.0_@_xo2g2bdwyxr2iccu654qlqc2hi/node_modules/@rnx-kit/react-native-host"
+ ReactTestApp-DevSupport:
+ :path: "../node_modules/react-native-test-app"
+ ReactTestApp-Resources:
+ :path: ".."
RNCAsyncStorage:
:path: "../node_modules/@react-native-async-storage/async-storage"
RNSVG:
@@ -1444,7 +1480,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost: d3f49c53809116a5d38da093a8aa78bf551aed09
- callstack-repack: cbf8c428d7450053e3d46c987c5929928986f5a6
+ callstack-repack: 13c4bb5459eb864c64f3f00052877481da47d777
DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
@@ -1498,12 +1534,15 @@ SPEC CHECKSUMS:
React-runtimescheduler: e2152ed146b6a35c07386fc2ac4827b27e6aad12
React-utils: 3285151c9d1e3a28a9586571fc81d521678c196d
ReactCommon: f42444e384d82ab89184aed5d6f3142748b54768
+ ReactNativeHost: 76f58edded6537ed8a03cfce6327e31d667bd802
+ ReactTestApp-DevSupport: 21c31f059f9dfb146ae31469b50a4ccb5ff221f3
+ ReactTestApp-Resources: 0fa9146ee546fb7447198c96d852a56b8e3bb94a
RNCAsyncStorage: f2add1326156dc313df59d855c11f459059e4ffd
- RNSVG: 5aca9d537e92d2a0282f69350b5d441f23271e62
+ RNSVG: 7b44aa4df2587946e28496adf2e10a16f08c1250
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6
Yoga: b9a182ab00cf25926e7f79657d08c5d23c2d03b0
-PODFILE CHECKSUM: 9c707e53c2ce4ed1572c73e490ef5ab242dd35fb
+PODFILE CHECKSUM: 6d7cbe03444d5e87210979fb32a0eca299d758fe
-COCOAPODS: 1.14.2
+COCOAPODS: 1.15.2
diff --git a/packages/TesterApp/ios/TesterApp.xcodeproj/project.pbxproj b/packages/TesterApp/ios/TesterApp.xcodeproj/project.pbxproj
deleted file mode 100644
index d0c2639e3..000000000
--- a/packages/TesterApp/ios/TesterApp.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,721 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXBuildFile section */
- 00E356F31AD99517003FC87E /* TesterAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* TesterAppTests.m */; };
- 0C80B921A6F3F58F76C31292 /* libPods-TesterApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-TesterApp.a */; };
- 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
- 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
- 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- 7699B88040F8A987B510C191 /* libPods-TesterApp-TesterAppTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-TesterApp-TesterAppTests.a */; };
- 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
- C67AEDD08E814A95121C8C61 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 223B0ACBAC4B47A809783144 /* PrivacyInfo.xcprivacy */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
- remoteInfo = TesterApp;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 00E356EE1AD99517003FC87E /* TesterAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TesterAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 00E356F21AD99517003FC87E /* TesterAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TesterAppTests.m; sourceTree = ""; };
- 13B07F961A680F5B00A75B9A /* TesterApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TesterApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = TesterApp/AppDelegate.h; sourceTree = ""; };
- 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = TesterApp/AppDelegate.mm; sourceTree = ""; };
- 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = TesterApp/Images.xcassets; sourceTree = ""; };
- 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = TesterApp/Info.plist; sourceTree = ""; };
- 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = TesterApp/main.m; sourceTree = ""; };
- 19F6CBCC0A4E27FBF8BF4A61 /* libPods-TesterApp-TesterAppTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TesterApp-TesterAppTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 223B0ACBAC4B47A809783144 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = TesterApp/PrivacyInfo.xcprivacy; sourceTree = ""; };
- 3B4392A12AC88292D35C810B /* Pods-TesterApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TesterApp.debug.xcconfig"; path = "Target Support Files/Pods-TesterApp/Pods-TesterApp.debug.xcconfig"; sourceTree = ""; };
- 5709B34CF0A7D63546082F79 /* Pods-TesterApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TesterApp.release.xcconfig"; path = "Target Support Files/Pods-TesterApp/Pods-TesterApp.release.xcconfig"; sourceTree = ""; };
- 5B7EB9410499542E8C5724F5 /* Pods-TesterApp-TesterAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TesterApp-TesterAppTests.debug.xcconfig"; path = "Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests.debug.xcconfig"; sourceTree = ""; };
- 5DCACB8F33CDC322A6C60F78 /* libPods-TesterApp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TesterApp.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = TesterApp/LaunchScreen.storyboard; sourceTree = ""; };
- 89C6BE57DB24E9ADA2F236DE /* Pods-TesterApp-TesterAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TesterApp-TesterAppTests.release.xcconfig"; path = "Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests.release.xcconfig"; sourceTree = ""; };
- AA4FB0D02BD6DA6C00447184 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = TesterApp/PrivacyInfo.xcprivacy; sourceTree = ""; };
- ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 00E356EB1AD99517003FC87E /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 7699B88040F8A987B510C191 /* libPods-TesterApp-TesterAppTests.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 0C80B921A6F3F58F76C31292 /* libPods-TesterApp.a in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 00E356EF1AD99517003FC87E /* TesterAppTests */ = {
- isa = PBXGroup;
- children = (
- 00E356F21AD99517003FC87E /* TesterAppTests.m */,
- 00E356F01AD99517003FC87E /* Supporting Files */,
- );
- path = TesterAppTests;
- sourceTree = "";
- };
- 00E356F01AD99517003FC87E /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 00E356F11AD99517003FC87E /* Info.plist */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- 13B07FAE1A68108700A75B9A /* TesterApp */ = {
- isa = PBXGroup;
- children = (
- AA4FB0D02BD6DA6C00447184 /* PrivacyInfo.xcprivacy */,
- 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
- 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
- 13B07FB51A68108700A75B9A /* Images.xcassets */,
- 13B07FB61A68108700A75B9A /* Info.plist */,
- 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
- 13B07FB71A68108700A75B9A /* main.m */,
- 223B0ACBAC4B47A809783144 /* PrivacyInfo.xcprivacy */,
- );
- name = TesterApp;
- sourceTree = "";
- };
- 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
- 5DCACB8F33CDC322A6C60F78 /* libPods-TesterApp.a */,
- 19F6CBCC0A4E27FBF8BF4A61 /* libPods-TesterApp-TesterAppTests.a */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
- isa = PBXGroup;
- children = (
- );
- name = Libraries;
- sourceTree = "";
- };
- 83CBB9F61A601CBA00E9B192 = {
- isa = PBXGroup;
- children = (
- 13B07FAE1A68108700A75B9A /* TesterApp */,
- 832341AE1AAA6A7D00B99B32 /* Libraries */,
- 00E356EF1AD99517003FC87E /* TesterAppTests */,
- 83CBBA001A601CBA00E9B192 /* Products */,
- 2D16E6871FA4F8E400B85C8A /* Frameworks */,
- BBD78D7AC51CEA395F1C20DB /* Pods */,
- );
- indentWidth = 2;
- sourceTree = "";
- tabWidth = 2;
- usesTabs = 0;
- };
- 83CBBA001A601CBA00E9B192 /* Products */ = {
- isa = PBXGroup;
- children = (
- 13B07F961A680F5B00A75B9A /* TesterApp.app */,
- 00E356EE1AD99517003FC87E /* TesterAppTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- BBD78D7AC51CEA395F1C20DB /* Pods */ = {
- isa = PBXGroup;
- children = (
- 3B4392A12AC88292D35C810B /* Pods-TesterApp.debug.xcconfig */,
- 5709B34CF0A7D63546082F79 /* Pods-TesterApp.release.xcconfig */,
- 5B7EB9410499542E8C5724F5 /* Pods-TesterApp-TesterAppTests.debug.xcconfig */,
- 89C6BE57DB24E9ADA2F236DE /* Pods-TesterApp-TesterAppTests.release.xcconfig */,
- );
- path = Pods;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 00E356ED1AD99517003FC87E /* TesterAppTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "TesterAppTests" */;
- buildPhases = (
- A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
- 00E356EA1AD99517003FC87E /* Sources */,
- 00E356EB1AD99517003FC87E /* Frameworks */,
- 00E356EC1AD99517003FC87E /* Resources */,
- C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */,
- F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */,
- );
- buildRules = (
- );
- dependencies = (
- 00E356F51AD99517003FC87E /* PBXTargetDependency */,
- );
- name = TesterAppTests;
- productName = TesterAppTests;
- productReference = 00E356EE1AD99517003FC87E /* TesterAppTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
- 13B07F861A680F5B00A75B9A /* TesterApp */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "TesterApp" */;
- buildPhases = (
- C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
- 13B07F871A680F5B00A75B9A /* Sources */,
- 13B07F8C1A680F5B00A75B9A /* Frameworks */,
- 13B07F8E1A680F5B00A75B9A /* Resources */,
- 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
- 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
- E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = TesterApp;
- productName = TesterApp;
- productReference = 13B07F961A680F5B00A75B9A /* TesterApp.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 83CBB9F71A601CBA00E9B192 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 1210;
- TargetAttributes = {
- 00E356ED1AD99517003FC87E = {
- CreatedOnToolsVersion = 6.2;
- TestTargetID = 13B07F861A680F5B00A75B9A;
- };
- 13B07F861A680F5B00A75B9A = {
- LastSwiftMigration = 1120;
- };
- };
- };
- buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "TesterApp" */;
- compatibilityVersion = "Xcode 12.0";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 83CBB9F61A601CBA00E9B192;
- productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 13B07F861A680F5B00A75B9A /* TesterApp */,
- 00E356ED1AD99517003FC87E /* TesterAppTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 00E356EC1AD99517003FC87E /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 13B07F8E1A680F5B00A75B9A /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
- 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
- C67AEDD08E814A95121C8C61 /* PrivacyInfo.xcprivacy in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "$(SRCROOT)/.xcode.env.local",
- "$(SRCROOT)/.xcode.env",
- );
- name = "Bundle React Native code and images";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nexport BUNDLE_COMMAND=webpack-bundle\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
- };
- 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-TesterApp-TesterAppTests-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- 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";
- showEnvVarsInLog = 0;
- };
- C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-TesterApp-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- 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";
- showEnvVarsInLog = 0;
- };
- C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-resources-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-resources-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TesterApp/Pods-TesterApp-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-resources-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-resources-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TesterApp-TesterAppTests/Pods-TesterApp-TesterAppTests-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 00E356EA1AD99517003FC87E /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 00E356F31AD99517003FC87E /* TesterAppTests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 13B07F871A680F5B00A75B9A /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
- 13B07FC11A68108700A75B9A /* main.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 13B07F861A680F5B00A75B9A /* TesterApp */;
- targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin XCBuildConfiguration section */
- 00E356F61AD99517003FC87E /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-TesterApp-TesterAppTests.debug.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- INFOPLIST_FILE = TesterAppTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- "@loader_path/Frameworks",
- );
- OTHER_LDFLAGS = (
- "-ObjC",
- "-lc++",
- "$(inherited)",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TesterApp.app/TesterApp";
- };
- name = Debug;
- };
- 00E356F71AD99517003FC87E /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-TesterApp-TesterAppTests.release.xcconfig */;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- COPY_PHASE_STRIP = NO;
- INFOPLIST_FILE = TesterAppTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- "@loader_path/Frameworks",
- );
- OTHER_LDFLAGS = (
- "-ObjC",
- "-lc++",
- "$(inherited)",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TesterApp.app/TesterApp";
- };
- name = Release;
- };
- 13B07F941A680F5B00A75B9A /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-TesterApp.debug.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = ZK8L4ATDPD;
- ENABLE_BITCODE = NO;
- INFOPLIST_FILE = TesterApp/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- MARKETING_VERSION = 1.0;
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-ObjC",
- "-lc++",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = TesterApp;
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Debug;
- };
- 13B07F951A680F5B00A75B9A /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-TesterApp.release.xcconfig */;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CLANG_ENABLE_MODULES = YES;
- CURRENT_PROJECT_VERSION = 1;
- DEVELOPMENT_TEAM = ZK8L4ATDPD;
- INFOPLIST_FILE = TesterApp/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- MARKETING_VERSION = 1.0;
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-ObjC",
- "-lc++",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
- PRODUCT_NAME = TesterApp;
- SWIFT_VERSION = 5.0;
- VERSIONING_SYSTEM = "apple-generic";
- };
- name = Release;
- };
- 83CBBA201A601CBA00E9B192 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CC = "";
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "c++20";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- CXX = "";
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
- );
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
- LD = "";
- LDPLUSPLUS = "";
- LD_RUNPATH_SEARCH_PATHS = (
- /usr/lib/swift,
- "$(inherited)",
- );
- LIBRARY_SEARCH_PATHS = (
- "\"$(SDKROOT)/usr/lib/swift\"",
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
- "\"$(inherited)\"",
- );
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- OTHER_CFLAGS = (
- "$(inherited)",
- "-DRN_FABRIC_ENABLED",
- );
- OTHER_CPLUSPLUSFLAGS = (
- "$(OTHER_CFLAGS)",
- "-DFOLLY_NO_CONFIG",
- "-DFOLLY_MOBILE=1",
- "-DFOLLY_USE_LIBCPP=1",
- "-DRN_FABRIC_ENABLED",
- "-DFOLLY_HAVE_CLOCK_GETTIME=1",
- );
- OTHER_LDFLAGS = "$(inherited)";
- REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
- SDKROOT = iphoneos;
- USE_HERMES = true;
- };
- name = Debug;
- };
- 83CBBA211A601CBA00E9B192 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CC = "";
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "c++20";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = YES;
- CXX = "";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.4;
- LD = "";
- LDPLUSPLUS = "";
- LD_RUNPATH_SEARCH_PATHS = (
- /usr/lib/swift,
- "$(inherited)",
- );
- LIBRARY_SEARCH_PATHS = (
- "\"$(SDKROOT)/usr/lib/swift\"",
- "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
- "\"$(inherited)\"",
- );
- MTL_ENABLE_DEBUG_INFO = NO;
- OTHER_CFLAGS = (
- "$(inherited)",
- "-DRN_FABRIC_ENABLED",
- );
- OTHER_CPLUSPLUSFLAGS = (
- "$(OTHER_CFLAGS)",
- "-DFOLLY_NO_CONFIG",
- "-DFOLLY_MOBILE=1",
- "-DFOLLY_USE_LIBCPP=1",
- "-DRN_FABRIC_ENABLED",
- "-DFOLLY_HAVE_CLOCK_GETTIME=1",
- );
- OTHER_LDFLAGS = "$(inherited)";
- REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
- SDKROOT = iphoneos;
- USE_HERMES = true;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "TesterAppTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 00E356F61AD99517003FC87E /* Debug */,
- 00E356F71AD99517003FC87E /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "TesterApp" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 13B07F941A680F5B00A75B9A /* Debug */,
- 13B07F951A680F5B00A75B9A /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "TesterApp" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 83CBBA201A601CBA00E9B192 /* Debug */,
- 83CBBA211A601CBA00E9B192 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
-}
diff --git a/packages/TesterApp/ios/TesterApp.xcodeproj/xcshareddata/xcschemes/TesterApp.xcscheme b/packages/TesterApp/ios/TesterApp.xcodeproj/xcshareddata/xcschemes/TesterApp.xcscheme
deleted file mode 100644
index ea8a1aaeb..000000000
--- a/packages/TesterApp/ios/TesterApp.xcodeproj/xcshareddata/xcschemes/TesterApp.xcscheme
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/TesterApp/ios/TesterApp.xcworkspace/contents.xcworkspacedata b/packages/TesterApp/ios/TesterApp.xcworkspace/contents.xcworkspacedata
index cfd25c8ab..57f64952a 100644
--- a/packages/TesterApp/ios/TesterApp.xcworkspace/contents.xcworkspacedata
+++ b/packages/TesterApp/ios/TesterApp.xcworkspace/contents.xcworkspacedata
@@ -2,7 +2,7 @@
+ location = "group:../node_modules/.generated/ios/ReactTestApp.xcodeproj">
diff --git a/packages/TesterApp/ios/TesterApp/AppDelegate.h b/packages/TesterApp/ios/TesterApp/AppDelegate.h
deleted file mode 100644
index 5d2808256..000000000
--- a/packages/TesterApp/ios/TesterApp/AppDelegate.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#import
-#import
-
-@interface AppDelegate : RCTAppDelegate
-
-@end
diff --git a/packages/TesterApp/ios/TesterApp/AppDelegate.mm b/packages/TesterApp/ios/TesterApp/AppDelegate.mm
deleted file mode 100644
index 01b1f4bf0..000000000
--- a/packages/TesterApp/ios/TesterApp/AppDelegate.mm
+++ /dev/null
@@ -1,30 +0,0 @@
-#import "AppDelegate.h"
-
-#import
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- self.moduleName = @"TesterApp";
- // You can add your custom initial props in the dictionary below.
- // They will be passed down to the ViewController used by React Native.
- self.initialProps = @{};
-
- return [super application:application didFinishLaunchingWithOptions:launchOptions];
-}
-
-- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
-{
- return [self bundleURL];
-}
-- (NSURL *)bundleURL
-{
-#if DEBUG
- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
-#else
- return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
-#endif
-}
-
-@end
diff --git a/packages/TesterApp/ios/TesterApp/Images.xcassets/AppIcon.appiconset/Contents.json b/packages/TesterApp/ios/TesterApp/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 81213230d..000000000
--- a/packages/TesterApp/ios/TesterApp/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "20x20"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "20x20"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "29x29"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "29x29"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "40x40"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "40x40"
- },
- {
- "idiom" : "iphone",
- "scale" : "2x",
- "size" : "60x60"
- },
- {
- "idiom" : "iphone",
- "scale" : "3x",
- "size" : "60x60"
- },
- {
- "idiom" : "ios-marketing",
- "scale" : "1x",
- "size" : "1024x1024"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/packages/TesterApp/ios/TesterApp/Images.xcassets/Contents.json b/packages/TesterApp/ios/TesterApp/Images.xcassets/Contents.json
deleted file mode 100644
index 2d92bd53f..000000000
--- a/packages/TesterApp/ios/TesterApp/Images.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
diff --git a/packages/TesterApp/ios/TesterApp/Info.plist b/packages/TesterApp/ios/TesterApp/Info.plist
deleted file mode 100644
index 6311672e1..000000000
--- a/packages/TesterApp/ios/TesterApp/Info.plist
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- TesterApp
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- $(MARKETING_VERSION)
- CFBundleSignature
- ????
- CFBundleVersion
- $(CURRENT_PROJECT_VERSION)
- LSRequiresIPhoneOS
-
- NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
- NSAllowsLocalNetworking
-
-
- NSLocationWhenInUseUsageDescription
-
- UILaunchStoryboardName
- LaunchScreen
- UIRequiredDeviceCapabilities
-
- arm64
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UIUserInterfaceStyle
- Light
- UIViewControllerBasedStatusBarAppearance
-
-
-
diff --git a/packages/TesterApp/ios/TesterApp/LaunchScreen.storyboard b/packages/TesterApp/ios/TesterApp/LaunchScreen.storyboard
deleted file mode 100644
index fbcf0b83f..000000000
--- a/packages/TesterApp/ios/TesterApp/LaunchScreen.storyboard
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/TesterApp/ios/TesterApp/PrivacyInfo.xcprivacy b/packages/TesterApp/ios/TesterApp/PrivacyInfo.xcprivacy
deleted file mode 100644
index 41b8317f0..000000000
--- a/packages/TesterApp/ios/TesterApp/PrivacyInfo.xcprivacy
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
- NSPrivacyAccessedAPITypes
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategoryFileTimestamp
- NSPrivacyAccessedAPITypeReasons
-
- C617.1
-
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategoryUserDefaults
- NSPrivacyAccessedAPITypeReasons
-
- CA92.1
-
-
-
- NSPrivacyAccessedAPIType
- NSPrivacyAccessedAPICategorySystemBootTime
- NSPrivacyAccessedAPITypeReasons
-
- 35F9.1
-
-
-
- NSPrivacyCollectedDataTypes
-
- NSPrivacyTracking
-
-
-
diff --git a/packages/TesterApp/ios/TesterApp/main.m b/packages/TesterApp/ios/TesterApp/main.m
deleted file mode 100644
index d645c7246..000000000
--- a/packages/TesterApp/ios/TesterApp/main.m
+++ /dev/null
@@ -1,10 +0,0 @@
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/packages/TesterApp/ios/TesterAppTests/Info.plist b/packages/TesterApp/ios/TesterAppTests/Info.plist
deleted file mode 100644
index ba72822e8..000000000
--- a/packages/TesterApp/ios/TesterAppTests/Info.plist
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1
-
-
diff --git a/packages/TesterApp/ios/TesterAppTests/TesterAppTests.m b/packages/TesterApp/ios/TesterAppTests/TesterAppTests.m
deleted file mode 100644
index 1db3d0d53..000000000
--- a/packages/TesterApp/ios/TesterAppTests/TesterAppTests.m
+++ /dev/null
@@ -1,66 +0,0 @@
-#import
-#import
-
-#import
-#import
-
-#define TIMEOUT_SECONDS 600
-#define TEXT_TO_LOOK_FOR @"Welcome to React"
-
-@interface TesterAppTests : XCTestCase
-
-@end
-
-@implementation TesterAppTests
-
-- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
-{
- if (test(view)) {
- return YES;
- }
- for (UIView *subview in [view subviews]) {
- if ([self findSubviewInView:subview matching:test]) {
- return YES;
- }
- }
- return NO;
-}
-
-- (void)testRendersWelcomeScreen
-{
- UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
- NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
- BOOL foundElement = NO;
-
- __block NSString *redboxError = nil;
-#ifdef DEBUG
- RCTSetLogFunction(
- ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
- if (level >= RCTLogLevelError) {
- redboxError = message;
- }
- });
-#endif
-
- while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
- [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
- [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
-
- foundElement = [self findSubviewInView:vc.view
- matching:^BOOL(UIView *view) {
- if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
- return YES;
- }
- return NO;
- }];
- }
-
-#ifdef DEBUG
- RCTSetLogFunction(RCTDefaultLogFunction);
-#endif
-
- XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
- XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
-}
-
-@end
diff --git a/packages/TesterApp/package.json b/packages/TesterApp/package.json
index 90a6afefc..f57c70942 100644
--- a/packages/TesterApp/package.json
+++ b/packages/TesterApp/package.json
@@ -4,10 +4,12 @@
"private": true,
"scripts": {
"android": "react-native run-android",
+ "android:release": "node ./scripts/release.js android",
"ios": "react-native run-ios",
+ "ios:release": "node ./scripts/release.js ios",
"start": "react-native webpack-start",
- "bundle:android": "react-native webpack-bundle --platform android --entry-file index.js --dev=false --bundle-output build/output/android/index.android.bundle",
- "bundle:ios": "react-native webpack-bundle --platform ios --entry-file index.js --dev=false --bundle-output build/output/ios/main.jsbundle",
+ "bundle:android": "react-native webpack-bundle --platform android --entry-file index.js --dev=false --bundle-output build/output/android/index.android.bundle --assets-dest build/output/android/res",
+ "bundle:ios": "react-native webpack-bundle --platform ios --entry-file index.js --dev=false --bundle-output build/output/ios/main.jsbundle --assets-dest build/output/ios",
"webpack": "webpack -c webpack.config.js --env platform=android --env mode=production",
"test": "vitest run",
"serve-remote-assets:android": "adb reverse tcp:9999 tcp:9999 && pnpm http-server -p 9999 build/output/android/remote",
@@ -17,7 +19,7 @@
"@react-native-async-storage/async-storage": "^1.23.1",
"react": "18.2.0",
"react-native": "0.74.1",
- "react-native-svg": "15.2.0-rc.0"
+ "react-native-svg": "15.3.0"
},
"devDependencies": {
"@babel/core": "^7.23.9",
@@ -34,6 +36,7 @@
"get-port": "^6.1.2",
"globby": "^13.1.2",
"http-server": "^14.1.1",
+ "react-native-test-app": "^3.7.4",
"prettier": "^3.2.4",
"react-native-event-source": "^1.1.0",
"terser-webpack-plugin": "^5.3.3",
diff --git a/packages/TesterApp/react-native.config.js b/packages/TesterApp/react-native.config.js
index d4f5f41c7..2f7653e16 100644
--- a/packages/TesterApp/react-native.config.js
+++ b/packages/TesterApp/react-native.config.js
@@ -1,3 +1,13 @@
+const { configureProjects } = require('react-native-test-app');
+
module.exports = {
+ project: configureProjects({
+ android: {
+ sourceDir: 'android',
+ },
+ ios: {
+ sourceDir: 'ios',
+ },
+ }),
commands: require('@callstack/repack/commands'),
};
diff --git a/packages/TesterApp/scripts/release.js b/packages/TesterApp/scripts/release.js
new file mode 100644
index 000000000..329b46786
--- /dev/null
+++ b/packages/TesterApp/scripts/release.js
@@ -0,0 +1,46 @@
+const { execSync } = require('child_process');
+const { rm, existsSync } = require('fs');
+
+function runCommand(command) {
+ try {
+ execSync(command, { stdio: 'inherit' });
+ } catch (error) {
+ console.error(`Error executing command: ${command}`, error);
+ process.exit(1);
+ }
+}
+
+function buildIOS() {
+ runCommand('pnpm bundle:ios');
+ process.chdir('./ios');
+ runCommand('bundle exec pod install');
+ runCommand('npx react-native run-ios --mode "Release"');
+}
+
+function buildAndroid() {
+ runCommand('pnpm bundle:android');
+ runCommand(
+ 'npx react-native run-android --tasks assembleRelease,installRelease'
+ );
+}
+
+const buildDir = 'build/generated';
+
+if (existsSync(buildDir)) {
+ rm(buildDir, { recursive: true }, (err) => {
+ if (err) {
+ console.error('Error removing build directory:', err);
+ process.exit(1);
+ }
+ });
+}
+
+const platform = process.argv[2] || '';
+if (platform === 'ios') {
+ buildIOS();
+} else if (platform === 'android') {
+ buildAndroid();
+} else {
+ console.error('Please specify either "ios" or "android" as an argument.');
+ process.exit(1);
+}
diff --git a/packages/TesterApp/webpack.config.mjs b/packages/TesterApp/webpack.config.mjs
index 3ae15bc5a..abc94a496 100644
--- a/packages/TesterApp/webpack.config.mjs
+++ b/packages/TesterApp/webpack.config.mjs
@@ -57,17 +57,20 @@ export default (env) => {
*/
devtool: false,
context,
- // commented out for now, lazy comp needs specific port to be reversed
- // experiments: {
- // lazyCompilation: devServer && {
- // imports: true,
- // entries: false,
- // },
- // },
- cache: {
- type: 'filesystem',
- name: `${platform}-${mode}`,
- },
+ experiments: process.env.LAZY_COMPILATION
+ ? {
+ lazyCompilation: devServer && {
+ imports: true,
+ entries: false,
+ },
+ }
+ : undefined,
+ cache: process.env.NO_CACHE
+ ? undefined
+ : {
+ type: 'filesystem',
+ name: `${platform}-${mode}`,
+ },
/**
* `getInitializationEntries` will return necessary entries with setup and initialization code.
* If you don't want to use Hot Module Replacement, set `hmr` option to `false`. By default,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 894475c61..c3ecbb715 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -135,8 +135,8 @@ importers:
specifier: 0.74.1
version: 0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0)
react-native-svg:
- specifier: 15.2.0-rc.0
- version: 15.2.0-rc.0(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0)
+ specifier: 15.3.0
+ version: 15.3.0(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0)
devDependencies:
'@babel/core':
specifier: ^7.23.9
@@ -186,6 +186,9 @@ importers:
react-native-event-source:
specifier: ^1.1.0
version: 1.1.0
+ react-native-test-app:
+ specifier: ^3.7.4
+ version: 3.7.4(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0)
terser-webpack-plugin:
specifier: ^5.3.3
version: 5.3.10(webpack@5.91.0)
@@ -1778,6 +1781,11 @@ packages:
resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==}
engines: {node: '>=14.15'}
+ '@rnx-kit/react-native-host@0.4.9':
+ resolution: {integrity: sha512-S8cp6sOLDsrW5bYk6LEoxU90UEms/eC2J2inF4UJ2p/AT2ibzU9ftO+oSAfoRQIizpAqAf823fuAsSXdfdQA5w==}
+ peerDependencies:
+ react-native: '>=0.66'
+
'@rsbuild/core@0.6.13':
resolution: {integrity: sha512-oC3qMwKaSan2pjiYpbRcsnIS7TroJ9izuIspwnks2zXfFjSlGPo7OsBaFaY9Wg1j3KC1jXbqa2kyeYs7GaAGdQ==}
engines: {node: '>=16.0.0'}
@@ -5789,12 +5797,33 @@ packages:
react-native-event-source@1.1.0:
resolution: {integrity: sha512-CAs76IW8kTrdy0okfV2KPopm7E9TL0uNAR+SRrN7iZ/ii0zBeHWuhD4Q2F8gRKvmkrEtCZ6uwnfYL2TFmK0QZg==}
- react-native-svg@15.2.0-rc.0:
- resolution: {integrity: sha512-rA2milxKXUW+VDzd2y/kWRCS8EJLUAAaU5PwQ/xB2TnzwoW1ivU8hkgwqbBhmGmr8LEa9HJoPUnxD7H7yAVPdA==}
+ react-native-svg@15.3.0:
+ resolution: {integrity: sha512-mBHu/fdlzUbpGX8SZFxgbKvK/sgqLfDLP8uh8G7Us+zJgdjO8OSEeqHQs+kPRdQmdLJQiqPJX2WXgCl7ToTWqw==}
peerDependencies:
react: '*'
react-native: '*'
+ react-native-test-app@3.7.4:
+ resolution: {integrity: sha512-I8Qts5QXVnzu5S70KD+DUn5CJ35KRJO7Sk5rdc2dkNVU5ZQeB9csl2VUBUDxYiyekvKKLJg4XCOJbjfHsxYfiA==}
+ engines: {node: '>=16.17'}
+ hasBin: true
+ peerDependencies:
+ '@callstack/react-native-visionos': 0.73 - 0.74
+ '@expo/config-plugins': '>=5.0'
+ react: 17.0.1 - 18.2
+ react-native: 0.66 - 0.74 || >=0.75.0-0 <0.75.0
+ react-native-macos: ^0.0.0-0 || 0.66 || 0.68 || 0.71 - 0.73
+ react-native-windows: ^0.0.0-0 || 0.66 - 0.74
+ peerDependenciesMeta:
+ '@callstack/react-native-visionos':
+ optional: true
+ '@expo/config-plugins':
+ optional: true
+ react-native-macos:
+ optional: true
+ react-native-windows:
+ optional: true
+
react-native@0.74.1:
resolution: {integrity: sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg==}
engines: {node: '>=18'}
@@ -6771,6 +6800,10 @@ packages:
resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==}
hasBin: true
+ uuid@9.0.1:
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
+ hasBin: true
+
uvu@0.5.6:
resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
engines: {node: '>=8'}
@@ -9093,6 +9126,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@rnx-kit/react-native-host@0.4.9(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))':
+ dependencies:
+ react-native: 0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0)
+
'@rsbuild/core@0.6.13':
dependencies:
'@rsbuild/shared': 0.6.13(@swc/helpers@0.5.3)
@@ -14140,13 +14177,25 @@ snapshots:
react-native-event-source@1.1.0: {}
- react-native-svg@15.2.0-rc.0(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0):
+ react-native-svg@15.3.0(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0):
dependencies:
css-select: 5.1.0
css-tree: 1.1.3
react: 18.2.0
react-native: 0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0)
+ react-native-test-app@3.7.4(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))(react@18.2.0):
+ dependencies:
+ '@rnx-kit/react-native-host': 0.4.9(react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0))
+ ajv: 8.12.0
+ cliui: 8.0.1
+ fast-xml-parser: 4.3.2
+ prompts: 2.4.2
+ react: 18.2.0
+ react-native: 0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0)
+ semver: 7.5.4
+ uuid: 9.0.1
+
react-native@0.74.1(@babel/core@7.24.0)(@babel/preset-env@7.24.0(@babel/core@7.24.0))(@types/react@18.2.74)(react@18.2.0):
dependencies:
'@jest/create-cache-key-function': 29.7.0
@@ -15293,6 +15342,8 @@ snapshots:
uuid@7.0.3: {}
+ uuid@9.0.1: {}
+
uvu@0.5.6:
dependencies:
dequal: 2.0.3