263 lines
9.9 KiB
Groovy
263 lines
9.9 KiB
Groovy
apply plugin: 'com.android.application'
|
||
|
||
apply plugin: 'kotlin-android' // kotlin
|
||
|
||
// apkChannelPackage
|
||
apply plugin: 'channel'
|
||
|
||
apply from: 'tinker-support.gradle'
|
||
|
||
android {
|
||
|
||
compileOptions {
|
||
sourceCompatibility JavaVersion.VERSION_1_7
|
||
targetCompatibility JavaVersion.VERSION_1_7
|
||
}
|
||
|
||
dexOptions {
|
||
jumboMode = true
|
||
}
|
||
|
||
defaultConfig {
|
||
|
||
multiDexEnabled true
|
||
javaCompileOptions {
|
||
annotationProcessorOptions {
|
||
arguments = [eventBusIndex: 'com.gh.EventBusIndex']
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 只支持两种架构,减少apk大小,有疑问请参考:
|
||
* https://developer.android.com/ndk/guides/abis.html
|
||
* http://allenfeng.com/2016/11/06/what-you-should-know-about-android-abi-and-so/
|
||
* (为了性能考虑,armeabi可以考虑替换成armeabi-v7a[需要先收集用户设备情况])
|
||
*/
|
||
ndk {
|
||
abiFilters "armeabi", "x86"
|
||
}
|
||
|
||
// 由于app只针对中文用户,所以仅保留zh资源,其他删掉
|
||
resConfigs "zh"
|
||
|
||
minSdkVersion rootProject.ext.minSdkVersion
|
||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||
versionCode rootProject.ext.versionCode
|
||
versionName rootProject.ext.versionName
|
||
applicationId rootProject.ext.applicationId
|
||
|
||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt', 'proguard-fresco.txt'
|
||
|
||
/**
|
||
* All third-party appid/appkey
|
||
*/
|
||
buildConfigField "String", "WECHAT_APPID", "\"${WECHAT_APPID}\""
|
||
buildConfigField "String", "WECHAT_SECRET", "\"${WECHAT_SECRET}\""
|
||
buildConfigField "String", "TENCENT_APPID", "\"${TENCENT_APPID}\""
|
||
buildConfigField "String", "WEIBO_APPKEY", "\"${WEIBO_APPKEY}\""
|
||
buildConfigField "String", "MTA_APPKEY", "\"${MTA_APPKEY}\""
|
||
buildConfigField "String", "TD_APPID", "\"${TD_APPID}\""
|
||
|
||
}
|
||
|
||
// gradle 2.2以上默认同时启用v1和v2(优先用于Android N)
|
||
signingConfigs {
|
||
debug {
|
||
v1SigningEnabled true
|
||
v2SigningEnabled true
|
||
}
|
||
release {
|
||
v1SigningEnabled true
|
||
v2SigningEnabled true
|
||
}
|
||
}
|
||
|
||
buildTypes {
|
||
debug {
|
||
debuggable true
|
||
minifyEnabled false
|
||
zipAlignEnabled false
|
||
versionNameSuffix "-debug"
|
||
signingConfig signingConfigs.debug
|
||
|
||
buildConfigField "String", "UMENG_APPKEY", "\"${DEBUG_UMENG_APPKEY}\""
|
||
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${DEBUG_UMENG_MESSAGE_SECRET}\""
|
||
buildConfigField "String", "MIPUSH_APPID", "\"${DEBUG_MIPUSH_APPID}\""
|
||
buildConfigField "String", "MIPUSH_APPKEY", "\"${DEBUG_MIPUSH_APPKEY}\""
|
||
}
|
||
release {
|
||
debuggable false
|
||
minifyEnabled true
|
||
zipAlignEnabled true
|
||
shrinkResources true
|
||
signingConfig signingConfigs.release
|
||
|
||
buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\""
|
||
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\""
|
||
buildConfigField "String", "MIPUSH_APPID", "\"${MIPUSH_APPID}\""
|
||
buildConfigField "String", "MIPUSH_APPKEY", "\"${MIPUSH_APPKEY}\""
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 多渠道打包,渠道请参考"channel.txt"文件,所有渠道值均通过java code设置
|
||
*/
|
||
productFlavors {
|
||
// publish release host
|
||
publish {
|
||
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
|
||
buildConfigField "String", "USER_HOST", "\"${USER_HOST}\""
|
||
buildConfigField "String", "COMMENT_HOST", "\"${COMMENT_HOST}\""
|
||
buildConfigField "String", "LIBAO_HOST", "\"${LIBAO_HOST}\""
|
||
buildConfigField "String", "MESSAGE_HOST", "\"${MESSAGE_HOST}\""
|
||
buildConfigField "String", "DATA_HOST", "\"${DATA_HOST}\""
|
||
buildConfigField "String", "USERSEA_HOST", "\"${USERSEA_HOST}\""
|
||
|
||
buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\""
|
||
|
||
buildConfigField "String", "USERSEA_APP_ID", "\"${USERSEA_APP_ID}\""
|
||
buildConfigField "String", "USERSEA_APP_SECRET", "\"${USERSEA_APP_SECRET}\""
|
||
}
|
||
// internal test dev host
|
||
internal {
|
||
buildConfigField "String", "API_HOST", "\"${DEV_API_HOST}\""
|
||
buildConfigField "String", "USER_HOST", "\"${DEV_USER_HOST}\""
|
||
buildConfigField "String", "COMMENT_HOST", "\"${DEV_COMMENT_HOST}\""
|
||
buildConfigField "String", "LIBAO_HOST", "\"${DEV_LIBAO_HOST}\""
|
||
buildConfigField "String", "MESSAGE_HOST", "\"${DEV_MESSAGE_HOST}\""
|
||
buildConfigField "String", "DATA_HOST", "\"${DEV_DATA_HOST}\""
|
||
buildConfigField "String", "USERSEA_HOST", "\"${DEV_USERSEA_HOST}\""
|
||
|
||
buildConfigField "String", "BUGLY_APPID", "\"${DEBUG_BUGLY_APPID}\""
|
||
|
||
buildConfigField "String", "USERSEA_APP_ID", "\"${DEV_USERSEA_APP_ID}\""
|
||
buildConfigField "String", "USERSEA_APP_SECRET", "\"${DEV_USERSEA_APP_SECRET}\""
|
||
}
|
||
}
|
||
|
||
// productFlavors.all { flavor ->
|
||
// flavor.manifestPlaceholders = [CHANNEL_VALUE: name]//命令 gradlew assembleRelease
|
||
// }
|
||
|
||
}
|
||
|
||
// apkChannelPackage
|
||
channel {
|
||
//多渠道包的输出目录,默认为new File(project.buildDir,"channel")
|
||
baseOutputDir = new File(project.buildDir, "channel")
|
||
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
|
||
apkNameFormat = '${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}'
|
||
}
|
||
|
||
rebuildChannel {
|
||
// baseDebugApk = 已有Debug APK
|
||
// baseReleaseApk = 已有Release APK
|
||
// //默认为new File(project.buildDir, "rebuildChannel/debug")
|
||
// debugOutputDir = Debug渠道包输出目录
|
||
// //默认为new File(project.buildDir, "rebuildChannel/release")
|
||
// releaseOutputDir = Release渠道包输出目录
|
||
}
|
||
|
||
dependencies {
|
||
|
||
compile fileTree(include: '*.jar', dir: 'libs')
|
||
|
||
debugCompile "com.squareup.leakcanary:leakcanary-android:${leakcanary}"
|
||
debugCompile "com.facebook.stetho:stetho:${stetho}"
|
||
debugCompile "com.facebook.stetho:stetho-okhttp3:${stetho}"
|
||
debugCompile "com.squareup.okhttp3:logging-interceptor:${okHttp}"
|
||
|
||
compile "com.android.support:multidex:${multidex}"
|
||
compile "com.android.support:design:${androidSupport}"
|
||
compile "com.android.support:support-v4:${androidSupport}"
|
||
compile "com.android.support:appcompat-v7:${androidSupport}"
|
||
compile "com.android.support:support-annotations:${androidSupport}"
|
||
compile "com.android.support:percent:${androidSupport}"
|
||
|
||
compile "com.kyleduo.switchbutton:library:${switchButton}"
|
||
compile "com.readystatesoftware.systembartint:systembartint:${systemBarTint}"
|
||
|
||
compile "com.facebook.fresco:fresco:${fresco}"
|
||
compile "com.facebook.fresco:animated-gif:${fresco}"
|
||
|
||
compile "com.squareup.okhttp3:okhttp:${okHttp}"
|
||
|
||
compile "com.leon.channel:helper:${apkChannelPackage}"
|
||
|
||
compile "com.squareup.retrofit2:retrofit:${retrofit}"
|
||
compile "com.squareup.retrofit2:converter-gson:${retrofit}" // include gson 2.7
|
||
compile "com.squareup.retrofit2:adapter-rxjava:${retrofit}"
|
||
// compile "com.google.code.gson:gson:${gson}"
|
||
|
||
compile "com.j256.ormlite:ormlite-android:${ormlite}"
|
||
compile "com.j256.ormlite:ormlite-core:${ormlite}"
|
||
|
||
compile "com.jakewharton:butterknife:${butterKnife}"
|
||
annotationProcessor "com.jakewharton:butterknife-compiler:${butterKnife}"
|
||
|
||
compile "org.greenrobot:eventbus:${eventbus}"
|
||
annotationProcessor "org.greenrobot:eventbus-annotation-processor:${eventbusApt}"
|
||
|
||
compile "io.reactivex:rxjava:${rxJava}"
|
||
compile "io.reactivex:rxandroid:${rxAndroid}"
|
||
compile "com.jakewharton.rxbinding:rxbinding:${rxBinding}"
|
||
|
||
//TODO update to rx 2.x
|
||
// compile "io.reactivex.rxjava2:rxjava:${rxJava2}"
|
||
// compile "io.reactivex.rxjava2:rxandroid:${rxAndroid2}"
|
||
// compile "com.jakewharton.rxbinding2:rxbinding:${rxBinding2}"
|
||
|
||
compile "com.google.zxing:core:${zxing}"
|
||
compile "com.google.zxing:android-core:${zxing}"
|
||
|
||
compile "com.daimajia.swipelayout:library:${swipeLayout}"
|
||
compile("cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:${autoScrollViewPager}") {
|
||
exclude module: 'support-v4'
|
||
}
|
||
|
||
compile "com.sina.weibo.sdk:core:${weiboSDK}"
|
||
|
||
// bugly with tinker support
|
||
compile "com.tencent.bugly:crashreport_upgrade:${buglyTinkerSupport}"
|
||
|
||
compile "pub.devrel:easypermissions:${easypermissions}"
|
||
|
||
compile project(':libraries:LGLibrary')
|
||
compile project(':libraries:MiPush')
|
||
compile project(':libraries:MTA')
|
||
compile project(':libraries:QQShare')
|
||
compile project(':libraries:TalkingData')
|
||
compile project(':libraries:UmengPush')
|
||
compile project(':libraries:WechatShare')
|
||
compile project(':libraries:iosched')
|
||
|
||
}
|
||
File propFile = file('sign.properties');
|
||
if (propFile.exists()) {
|
||
def Properties props = new Properties()
|
||
props.load(new FileInputStream(propFile))
|
||
|
||
if (props.containsKey('keyAlias') && props.containsKey('keyPassword') &&
|
||
props.containsKey('storeFile') && props.containsKey('storePassword')) {
|
||
android.signingConfigs {
|
||
// debug 不要使用正式签名,这样tinker才不会打补丁。
|
||
debug {
|
||
keyAlias props.get('keyAlias')
|
||
keyPassword props.get('keyPassword')
|
||
storeFile file(props.get('storeFile'))
|
||
storePassword props.get('storePassword')
|
||
}
|
||
release {
|
||
keyAlias props.get('keyAlias')
|
||
keyPassword props.get('keyPassword')
|
||
storeFile file(props.get('storeFile'))
|
||
storePassword props.get('storePassword')
|
||
}
|
||
}
|
||
} else {
|
||
android.buildTypes.release.signingConfig = null
|
||
}
|
||
} else {
|
||
android.buildTypes.release.signingConfig = null
|
||
}
|