diff --git a/.gitignore b/.gitignore index 902492338..7051e766d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ .DS_Store /build /captures +release.keystore +signing.properties diff --git a/app/build.gradle b/app/build.gradle index f76954a68..5bf740e55 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,10 +11,16 @@ android { versionCode 1 versionName "1.0" } + + signingConfigs { + release + } + buildTypes { release { - minifyEnabled false + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release } } } @@ -27,3 +33,23 @@ dependencies { compile 'com.jakewharton:butterknife:7.0.1' compile 'com.github.yukuku:ambilwarna:2.0.1' } + +def Properties props = new Properties() +def propFile = new File('signing.properties') +if (propFile.canRead()) { + props.load(new FileInputStream(propFile)) + + if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') && + props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) { + android.signingConfigs.release.storeFile = file(props['STORE_FILE']) + android.signingConfigs.release.storePassword = props['STORE_PASSWORD'] + android.signingConfigs.release.keyAlias = props['KEY_ALIAS'] + android.signingConfigs.release.keyPassword = props['KEY_PASSWORD'] + } else { + println 'signing.properties found but some entries are missing' + android.buildTypes.release.signingConfig = null + } +} else { + println 'signing.properties not found' + android.buildTypes.release.signingConfig = null +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 25ea3346e..99946f953 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -15,3 +15,19 @@ #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} + +# Butterknife +-keep class butterknife.** { *; } +-dontwarn butterknife.internal.** +-keep class **$$ViewBinder { *; } + +-keepclasseswithmembernames class * { + @butterknife.* ; +} + +-keepclasseswithmembernames class * { + @butterknife.* ; +} + +# Joda +-dontwarn org.joda.time.** diff --git a/signing.properties_sample b/signing.properties_sample new file mode 100644 index 000000000..acf8fb9fc --- /dev/null +++ b/signing.properties_sample @@ -0,0 +1,4 @@ +STORE_FILE=/path/to/your.keystore +STORE_PASSWORD=yourkeypass +KEY_ALIAS=projectkeyalias +KEY_PASSWORD=yourkeypass