build.gradle 7.08 KB
Newer Older
Wietse Kuipers's avatar
Wietse Kuipers committed
1
apply plugin: "com.android.application"
2
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
Wietse Kuipers's avatar
Wietse Kuipers committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
37
38
39
40
41
42
43
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
Wietse Kuipers's avatar
Wietse Kuipers committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
69
 *   nodeExecutableAndArgs: ["node"],
Wietse Kuipers's avatar
Wietse Kuipers committed
70
71
72
73
74
75
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

76
77
78
79
project.ext.react = [
    entryFile: "index.js"
]

Wietse Kuipers's avatar
Wietse Kuipers committed
80
apply from: "../../node_modules/react-native/react.gradle"
81
82
// Disabled because of https://github.com/getsentry/react-native-sentry/issues/326
// apply from: "../../node_modules/react-native-sentry/sentry.gradle"
Wietse Kuipers's avatar
Wietse Kuipers committed
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
100
101
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
Wietse Kuipers's avatar
Wietse Kuipers committed
102

Wietse Kuipers's avatar
Wietse Kuipers committed
103
104
105
106
    lintOptions {
        abortOnError false
    }

Wietse Kuipers's avatar
Wietse Kuipers committed
107
    defaultConfig {
108
        applicationId "com.thaliapp"
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
109
110
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
Gijs Hendriksen's avatar
Gijs Hendriksen committed
111
112
        versionCode 430
        versionName "2.6.0"
Wietse Kuipers's avatar
Wietse Kuipers committed
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
Nienke's avatar
Nienke committed
130
131
132
        debug {
            applicationIdSuffix ".dev"
        }
Wietse Kuipers's avatar
Wietse Kuipers committed
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
150
    implementation project(':react-native-sentry')
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
151
152
153
154
    implementation project(':react-native-locale-detector')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-snackbar')
    implementation project(':react-native-linear-gradient')
155
    implementation project(':react-native-firebase')
156
    implementation project(':react-native-share')
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
157
158
159
160
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.android.support:design:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
161
162
    implementation "com.google.firebase:firebase-core:16.0.9"
    implementation "com.google.firebase:firebase-messaging:18.0.0"
Wietse Kuipers's avatar
Wietse Kuipers committed
163
164
165
166
167
168
169
170
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}
171
172
173
174
175
176
177
178

gradle.projectsEvaluated {
    installDebug.doLast {
        println 'Running `adb reverse tcp:8000 tcp:8000`'
        def processBuilder = new ProcessBuilder(['adb', 'reverse', 'tcp:8000', 'tcp:8000'])
        processBuilder.start()
    }
}
179

Wietse Kuipers's avatar
Wietse Kuipers committed
180
apply plugin: 'com.google.gms.google-services'