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 + + +