// Top-level build file where you can add configuration options common to all sub-projects/modules. import groovy.json.JsonSlurper def getNpmVersion() { def inputFile = new File(projectDir.getPath() + "/../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) return packageJson["version"] } def getNpmVersionArray() { // major [0], minor [1], patch [2] def (major, minor, patch) = getNpmVersion().tokenize('.') return [Integer.parseInt(major), Integer.parseInt(minor), Integer.parseInt(patch)] as int[] } buildscript { ext { buildToolsVersion = "31.0.0" minSdkVersion = 23 compileSdkVersion = 31 targetSdkVersion = 31 googlePlayServicesVisionVersion = "17.0.2" googlePlayServicesVersion = "16.+" firebaseVersion = "17.3.4" kotlinVersion = "1.6.0" if (System.properties['os.arch'] == "aarch64") { // For M1 Users we need to use the NDK 24 which added support for aarch64 ndkVersion = "24.0.8215888" } else { // Otherwise we default to the side-by-side NDK version from AGP. ndkVersion = "21.4.7075529" } } repositories { google() mavenCentral() } dependencies { classpath("com.android.tools.build:gradle:7.2.1") classpath 'com.google.gms:google-services:4.3.10' classpath("com.facebook.react:react-native-gradle-plugin") classpath("de.undercouch:gradle-download-task:5.0.1") classpath 'com.bugsnag:bugsnag-android-gradle-plugin:7.+' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() mavenLocal() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url("$rootDir/../node_modules/react-native/android") } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } maven { url "https://www.jitpack.io" } mavenCentral { // We don't want to fetch react-native from Maven Central as there are // older versions over there. content { excludeGroup "com.facebook.react" } } //TODO: remove when replacement for selective groups is available //the jcenter will be accessible as read-only indefinitely so we should be //good for now with these selective packages as they are not available off of //jCenter jcenter() { content { // these groups only available in jcenter otherwise we don't want to rely on jcenter. includeGroup("com.facebook.yoga") includeGroup("com.facebook.fbjni") includeGroup("com.henninghall.android") includeModule("com.yqritc", "android-scalablevideoview") includeModule("com.wei.android.lib", "fingerprintidentify") } } } } subprojects {project -> ext { def npmVersion = getNpmVersionArray() versionMajor = npmVersion[0] versionMinor = npmVersion[1] versionPatch = npmVersion[2] } }