blob: dbbc78f9d8fc2eef721f1f3413620ee42af6de4d [file] [log] [blame]
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
// Load the build signing secrets from a local `keystore.properties` file.
// TODO(YOU): Create release keys and a `keystore.properties` file. See
// `example/README.md` for more info and `keystore.example.properties` for an
// example.
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
def configured = true
try {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
} catch (IOException e) {
configured = false
logger.error('Release signing information not found.')
}
project.ext {
// TODO(YOU): Create release keys and a `keystore.properties` file. See
// `example/README.md` for more info and `keystore.example.properties` for an
// example.
APP_ID = configured ? keystoreProperties['appId'] : "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE"
KEYSTORE_STORE_FILE = configured ? rootProject.file(keystoreProperties['storeFile']) : null
KEYSTORE_STORE_PASSWORD = keystoreProperties['storePassword']
KEYSTORE_KEY_ALIAS = keystoreProperties['keyAlias']
KEYSTORE_KEY_PASSWORD = keystoreProperties['keyPassword']
VERSION_CODE = configured ? keystoreProperties['versionCode'].toInteger() : 1
VERSION_NAME = configured ? keystoreProperties['versionName'] : "0.0.1"
}
if (project.APP_ID == "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE") {
configured = false
logger.error('Unique package name not set, defaulting to "io.flutter.plugins.inapppurchaseexample.DEFAULT_DO_NOT_USE".')
}
// Log a final error message if we're unable to create a release key signed
// build for an app configured in the Play Developer Console. Apks built in this
// condition won't be able to call any of the BillingClient APIs.
if (!configured) {
logger.error('The app could not be configured for release signing. In app purchases will not be testable. See `example/README.md` for more info and instructions.')
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
namespace 'io.flutter.plugins.inapppurchaseexample'
signingConfigs {
release {
storeFile project.KEYSTORE_STORE_FILE
storePassword project.KEYSTORE_STORE_PASSWORD
keyAlias project.KEYSTORE_KEY_ALIAS
keyPassword project.KEYSTORE_KEY_PASSWORD
}
}
compileSdkVersion flutter.compileSdkVersion
defaultConfig {
applicationId project.APP_ID
minSdkVersion flutter.minSdkVersion
targetSdkVersion 28
versionCode project.VERSION_CODE
versionName project.VERSION_NAME
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
// Google Play Billing APIs only work with apps signed for production.
debug {
if (configured) {
signingConfig signingConfigs.release
} else {
signingConfig signingConfigs.debug
}
}
release {
if (configured) {
signingConfig signingConfigs.release
} else {
signingConfig signingConfigs.debug
}
}
}
testOptions {
unitTests.returnDefaultValues = true
}
lint {
disable 'InvalidPackage'
}
}
flutter {
source '../..'
}
dependencies {
implementation 'com.android.billingclient:billing:3.0.2'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:5.0.0'
testImplementation 'org.json:json:20230227'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}