diff --git a/ern-runner-gen-android/test/AndroidRunnerGenerator-test.ts b/ern-runner-gen-android/test/AndroidRunnerGenerator-test.ts
index 875937330..7d4282388 100644
--- a/ern-runner-gen-android/test/AndroidRunnerGenerator-test.ts
+++ b/ern-runner-gen-android/test/AndroidRunnerGenerator-test.ts
@@ -5,11 +5,11 @@ import { sameDirContent } from 'ern-util-dev';
import { AndroidRunnerGenerator } from 'ern-runner-gen-android';
import { RunnerGeneratorConfig } from 'ern-runner-gen';
-describe('AndroidRunnerGenerator', () => {
+describe('Test AndroidRunnerGenerator for RN version 0.67.x', () => {
const fixtureRunnerPath = path.join(
__dirname,
'fixtures',
- 'simple-android-runner',
+ 'simple-android-runner-rn-67',
);
const generatedRunnerPath = tmp.dirSync({ unsafeCleanup: true }).name;
process.chdir(generatedRunnerPath);
@@ -25,7 +25,48 @@ describe('AndroidRunnerGenerator', () => {
},
mainMiniAppName: 'dummy',
outDir: generatedRunnerPath,
- reactNativeVersion: '0.59.8',
+ reactNativeVersion: '0.67.0',
+ targetPlatform: 'android',
+ };
+
+ it('should generate simple-android-runner fixture given same configuration', async () => {
+ await new AndroidRunnerGenerator().generate(generatorConfig);
+ assert(
+ sameDirContent(fixtureRunnerPath, generatedRunnerPath),
+ 'Generated Android Runner project differs from simple-android-runner fixture',
+ );
+ });
+
+ it('should re-generate configuration of simple-android-runner fixture given same configuration', async () => {
+ await new AndroidRunnerGenerator().regenerateRunnerConfig(generatorConfig);
+ assert(
+ sameDirContent(fixtureRunnerPath, generatedRunnerPath),
+ 'Generated Android Runner project differs from simple-android-runner fixture',
+ );
+ });
+});
+
+describe('Test AndroidRunnerGenerator for RN version 0.72.x', () => {
+ const fixtureRunnerPath = path.join(
+ __dirname,
+ 'fixtures',
+ 'simple-android-runner-rn-72',
+ );
+ const generatedRunnerPath = tmp.dirSync({ unsafeCleanup: true }).name;
+ process.chdir(generatedRunnerPath);
+
+ const generatorConfig: RunnerGeneratorConfig = {
+ extra: {
+ androidConfig: {
+ artifactId: 'runner-ern-container-dummy',
+ groupId: 'com.walmartlabs.ern',
+ packageFilePath: 'com/walmartlabs/ern/dummy',
+ packageName: 'com.walmartlabs.ern.dummy',
+ },
+ },
+ mainMiniAppName: 'dummy',
+ outDir: generatedRunnerPath,
+ reactNativeVersion: '0.72.0',
targetPlatform: 'android',
};
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/build.gradle
similarity index 50%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/build.gradle
index cac8b8331..1e2dff1d6 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/build.gradle
@@ -1,12 +1,26 @@
apply plugin: 'com.android.application'
+apply plugin: "com.facebook.react"
+
+/**
+ * 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 {
- compileSdkVersion 31
- buildToolsVersion "31.0.0"
+ compileSdkVersion 33
+ buildToolsVersion "33.0.0"
defaultConfig {
applicationId "com.walmartlabs.ern.dummy"
- minSdkVersion 19
- targetSdkVersion 30
+ minSdkVersion 21
+ targetSdkVersion 33
versionCode 1
versionName "1.0"
}
@@ -17,8 +31,8 @@ android {
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
}
// Need this to avoid build conflict with jsr version which comes with react-native
configurations.all {
@@ -28,15 +42,14 @@ android {
lintOptions {
disable 'InvalidPackage'
}
- packagingOptions {
- pickFirst "lib/armeabi-v7a/libc++_shared.so"
- pickFirst "lib/arm64-v8a/libc++_shared.so"
- pickFirst "lib/x86/libc++_shared.so"
- pickFirst "lib/x86_64/libc++_shared.so"
- }
}
dependencies {
// Recompile this dependency on every build as it can be updated at any time (snapshot)
implementation('com.walmartlabs.ern:runner-ern-container-dummy:1.0.0') { changing = true }
+ if (hermesEnabled.toBoolean()) {
+ implementation("com.facebook.react:hermes-android")
+ } else {
+ implementation jscFlavor
+ }
}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/proguard-rules.pro b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/proguard-rules.pro
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/proguard-rules.pro
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/proguard-rules.pro
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/debug/AndroidManifest.xml
similarity index 80%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/debug/AndroidManifest.xml
index fa26aa56e..885c4ee44 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/debug/AndroidManifest.xml
@@ -4,5 +4,5 @@
-
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/AndroidManifest.xml
similarity index 90%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/AndroidManifest.xml
index f2a9f0eb6..28587b4ca 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/AndroidManifest.xml
@@ -12,7 +12,8 @@
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
-
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/layout/activity_main.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/layout/activity_main.xml
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/layout/activity_main.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/layout/activity_main.xml
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/colors.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/colors.xml
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/colors.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/colors.xml
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/strings.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/strings.xml
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/strings.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/strings.xml
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/styles.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/styles.xml
similarity index 100%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/res/values/styles.xml
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/app/src/main/res/values/styles.xml
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/build.gradle
similarity index 84%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/build.gradle
index 65003a88f..1702d89ff 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/build.gradle
@@ -4,7 +4,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.0.4'
+ classpath 'com.android.tools.build:gradle:7.0.2'
}
}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle.properties
similarity index 55%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle.properties
index 0566c221d..a3b2fa124 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle.properties
@@ -9,7 +9,8 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx1536m
+# 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
@@ -22,3 +23,22 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
+
+# Version of flipper SDK to use with React Native
+FLIPPER_VERSION=0.182.0
+
+# Use this property to specify which architecture you want to build.
+# You can also override it from the CLI using
+# ./gradlew -PreactNativeArchitectures=x86_64
+reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+
+# Use this property to enable support to the new architecture.
+# This will allow you to use TurboModules and the Fabric render in
+# your application. You should enable this flag either if you want
+# to write custom TurboModules/Fabric components OR use libraries that
+# are providing them.
+newArchEnabled=false
+
+# Use this property to enable or disable the Hermes JS engine.
+# If set to false, you will be using JSC instead.
+hermesEnabled=true
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.jar b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..943f0cbfa
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.properties
similarity index 92%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.properties
index 669386b87..608bd9430 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew
similarity index 93%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew
index 1b6c78733..65dcd68d6 100755
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew
@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,10 +80,10 @@ do
esac
done
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-APP_NAME="Gradle"
+# This is normally unused
+# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -143,12 +143,16 @@ fi
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -205,6 +209,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew.bat
similarity index 86%
rename from ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat
rename to ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew.bat
index ac1b06f93..6689b85be 100644
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/gradlew.bat
@@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+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!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+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
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/settings.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/settings.gradle
new file mode 100644
index 000000000..3ff0b112a
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-67/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+includeBuild('../node_modules/@react-native/gradle-plugin')
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/build.gradle
new file mode 100644
index 000000000..1e2dff1d6
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/build.gradle
@@ -0,0 +1,55 @@
+apply plugin: 'com.android.application'
+apply plugin: "com.facebook.react"
+
+/**
+ * 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 {
+ compileSdkVersion 33
+ buildToolsVersion "33.0.0"
+ defaultConfig {
+ applicationId "com.walmartlabs.ern.dummy"
+ minSdkVersion 21
+ targetSdkVersion 33
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
+ }
+ // Need this to avoid build conflict with jsr version which comes with react-native
+ configurations.all {
+ resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.0'
+ }
+ // Needs this for okio issue (should be more restrictive to only okio)
+ lintOptions {
+ disable 'InvalidPackage'
+ }
+}
+
+dependencies {
+ // Recompile this dependency on every build as it can be updated at any time (snapshot)
+ implementation('com.walmartlabs.ern:runner-ern-container-dummy:1.0.0') { changing = true }
+ if (hermesEnabled.toBoolean()) {
+ implementation("com.facebook.react:hermes-android")
+ } else {
+ implementation jscFlavor
+ }
+}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/proguard-rules.pro b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/proguard-rules.pro
new file mode 100644
index 000000000..f1b424510
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/debug/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/debug/AndroidManifest.xml
new file mode 100644
index 000000000..885c4ee44
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..28587b4ca
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java
new file mode 100644
index 000000000..2b58c7725
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainActivity.java
@@ -0,0 +1,27 @@
+package com.walmartlabs.ern.dummy;
+
+import androidx.annotation.NonNull;
+
+import com.ern.api.impl.navigation.ElectrodeBaseActivity;
+
+// This is the main activity that gets launched upon app start
+// It just launches the activity containing the miniapp
+// Feel free to modify it at your convenience.
+
+public class MainActivity extends ElectrodeBaseActivity {
+ @NonNull
+ @Override
+ public String getRootComponentName() {
+ return "dummy";
+ }
+
+ @Override
+ protected int mainLayout() {
+ return R.layout.activity_main;
+ }
+
+ @Override
+ public int getFragmentContainerId() {
+ return R.id.fragment_container;
+ }
+}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java
new file mode 100644
index 000000000..035c70206
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/MainApplication.java
@@ -0,0 +1,19 @@
+package com.walmartlabs.ern.dummy;
+
+import android.app.Application;
+
+import com.walmartlabs.ern.container.ElectrodeReactContainer;
+
+public class MainApplication extends Application {
+ @Override
+ public void onCreate() {
+ super.onCreate();
+
+ // Add additional plugin configuration below
+ ElectrodeReactContainer.initialize(
+ this,
+ new ElectrodeReactContainer.Config()
+ .isReactNativeDeveloperSupport(RunnerConfig.RN_DEV_SUPPORT_ENABLED)
+ );
+ }
+}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java
new file mode 100644
index 000000000..b20c045b6
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/java/com/walmartlabs/ern/dummy/RunnerConfig.java
@@ -0,0 +1,17 @@
+package com.walmartlabs.ern.dummy;
+
+import com.walmartlabs.ern.container.miniapps.DummyActivity;
+
+//
+// GENERATED CODE: DO NOT MODIFY
+//
+// Do not modify the content of this file as it will be regenerated
+// every time a run-android command is executed.
+// See https://native.electrode.io/cli-commands/run-android
+
+final class RunnerConfig {
+ static final Class MAIN_MINIAPP_ACTIVITY_CLASS = DummyActivity.class;
+ static final boolean RN_DEV_SUPPORT_ENABLED = false;
+ static final String PACKAGER_HOST = "localhost";
+ static final String PACKAGER_PORT = "8081";
+}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/layout/activity_main.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 000000000..a098c03ae
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..b8bf1a983
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 000000000..0abb1a387
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..2f04b41cf
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 000000000..b0581ce91
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..a163bc36d
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..69cd70eed
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..96b1207b2
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..72d49dde5
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..d41d94d09
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 000000000..1e5ac49dc
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/colors.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/colors.xml
new file mode 100644
index 000000000..3ab3e9cbc
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/strings.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/strings.xml
new file mode 100644
index 000000000..8e15e878d
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ dummy
+ Welcome to dummy Runner App
+ Force close to reload ern mini-app bundle
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/styles.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/styles.xml
new file mode 100644
index 000000000..5885930df
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/app/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/build.gradle
new file mode 100644
index 000000000..09fbaf32e
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/build.gradle
@@ -0,0 +1,23 @@
+buildscript {
+ repositories {
+ google()
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:7.4.2'
+ classpath 'com.facebook.react:react-native-gradle-plugin:0.72.11'
+ }
+}
+
+allprojects {
+ repositories {
+ mavenLocal()
+ google()
+ jcenter()
+ maven { url 'https://jitpack.io' }
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle.properties
new file mode 100644
index 000000000..a3b2fa124
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle.properties
@@ -0,0 +1,44 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# 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
+
+# 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
+
+# Version of flipper SDK to use with React Native
+FLIPPER_VERSION=0.182.0
+
+# Use this property to specify which architecture you want to build.
+# You can also override it from the CLI using
+# ./gradlew -PreactNativeArchitectures=x86_64
+reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+
+# Use this property to enable support to the new architecture.
+# This will allow you to use TurboModules and the Fabric render in
+# your application. You should enable this flag either if you want
+# to write custom TurboModules/Fabric components OR use libraries that
+# are providing them.
+newArchEnabled=false
+
+# Use this property to enable or disable the Hermes JS engine.
+# If set to false, you will be using JSC instead.
+hermesEnabled=true
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.jar b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..943f0cbfa
Binary files /dev/null and b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..608bd9430
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew
new file mode 100755
index 000000000..65dcd68d6
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew
@@ -0,0 +1,244 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew.bat b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew.bat
new file mode 100644
index 000000000..6689b85be
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/gradlew.bat
@@ -0,0 +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.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+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/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/settings.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/settings.gradle
new file mode 100644
index 000000000..3ff0b112a
--- /dev/null
+++ b/ern-runner-gen-android/test/fixtures/simple-android-runner-rn-72/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+includeBuild('../node_modules/@react-native/gradle-plugin')
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 7454180f2..000000000
Binary files a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle
deleted file mode 100644
index e7b4def49..000000000
--- a/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':app'
diff --git a/ern-runner-gen-android/test/regen-fixtures.ts b/ern-runner-gen-android/test/regen-fixtures.ts
index 153160276..4ca325a9b 100644
--- a/ern-runner-gen-android/test/regen-fixtures.ts
+++ b/ern-runner-gen-android/test/regen-fixtures.ts
@@ -4,18 +4,31 @@ import path from 'path';
import { AndroidRunnerGenerator } from 'ern-runner-gen-android';
async function regenAndroidRunnerFixture() {
- console.log('Regenerating Android Runner Fixture...');
- const fixturesPath = path.join(
+ console.log('Regenerating Android Runner Fixtures...');
+ const fixturesPath1 = path.join(
__dirname,
'fixtures',
- 'simple-android-runner',
+ 'simple-android-runner-rn-67',
);
- shell.rm('-rf', fixturesPath);
- shell.mkdir('-p', fixturesPath);
+ const fixturesPath2 = path.join(
+ __dirname,
+ 'fixtures',
+ 'simple-android-runner-rn-72',
+ );
+ shell.rm('-rf', fixturesPath1);
+ shell.mkdir('-p', fixturesPath1);
+ shell.rm('-rf', fixturesPath2);
+ shell.mkdir('-p', fixturesPath2);
+ await new AndroidRunnerGenerator().generate({
+ mainMiniAppName: 'dummy',
+ outDir: fixturesPath1,
+ reactNativeVersion: '0.67.0',
+ targetPlatform: 'android',
+ });
await new AndroidRunnerGenerator().generate({
mainMiniAppName: 'dummy',
- outDir: fixturesPath,
- reactNativeVersion: '0.62.2',
+ outDir: fixturesPath2,
+ reactNativeVersion: '0.72.0',
targetPlatform: 'android',
});
console.log(chalk.green('Done!'));
diff --git a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj
index 8b3f69557..d42ce6513 100644
--- a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj
+++ b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj
@@ -14,6 +14,7 @@
6E6BEDD6262F9F10003F9D7B /* MainNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */; };
6E6BEDD7262F9F10003F9D7B /* RunnerConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */; };
6E6BEDD8262F9F10003F9D7B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */; };
+ 7EEF60E22C1977D3008291B7 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -63,6 +64,7 @@
6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainNavigationController.swift; sourceTree = ""; };
6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunnerConfig.swift; sourceTree = ""; };
6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
+ 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -106,6 +108,7 @@
304F3E971EEF455C00F1E36B /* ErnRunner */ = {
isa = PBXGroup;
children = (
+ 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */,
6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */,
6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */,
6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */,
@@ -134,6 +137,7 @@
304F3E911EEF455C00F1E36B /* Sources */,
304F3E921EEF455C00F1E36B /* Frameworks */,
304F3E931EEF455C00F1E36B /* Resources */,
+ 7EEF60E72C1979DC008291B7 /* Bundle React Native code and images */,
304F3ECB1EEF597600F1E36B /* Embed Frameworks */,
);
buildRules = (
@@ -208,6 +212,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 7EEF60E22C1977D3008291B7 /* PrivacyInfo.xcprivacy in Resources */,
304F3EA81EEF455C00F1E36B /* LaunchScreen.storyboard in Resources */,
304F3EA51EEF455C00F1E36B /* Assets.xcassets in Resources */,
);
@@ -215,6 +220,29 @@
};
/* End PBXResourcesBuildPhase section */
+/* Begin PBXShellScriptBuildPhase section */
+ 7EEF60E72C1979DC008291B7 /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/.xcode.env.local",
+ "$(SRCROOT)/.xcode.env",
+ );
+ name = "Bundle React Native code and images";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
/* Begin PBXSourcesBuildPhase section */
304F3E911EEF455C00F1E36B /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -289,7 +317,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -332,7 +360,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -346,7 +374,10 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = ErnRunner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ernrunner;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
@@ -359,7 +390,10 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = ErnRunner/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ernrunner;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
diff --git a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000..ef1896e70
--- /dev/null
+++ b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy
@@ -0,0 +1,38 @@
+
+
+
+
+ NSPrivacyCollectedDataTypes
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategorySystemBootTime
+ NSPrivacyAccessedAPITypeReasons
+
+ 35F9.1
+
+
+
+ NSPrivacyTracking
+
+
+