|
|
@@ -153,12 +153,21 @@ afterEvaluate {
|
|
|
def devEnabled = !(config."devDisabledIn${targetName}"
|
|
|
|| targetName.toLowerCase().contains("release"))
|
|
|
|
|
|
- def extraArgs = config.extraPackagerArgs ?: [];
|
|
|
+ def extraArgs = []
|
|
|
|
|
|
if (bundleConfig) {
|
|
|
- extraArgs = extraArgs.clone()
|
|
|
- extraArgs.add("--config");
|
|
|
- extraArgs.add(bundleConfig);
|
|
|
+ extraArgs.add("--config")
|
|
|
+ extraArgs.add(bundleConfig)
|
|
|
+ }
|
|
|
+
|
|
|
+ // Hermes doesn't require JS minification.
|
|
|
+ if (enableHermes && !devEnabled) {
|
|
|
+ extraArgs.add("--minify")
|
|
|
+ extraArgs.add("false")
|
|
|
+ }
|
|
|
+
|
|
|
+ if (config.extraPackagerArgs) {
|
|
|
+ extraArgs.addAll(config.extraPackagerArgs)
|
|
|
}
|
|
|
|
|
|
commandLine(*execCommand, bundleCommand, "--platform", "android", "--dev", "${devEnabled}",
|
|
|
@@ -275,18 +284,24 @@ afterEvaluate {
|
|
|
into(file(config."jsBundleDir${targetName}"))
|
|
|
} else {
|
|
|
into ("$buildDir/intermediates")
|
|
|
- into ("assets/${targetPath}") {
|
|
|
- from(jsBundleDir)
|
|
|
- }
|
|
|
+ if (isAndroidLibrary) {
|
|
|
+ into ("library_assets/${variant.name}/out") {
|
|
|
+ from(jsBundleDir)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ into ("assets/${targetPath}") {
|
|
|
+ from(jsBundleDir)
|
|
|
+ }
|
|
|
|
|
|
- // Workaround for Android Gradle Plugin 3.2+ new asset directory
|
|
|
- into ("merged_assets/${variant.name}/merge${targetName}Assets/out") {
|
|
|
- from(jsBundleDir)
|
|
|
- }
|
|
|
+ // Workaround for Android Gradle Plugin 3.2+ new asset directory
|
|
|
+ into ("merged_assets/${variant.name}/merge${targetName}Assets/out") {
|
|
|
+ from(jsBundleDir)
|
|
|
+ }
|
|
|
|
|
|
- // Workaround for Android Gradle Plugin 3.4+ new asset directory
|
|
|
- into ("merged_assets/${variant.name}/out") {
|
|
|
- from(jsBundleDir)
|
|
|
+ // Workaround for Android Gradle Plugin 3.4+ new asset directory
|
|
|
+ into ("merged_assets/${variant.name}/out") {
|
|
|
+ from(jsBundleDir)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -294,6 +309,7 @@ afterEvaluate {
|
|
|
dependsOn(variant.mergeAssetsProvider.get())
|
|
|
|
|
|
enabled(currentBundleTask.enabled)
|
|
|
+ dependsOn(currentBundleTask)
|
|
|
}
|
|
|
|
|
|
// mergeResources task runs before the bundle file is copied to the intermediate asset directory from Android plugin 4.1+.
|
|
|
@@ -309,7 +325,7 @@ afterEvaluate {
|
|
|
// Delete the VM related libraries that this build doesn't need.
|
|
|
// The application can manage this manually by setting 'enableVmCleanup: false'
|
|
|
//
|
|
|
- // This should really be done by packaging all Hermes releated libs into
|
|
|
+ // This should really be done by packaging all Hermes related libs into
|
|
|
// two separate HermesDebug and HermesRelease AARs, but until then we'll
|
|
|
// kludge it by deleting the .so files out of the /transforms/ directory.
|
|
|
def isRelease = targetName.toLowerCase().contains("release")
|
|
|
@@ -343,8 +359,21 @@ afterEvaluate {
|
|
|
}
|
|
|
|
|
|
if (enableVmCleanup) {
|
|
|
- def task = tasks.findByName("package${targetName}")
|
|
|
- task.doFirst(vmSelectionAction)
|
|
|
+ packageTask.doFirst(vmSelectionAction)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Patch needed for https://github.com/facebook/react-native/issues/35210
|
|
|
+// This is a patch to short-circuit the "+" dependencies inside the
|
|
|
+// users' app/build.gradle file and the various .gradle files of libraries.
|
|
|
+// As using plain "+" dependencies causes Gradle to always download the latest,
|
|
|
+// this logic forces Gradle to use latest release in the minor series.
|
|
|
+project.rootProject.allprojects {
|
|
|
+ configurations.all {
|
|
|
+ resolutionStrategy {
|
|
|
+ force "com.facebook.react:react-native:0.64.+"
|
|
|
+ force "com.facebook.react:hermes-engine:0.64.+"
|
|
|
}
|
|
|
}
|
|
|
}
|