plugins Ġ{ ĊĠĠĠ Ġid (" com . android . application ") ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġid (" kotlin - parcel ize ") ĊĠĠĠ Ġid (" android x . navigation . safe args ") ĊĠĠĠ Ġid (" zc ash . android - build - con ventions ") Ċ } Ċ Ċ val ĠpackageName Ġ= Ġ" cash . z . ecc " Ċ Ċ android Ġ{ ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication Id Ġ= ĠpackageName ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġ" 1 . 0 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġis Core Library Des ug aring Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġflavor Dimensions . add (" network ") ĊĊĠĠĠ Ġproduct Fl avors Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġwould Ġrather Ġname Ġthem Ġ" test net " Ġand Ġ" main net " Ġbut Ġproduct Ġflavor Ġnames Ġcannot Ġstart Ġwith Ġthe Ġword Ġ" test " ĊĠĠĠĠĠĠĠ Ġcreate (" z cas ht est net ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdimension Ġ= Ġ" network " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Ġ= Ġ"$ packageName . test net " Ġ// Ġallow Ġto Ġbe Ġinstalled Ġalong side Ġmain net ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatching Fallback s . addAll ( listOf (" z cas ht est net ", Ġ" debug ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate (" zc ash main net ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdimension Ġ= Ġ" network " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Id Ġ= ĠpackageName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatching Fallback s . addAll ( listOf (" zc ash main net ", Ġ" release ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" release "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġproject . property (" IS _ MIN IFY _ ENABLED "). toString (). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile (" pro guard - project . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsigning Configs Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelease Ke yst ore Path Ġ= Ġproject . property (" ZC ASH _ RELEASE _ KEY STORE _ PATH "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġrelease Ke yst ore Password Ġ= Ġproject . property (" ZC ASH _ RELEASE _ KEY STORE _ PASSWORD "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġrelease Key Alias Ġ= Ġproject . property (" ZC ASH _ RELEASE _ KEY _ ALIAS "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġrelease Key Alias Password Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . property (" ZC ASH _ RELEASE _ KEY _ ALIAS _ PASSWORD "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġis Release Signing Configured Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Ke yst ore Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Ke yst ore Password , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Key Alias , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Key Alias Password ĊĠĠĠĠĠĠĠ Ġ). all Ġ{ Ġ! it . isNull Or Blank () Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Release Signing Configured ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthis Ġblock Ġdoesn 't Ġexecute , Ġthe Ġoutput Ġwill Ġbe Ġunsigned ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate (" release "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore File Ġ= ĠFile ( release Ke yst ore Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Password Ġ= Ġrelease Ke yst ore Password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Alias Ġ= Ġrelease Key Alias ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Password Ġ= Ġrelease Key Alias Password ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġ[# 6 ]: ĠFigure Ġout Ġhow Ġto Ġmove Ġthis Ġinto Ġthe Ġbuild - con ventions ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġlibs . versions . java . get () ĊĠĠĠĠĠĠĠ Ġall Warnings As Errors Ġ= Ġproject . property (" IS _ TRE AT _ WARNING S _ AS _ ERRORS "). toString (). to Boolean () ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġcore Library Des ug aring ( libs . des ug aring ) ĊĊĠĠĠ Ġimplementation ( libs . android x . activity ) ĊĠĠĠ Ġimplementation ( libs . android x . annotation ) ĊĠĠĠ Ġimplementation ( libs . android x . core ) ĊĠĠĠ Ġimplementation ( libs . kotlin . stdlib ) ĊĠĠĠ Ġimplementation ( libs . kotlin x . coroutines . android ) ĊĠĠĠ Ġimplementation ( libs . kotlin x . coroutines . core ) ĊĠĠĠ Ġimplementation ( projects . ui Lib ) ĊĊĠĠĠ Ġandroid Test Implementation ( libs . bundles . android x . test ) ĊĊĠĠĠ Ġif Ġ( project . property (" IS _ USE _ TEST _ OR CHE STR ATOR "). toString (). to Boolean ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġandroid TestUtil ( libs . android x . test . orche strator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" apk " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ