Files: e8d0ace8d7fb72ebd26bc05407e4ab61357f913a / android / app / build.gradle
5945 bytesRaw
1 | apply plugin: "com.android.application" |
2 | |
3 | import com.android.build.OutputFile |
4 | |
5 | /** |
6 | * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets |
7 | * and bundleReleaseJsAndAssets). |
8 | * These basically call `react-native bundle` with the correct arguments during the Android build |
9 | * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the |
10 | * bundle directly from the development server. Below you can see all the possible configurations |
11 | * and their defaults. If you decide to add a configuration block, make sure to add it before the |
12 | * `apply from: "../../node_modules/react-native/react.gradle"` line. |
13 | * |
14 | * project.ext.react = [ |
15 | * // the name of the generated asset file containing your JS bundle |
16 | * bundleAssetName: "index.android.bundle", |
17 | * |
18 | * // the entry file for bundle generation |
19 | * entryFile: "index.android.js", |
20 | * |
21 | * // whether to bundle JS and assets in debug mode |
22 | * bundleInDebug: false, |
23 | * |
24 | * // whether to bundle JS and assets in release mode |
25 | * bundleInRelease: true, |
26 | * |
27 | * // whether to bundle JS and assets in another build variant (if configured). |
28 | * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants |
29 | * // The configuration property can be in the following formats |
30 | * // 'bundleIn${productFlavor}${buildType}' |
31 | * // 'bundleIn${buildType}' |
32 | * // bundleInFreeDebug: true, |
33 | * // bundleInPaidRelease: true, |
34 | * // bundleInBeta: true, |
35 | * |
36 | * // whether to disable dev mode in custom build variants (by default only disabled in release) |
37 | * // for example: to disable dev mode in the staging build type (if configured) |
38 | * devDisabledInStaging: true, |
39 | * // The configuration property can be in the following formats |
40 | * // 'devDisabledIn${productFlavor}${buildType}' |
41 | * // 'devDisabledIn${buildType}' |
42 | * |
43 | * // the root of your project, i.e. where "package.json" lives |
44 | * root: "../../", |
45 | * |
46 | * // where to put the JS bundle asset in debug mode |
47 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", |
48 | * |
49 | * // where to put the JS bundle asset in release mode |
50 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release", |
51 | * |
52 | * // where to put drawable resources / React Native assets, e.g. the ones you use via |
53 | * // require('./image.png')), in debug mode |
54 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", |
55 | * |
56 | * // where to put drawable resources / React Native assets, e.g. the ones you use via |
57 | * // require('./image.png')), in release mode |
58 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", |
59 | * |
60 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means |
61 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to |
62 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle |
63 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ |
64 | * // for example, you might want to remove it from here. |
65 | * inputExcludes: ["android/**", "ios/**"], |
66 | * |
67 | * // override which node gets called and with what additional arguments |
68 | * nodeExecutableAndArgs: ["node"], |
69 | * |
70 | * // supply additional arguments to the packager |
71 | * extraPackagerArgs: [] |
72 | * ] |
73 | */ |
74 | |
75 | project.ext.react = [ |
76 | entryFile: "index.js" |
77 | ] |
78 | |
79 | apply from: "../../node_modules/react-native/react.gradle" |
80 | |
81 | /** |
82 | * Set this to true to create two separate APKs instead of one: |
83 | * - An APK that only works on ARM devices |
84 | * - An APK that only works on x86 devices |
85 | * The advantage is the size of the APK is reduced by about 4MB. |
86 | * Upload all the APKs to the Play Store and people will download |
87 | * the correct one based on the CPU architecture of their device. |
88 | */ |
89 | def enableSeparateBuildPerCPUArchitecture = false |
90 | |
91 | /** |
92 | * Run Proguard to shrink the Java bytecode in release builds. |
93 | */ |
94 | def enableProguardInReleaseBuilds = false |
95 | |
96 | android { |
97 | compileSdkVersion 23 |
98 | buildToolsVersion "23.0.1" |
99 | |
100 | defaultConfig { |
101 | applicationId "com.datreactnative" |
102 | minSdkVersion 16 |
103 | targetSdkVersion 22 |
104 | versionCode 1 |
105 | versionName "1.0" |
106 | ndk { |
107 | abiFilters "armeabi-v7a", "x86" |
108 | } |
109 | } |
110 | splits { |
111 | abi { |
112 | reset() |
113 | enable enableSeparateBuildPerCPUArchitecture |
114 | universalApk false // If true, also generate a universal APK |
115 | include "armeabi-v7a", "x86" |
116 | } |
117 | } |
118 | buildTypes { |
119 | release { |
120 | minifyEnabled enableProguardInReleaseBuilds |
121 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" |
122 | } |
123 | } |
124 | // applicationVariants are e.g. debug, release |
125 | applicationVariants.all { variant -> |
126 | variant.outputs.each { output -> |
127 | // For each separate APK per architecture, set a unique version code as described here: |
128 | // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits |
129 | def versionCodes = ["armeabi-v7a":1, "x86":2] |
130 | def abi = output.getFilter(OutputFile.ABI) |
131 | if (abi != null) { // null for the universal-debug, universal-release variants |
132 | output.versionCodeOverride = |
133 | versionCodes.get(abi) * 1048576 + defaultConfig.versionCode |
134 | } |
135 | } |
136 | } |
137 | } |
138 | |
139 | dependencies { |
140 | compile project(':react-native-fs') |
141 | compile project(':nodejs-mobile-react-native') |
142 | compile fileTree(dir: "libs", include: ["*.jar"]) |
143 | compile "com.android.support:appcompat-v7:23.0.1" |
144 | compile "com.facebook.react:react-native:+" // From node_modules |
145 | } |
146 | |
147 | // Run this once to be able to run the application with BUCK |
148 | // puts all compile dependencies into folder libs for BUCK to use |
149 | task copyDownloadableDepsToLibs(type: Copy) { |
150 | from configurations.compile |
151 | into 'libs' |
152 | } |
153 |
Built with git-ssb-web