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