1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00
anytype-kotlin/app/build.gradle
Allan Quatermain 5ee6443ebb
DROID-979 App | Tech | Setup sentry (#3002)
DROID-979 App | Tech | Setup sentry
2023-03-16 19:19:24 +03:00

240 lines
No EOL
8 KiB
Groovy

plugins {
id "com.android.application"
id "kotlin-android"
id "kotlin-kapt"
id "androidx.navigation.safeargs.kotlin"
id "com.google.firebase.crashlytics"
id "com.google.firebase.appdistribution"
}
apply from: "$rootDir/versioning.gradle"
def apikeyPropertiesFile = rootProject.file("apikeys.properties")
def apikeyProperties = new Properties()
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))
def useReleaseKeystore = rootProject.file("scripts/release/app-release.jks").exists()
def localProperties = new Properties()
localProperties.with {
def lp = "local.properties"
if (new File(lp).exists()) it.load(new FileInputStream(lp))
}
android {
def config = rootProject.ext
compileSdkVersion config.compile_sdk
defaultConfig {
applicationId config.application_id
minSdkVersion config.min_sdk
targetSdkVersion config.target_sdk
versionCode getBuildVersionCode()
versionName getBuildVersionName()
testInstrumentationRunner config.test_runner
buildConfigField "boolean", "USE_NEW_WINDOW_INSET_API", "true"
buildConfigField "boolean", "LOG_FROM_MW_LIBRARY", localProperties.getProperty("LOG_FROM_MW_LIBRARY", "false")
buildConfigField "boolean", "LOG_MW_INTERACTION", localProperties.getProperty("LOG_MW_INTERACTION", "false")
buildConfigField "boolean", "LOG_DASHBOARD_REDUCER", localProperties.getProperty("LOG_DASHBOARD_REDUCER", "false")
buildConfigField "boolean", "LOG_EDITOR_VIEWMODEL_EVENTS", localProperties.getProperty("LOG_EDITOR_VIEWMODEL_EVENTS", "false")
buildConfigField "boolean", "LOG_EDITOR_CONTROL_PANEL", localProperties.getProperty("LOG_EDITOR_CONTROL_PANEL", "false")
resValue "string", "SENTRY_DSN", config.sentryApiKey
}
packagingOptions {
resources {
excludes += ['LICENSE.txt', 'META-INF/DEPENDENCIES', 'META-INF/ASL2.0', 'META-INF/NOTICE', 'META-INF/LICENSE']
}
}
signingConfigs {
release {
if (useReleaseKeystore) {
def keystorePropertiesFile = rootProject.file("signing.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
storeFile rootProject.file("scripts/release/app-release.jks")
keyAlias keystoreProperties['RELEASE_KEY_ALIAS']
keyPassword keystoreProperties['RELEASE_KEY_PASSWORD']
storePassword keystoreProperties['RELEASE_STORE_PASSWORD']
v1SigningEnabled true
v2SigningEnabled true
}
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.release'])
if (useReleaseKeystore) {
signingConfig signingConfigs.release
} else {
signingConfig signingConfigs.debug
}
}
debug {
applicationIdSuffix ".debug"
debuggable true
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.debug'])
//signingConfig signingConfigs.debug
firebaseAppDistribution {
artifactType = "AAB"
groups = "anytype-q&a, product-review, nightly"
serviceCredentialsFile = "$rootDir/scripts/distribution/anytype-debug-service-account-key.json"
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
composeOptions {
kotlinCompilerExtensionVersion libs.versions.androidxComposeVersion1.get()
}
buildFeatures {
viewBinding true
compose true
}
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable false
reset()
include "armeabi-v7a", "arm64-v8a"//, "x86_64", "x86",
universalApk false
}
}
ndkVersion "23.2.8568313"
}
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(11))
}
dependencies {
implementation project(':domain')
implementation project(':core-models')
implementation project(':data')
implementation project(':device')
implementation project(':persistence')
implementation project(':middleware')
implementation project(':presentation')
implementation project(':clipboard')
implementation project(':core-utils')
implementation project(':core-ui')
implementation project(':library-page-icon-picker-widget')
implementation project(':library-emojifier')
implementation project(':library-syntax-highlighter')
implementation project(':analytics')
implementation project(':ui-settings')
implementation project(':crash-reporting')
//Compile time dependencies
kapt libs.daggerCompiler
kapt libs.glideCompiler
compileOnly libs.javaxAnnotation
compileOnly libs.javaxInject
//Application dependencies
implementation libs.kotlin
implementation libs.coroutinesAndroid
implementation libs.fragment
implementation libs.navigation
implementation libs.navigationUi
implementation libs.appcompat
implementation libs.design
implementation libs.recyclerView
implementation libs.constraintLayout
implementation libs.glide
implementation libs.coilCompose
implementation libs.dagger
implementation libs.timber
implementation libs.gson
implementation libs.pickT
implementation libs.emojiCompat
implementation libs.lifecycleViewModel
implementation libs.lifecycleRuntime
implementation libs.lifecycleLiveData
implementation libs.lifecycleCompose
implementation libs.compose
implementation libs.composeFoundation
implementation libs.composeMaterial
implementation libs.composeToolingPreview
implementation libs.composeAccompanistPager
implementation libs.composeAccompanistThemeAdapter
implementation libs.composeAccompanistPagerIndicators
implementation libs.preference
implementation libs.activityCompose
implementation libs.composeReorderable
debugImplementation libs.composeTooling
implementation libs.room
implementation libs.crashlytics
implementation libs.exoPlayerCore
implementation libs.exoPlayerUi
implementation libs.amplitude
implementation libs.okhttp
implementation libs.shimmerLayout
implementation libs.photoView
implementation libs.zxing
implementation libs.androidxSecurityCrypto
implementation libs.middleware
//Unit/Integration tests dependencies
testImplementation libs.androidXTestCore
testImplementation libs.junit
testImplementation libs.robolectric
testImplementation libs.kotlinTest
testImplementation libs.mockitoKotlin
testImplementation project(':test:utils')
//Acceptance tests dependencies
androidTestImplementation project(':test:android-utils')
androidTestImplementation libs.mockitoAndroid
androidTestImplementation libs.mockitoKotlin
androidTestImplementation libs.espressoContrib
androidTestImplementation libs.androidJUnit
androidTestImplementation libs.kotlinTest
androidTestImplementation libs.testRules
androidTestImplementation libs.disableAnimation
androidTestImplementation libs.navigationTesting
androidTestImplementation project(":test:utils")
androidTestImplementation project(":test:core-models-stub")
androidTestImplementation(libs.coroutineTesting) {
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
}
debugImplementation libs.fragmentTesting
implementation libs.wireRuntime
}
apply plugin: 'com.google.gms.google-services'