1*082815dcSEvan Bacon"use strict"; 2*082815dcSEvan Bacon 3*082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4*082815dcSEvan Bacon value: true 5*082815dcSEvan Bacon}); 6*082815dcSEvan Baconexports.default = void 0; 7*082815dcSEvan Baconvar _default = `// Build integration with EAS 8*082815dcSEvan Bacon 9*082815dcSEvan Baconimport java.nio.file.Paths 10*082815dcSEvan Bacon 11*082815dcSEvan Baconandroid { 12*082815dcSEvan Bacon signingConfigs { 13*082815dcSEvan Bacon release { 14*082815dcSEvan Bacon // This is necessary to avoid needing the user to define a release signing config manually 15*082815dcSEvan Bacon // If no release config is defined, and this is not present, build for assembleRelease will crash 16*082815dcSEvan Bacon } 17*082815dcSEvan Bacon } 18*082815dcSEvan Bacon 19*082815dcSEvan Bacon buildTypes { 20*082815dcSEvan Bacon release { 21*082815dcSEvan Bacon // This is necessary to avoid needing the user to define a release build type manually 22*082815dcSEvan Bacon } 23*082815dcSEvan Bacon } 24*082815dcSEvan Bacon} 25*082815dcSEvan Bacon 26*082815dcSEvan Bacondef isEasBuildConfigured = false 27*082815dcSEvan Bacon 28*082815dcSEvan Bacontasks.whenTaskAdded { 29*082815dcSEvan Bacon def debug = gradle.startParameter.taskNames.any { it.toLowerCase().contains('debug') } 30*082815dcSEvan Bacon 31*082815dcSEvan Bacon if (debug) { 32*082815dcSEvan Bacon return 33*082815dcSEvan Bacon } 34*082815dcSEvan Bacon 35*082815dcSEvan Bacon // We only need to configure EAS build once 36*082815dcSEvan Bacon if (isEasBuildConfigured) { 37*082815dcSEvan Bacon return 38*082815dcSEvan Bacon } 39*082815dcSEvan Bacon 40*082815dcSEvan Bacon isEasBuildConfigured = true; 41*082815dcSEvan Bacon 42*082815dcSEvan Bacon android.signingConfigs.release { 43*082815dcSEvan Bacon def credentialsJson = rootProject.file("../credentials.json"); 44*082815dcSEvan Bacon 45*082815dcSEvan Bacon if (credentialsJson.exists()) { 46*082815dcSEvan Bacon if (storeFile && !System.getenv("EAS_BUILD")) { 47*082815dcSEvan Bacon println("Path to release keystore file is already set, ignoring 'credentials.json'") 48*082815dcSEvan Bacon } else { 49*082815dcSEvan Bacon try { 50*082815dcSEvan Bacon def credentials = new groovy.json.JsonSlurper().parse(credentialsJson) 51*082815dcSEvan Bacon def keystorePath = Paths.get(credentials.android.keystore.keystorePath); 52*082815dcSEvan Bacon def storeFilePath = keystorePath.isAbsolute() 53*082815dcSEvan Bacon ? keystorePath 54*082815dcSEvan Bacon : rootProject.file("..").toPath().resolve(keystorePath); 55*082815dcSEvan Bacon 56*082815dcSEvan Bacon storeFile storeFilePath.toFile() 57*082815dcSEvan Bacon storePassword credentials.android.keystore.keystorePassword 58*082815dcSEvan Bacon keyAlias credentials.android.keystore.keyAlias 59*082815dcSEvan Bacon if (credentials.android.keystore.containsKey("keyPassword")) { 60*082815dcSEvan Bacon keyPassword credentials.android.keystore.keyPassword 61*082815dcSEvan Bacon } else { 62*082815dcSEvan Bacon // key password is required by Gradle, but PKCS keystores don't have one 63*082815dcSEvan Bacon // using the keystore password seems to satisfy the requirement 64*082815dcSEvan Bacon keyPassword credentials.android.keystore.keystorePassword 65*082815dcSEvan Bacon } 66*082815dcSEvan Bacon } catch (Exception e) { 67*082815dcSEvan Bacon println("An error occurred while parsing 'credentials.json': " + e.message) 68*082815dcSEvan Bacon } 69*082815dcSEvan Bacon } 70*082815dcSEvan Bacon } else { 71*082815dcSEvan Bacon if (storeFile == null) { 72*082815dcSEvan Bacon println("Couldn't find a 'credentials.json' file, skipping release keystore configuration") 73*082815dcSEvan Bacon } 74*082815dcSEvan Bacon } 75*082815dcSEvan Bacon } 76*082815dcSEvan Bacon 77*082815dcSEvan Bacon android.buildTypes.release { 78*082815dcSEvan Bacon signingConfig android.signingConfigs.release 79*082815dcSEvan Bacon } 80*082815dcSEvan Bacon} 81*082815dcSEvan Bacon`; 82*082815dcSEvan Baconexports.default = _default; 83*082815dcSEvan Bacon//# sourceMappingURL=EasBuildGradleScript.js.map