-
Notifications
You must be signed in to change notification settings - Fork 660
Description
apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
apply plugin: 'com.google.gms.google-services' // <- Add this line
apply plugin: 'kotlin-android'
/**
-
This is the configuration block to customize your React Native Android app.
-
By default you don't need to apply any configuration, just uncomment the lines you need.
/
react {
/ Folders */
// The root of your project, i.e. where "package.json" lives. Default is '../..'
// root = file("../../")
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
// reactNativeDir = file("../../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
// codegenDir = file("../../node_modules/@react-native/codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
// cliFile = file("../../node_modules/react-native/cli.js")/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
// nodeExecutableAndArgs = ["node"]
// Mac 的Node路径 (通过:which node
),不同的安装方式路径也不一样。如果是widows电脑,需要改成自己的路径,但不要提交到git上(Git上默认使用Mac路径)
// nodeExecutableAndArgs = ["/usr/local/bin/node"]
// nodeExecutableAndArgs = ["/Users/zyf/.nvm/versions/node/v22.14.0/bin/node"]
// nodeExecutableAndArgs = ["/Users/jay/.nvm/versions/node/v22.14.0/bin/node"]
// nodeExecutableAndArgs = ["/Users/welllee/.volta/bin/node"]
//
// The command to run when bundling. By default is 'bundle'
// bundleCommand = "ram-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]/* Autolinking */
autolinkLibrariesWithApp()
}
/**
- Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
/**
- The preferred build flavor of JavaScriptCore (JSC)
- For example, to use the international variant, you can use:
def jscFlavor = 'org.webkit:android-jsc-intl:+'
- The international variant includes ICU i18n library and necessary data
- allowing to use e.g.
Date.toLocaleString
andString.localeCompare
that - give correct results when using with locales other than en-US. Note that
- this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
android {
ndkVersion rootProject.ext.ndkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdk rootProject.ext.compileSdkVersion
namespace "com.yaako.gaw"
defaultConfig {
applicationId "com.yaako.gaw"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
manifestPlaceholders["APP_NAME"] = "@string/app_name"
vectorDrawables.useSupportLibrary = true
versionName = "1.3.59"
versionCode = 359
//react-native-config配置项
resValue "string", "build_config_package", "com.yaako.gaw"
if (project.hasProperty("versionCode")) {
versionCode project.versionCode.toInteger()
}
if (project.hasProperty("versionName")) {
versionName project.versionName
}
}
signingConfigs {
release {
storeFile rootProject.file("xx.jks")
storePassword 'XXXXXXXX'
keyAlias 'XXXXXXXX'
keyPassword 'XXXXXXXX'
}
}
flavorDimensions "product"
productFlavors {
// 开发包
dev {
dimension "product"
versionNameSuffix "-dev"
applicationIdSuffix ".dev"
buildConfigField "String", "ENVFILE", "\"${project.hasProperty('ENVFILE') ? project.ENVFILE : '.env.dev'}\""
}
// 测试包
alpha {
dimension "product"
versionNameSuffix "-alpha"
applicationIdSuffix ".alpha"
buildConfigField "String", "ENVFILE", "\"${project.hasProperty('ENVFILE') ? project.ENVFILE : '.env.alpha'}\""
}
// 正式包
pro {
dimension "product"
buildConfigField "String", "ENVFILE", "\"${project.hasProperty('ENVFILE') ? project.ENVFILE : '.env'}\""
}
// 官方包
official {
dimension "product"
versionNameSuffix "-official"
buildConfigField "String", "ENVFILE", "\"${project.hasProperty('ENVFILE') ? project.ENVFILE : '.env.official'}\""
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
// 添加下面这行以禁用crunch
crunchPngs false
}
}
sourceSets {
main {
assets.srcDirs = ['src/main/assets', '../../../../packages/ui/assets',]
}
}
bundle {
density {
// 请禁用资源分割
// 否则热更后可能遇到图片无法显示的问题
enableSplit = false
}
}
afterEvaluate {
applicationVariants.each { variant ->
variant.outputs.each { output ->
println(output.outputFile)
var outName = "light-talk-${variant.flavorName}-${variant.buildType.name}-${variant.versionName}.apk"
println(outName)
var outFile = rootProject.file("../BUILD/APK/${outName}")
println(outFile)
}
}
}
}
repositories {
flatDir {
dirs 'libs' // 指定AAR文件的存放目录
}
mavenCentral()
google()
}
dependencies {
implementation 'com.google.android.gms:play-services-base:18.5.0'
implementation(name: 'asr-file-recognize-release', ext: 'aar')
implementation(name: 'asr-one-sentence-release', ext: 'aar')
implementation(name: 'asr-realtime-release', ext: 'aar')
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
// 基础依赖包,必须要依赖
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2'
// kotlin扩展(可选)
implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2'
implementation 'com.google.firebase:firebase-messaging:23.4.1'
// implementation project(':watermelondb')
}
project.ext.vectoricons = [
iconFontNames: ['EvilIcons.ttf', 'FontAwesome.ttf', 'Ionicons.ttf', 'MaterialIcons.ttf', 'iconfont.ttf'] // Specify font files
]
apply from: file("../../node_modules/react-native-vector-icons/fonts.gradle")
apply from: file("./changeIcon.gradle")
project.ext.envConfigFiles = [
dev : ".env.dev",
alpha : ".env.alpha",
pro : ".env",
official: ".env.official",
]
project.ext.envFile = project.hasProperty('ENVFILE') ? project.ENVFILE : null
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
============================================
This doesn't seem to work,I'm sure it's worth it
project.ext.envFile = project.hasProperty('ENVFILE') ? project.ENVFILE : null