build.gradle 8.42 KB
Newer Older
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
1
2
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
37
38
39
40
41
42
43
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
69
70
71
72
73
74
apply plugin: "com.android.application"

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,
 *
 *   // 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}'
 *
 *   // 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
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

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

Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
79
80
81
82
83
84
85
86
87
88
apply from: "../../node_modules/react-native/react.gradle"

/**
 * 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.
 */
89
def enableSeparateBuildPerCPUArchitecture = false
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
90
91
92
93

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
94
def enableProguardInReleaseBuilds = false
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
95
96

android {
97
    compileSdkVersion 27
98
    buildToolsVersion "27.0.3"
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
99
100

    defaultConfig {
101
        applicationId "chat.rocket.reactnative"
102
        minSdkVersion 19
103
        targetSdkVersion 27
104
        versionCode VERSIONCODE as Integer
diegolmello's avatar
1.1    
diegolmello committed
105
        versionName "1.1"
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
106
107
108
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
109
        missingDimensionStrategy "RNN.reactNativeVersion", "reactNative55"
Diego Mello's avatar
Diego Mello committed
110
        vectorDrawables.useSupportLibrary = true
Diego Mello's avatar
Diego Mello committed
111
        multiDexEnabled true
112
113
114
115
116
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
117
    }
Guilherme Gazzo's avatar
Guilherme Gazzo committed
118

119
120
    signingConfigs {
        release {
121
122
123
124
125
            if (project.hasProperty('KEYSTORE')) {
                storeFile file(KEYSTORE)
                storePassword KEYSTORE_PASSWORD
                keyAlias KEY_ALIAS
                keyPassword KEY_PASSWORD
126
127
128
            }
        }
    }
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
129
130
131
132
133
134
135
136
137
138
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
139
140
141
            // shrinkResources enableProguardInReleaseBuilds
            // zipAlignEnabled enableProguardInReleaseBuilds
            // useProguard enableProguardInReleaseBuilds
Guilherme Gazzo's avatar
Guilherme Gazzo committed
142
143
            minifyEnabled enableProguardInReleaseBuilds
            setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'])
144
145
146
147
            signingConfig signingConfigs.release
        }
        debug {
            applicationIdSuffix ".debug"
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
        }
    }
    // 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
            }
        }
    }
}

Diego Mello's avatar
Diego Mello committed
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
buildscript {
  repositories {
    maven { url 'https://maven.fabric.io/public' }
  }

  dependencies {
    // These docs use an open ended version so that our plugin
    // can be updated quickly in response to Android tooling updates

    // We recommend changing it to the latest version from our changelog:
    // https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

apply plugin: 'io.fabric'

repositories {
  maven { url 'https://maven.fabric.io/public' }
}

Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
186
dependencies {
Diego Mello's avatar
Diego Mello committed
187
    implementation project(':react-native-image-crop-picker')
188
189
190
191
192
193
194
    implementation project(':react-native-i18n')
    implementation project(':react-native-fabric')
    implementation project(':react-native-audio')
    implementation project(":reactnativekeyboardinput")
    implementation project(':react-native-video')
    implementation project(':react-native-svg')
    implementation project(':react-native-vector-icons')
Diego Mello's avatar
Diego Mello committed
195
    implementation project(':rn-fetch-blob')
196
    implementation project(':react-native-zeroconf')
Diego Mello's avatar
Diego Mello committed
197
    implementation project(':@remobile/react-native-toast')
198
199
200
201
202
203
    implementation project(':react-native-fast-image')
    implementation project(':realm')
    implementation project(':react-native-navigation')
    implementation project(':reactnativenotifications')
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:27.1.0"
Diego Mello's avatar
Diego Mello committed
204
    implementation "com.android.support:support-v4:27.1.+"
205
206
207
    implementation 'com.android.support:customtabs:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    implementation "com.facebook.react:react-native:+"  // From node_modules
Diego Mello's avatar
Diego Mello committed
208
209
210
    implementation 'com.facebook.fresco:animated-gif:1.9.0'
    implementation 'com.facebook.fresco:animated-webp:1.9.0'
    implementation 'com.facebook.fresco:webpsupport:1.9.0'
211
    implementation('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') {
Diego Mello's avatar
Diego Mello committed
212
213
        transitive = true;
    }
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
214
215
216
217
218
219
220
221
}

// 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'
}
222
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"