From cf6a2571431cf32afee71b65075f00c776ce8940 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Tue, 23 May 2017 18:56:09 -0400 Subject: [PATCH] Activate ProGuard; test signed release APK instead of debug --- TestKeystore.jks | Bin 0 -> 2270 bytes app/build.gradle | 2 +- app/proguard-rules.txt | 46 ++++++++++++++++++++++++++++-- app/src/debug/AndroidManifest.xml | 39 ------------------------- run_tests | 46 ++++++++++++++++++++++-------- 5 files changed, 78 insertions(+), 55 deletions(-) create mode 100644 TestKeystore.jks delete mode 100644 app/src/debug/AndroidManifest.xml diff --git a/TestKeystore.jks b/TestKeystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..83f0bc0e623567844b8c766625c23046a3a655a5 GIT binary patch literal 2270 zcmc(g`8U*!7sux_X6*YIS&}8jWStp?v9BT7MOia34`W|usIiS9ODU3);)x_XB~g(O zNl4ixlwC4HjNPNo^F8PJ557O#AMWeC?>YCp?>+bKFYPaZKp^m80DpqTi|`ko>`yw( zUDdVh<3J!NfTBV6P~6Py^2`7PkOT7p02BnFK^A&Orb>yS;nRuu_Nv9R@t`}RCa(j` z9AZb9(jRf2*V(DW6=%sgD%+1JE=X)xO3L(klUXQs@IvY$4Iiw&vYn0d^np!HecWYr zmj0BWL*BZ)Qq)jTk}u%Z8BP0n`#^OKkrruk7e6wOZ1U;EoY95vxF5xykKZr96pH1G zen6MHy+^lFkghnBXKiaZ=r$nCK>ClT=7n>H4!#85dN!Gk1jd1V7dE762^XXd!jpWz zI{6D=erR~09sC;{3N~RhY_y6GlNE}9{lx!oKzx^yNP{dK`-ueoPkXG9a(EbN^5XoI+R-4SX3U)?^*PAxL*?`5tDQfqT` ziba<>4;=Kd3Pyd9mJ3O9PA|Th+_R@>w5r@uGBC+;;g%;%ysapGQ?LD|ZmN?m;GGXe z7-)zbq~ z+lFMd2J78&Um`WHcVL{FVb=op+Kz7Sip@(vmKe8U)Z7q;XSF&V#@wA|n{-p5WwQR4 ziArk)v>{r|2K&#i;yO+9qzr?=805IeK8!P}eCxo;QVO;9qira!aR8}~KW@xL8SSU% zP`Zq{w65e)x#w{8S*L$ww*GBcf)H5YUA7>Z>f0*_*{mn}sibYzb|Wx$k#8aKQR1n;QEZ99AIDycsgaY~US zl_(@T#virw<07yHp7NzXETLnwTMBW}n)`IXM?=Pn9Jy9FDPcJ<-BL4A?G`I}s*l)y zH!EE;F0^gfxj~(S<<}2Y->YWsM*{4A)|_X|y{LL3l=~{&Z`fS$Z=>rsapjw8YIO|9 zLAFV~zQnBhT8rBWF6%FCy2fz67JkJCXX#(|3I!L+J~okEy7abfZw~K;tmT@_p_qq` zC3lBUY6&)5@ZuH4pSp8azvrI*-nb|psZ$X&Lmh;P;KnQD8=m~RjL>sRSd<0`#B>Wq zW4eK&fiLATfdMcWqMOk`MR75+$t9X4GPnSM0}4W2M023nn3)_P%rLNnJsO7M`<<}D z*v}BcND}rWJc)qjNAdoKEHJh|(1=L7gcd;w{buYizCX-5)Egg2q~J-!puqp>IsVl< z1QJPT-ov|msAqz)ScXdcE|hAXDjtkiR$<}!M~XT38Y zkmFRoKG=xAXW44@wpcNy#%Fa;XBR$;Egq}bkR6#fnezkkB~Z za<95iCc7#&j*W3$d@Qnd?5-@z{sA}zd_(9Put z!wmV$qd|BTD!B#pXyB;>PXW3s$l{xlv1Q$8Y%=wBy`ht|I<3D!U#2uTDL-6SGT3&# zSfMlOU_OGuGqnz80zg24BuX45b~sfrZipa6KqG~K>v~+eRSU0f)HibGUDo*N{9h9f zx9!kG02F3E3G?w8m@0}GJY73@ZuzD0F^5q7nCIqJwJXkZSM*z>l~_>tMrvW@PA9Jv zvZcE|Ni~}4QGzhTKAW!M?WLH_kK8^-?_CsUE)I0{Wv#YR)`;#^Kd-ybxZxyiA~aaw zeyabWi}DG=tS%yosOBA9)@4K9dNiJJJ%;tddgf37_HNi{kpb&YNqXFz4Su~p?BSNn z>q?FZ0&4e{csJ(ZS@!sWRqYOem;TEqh#X(D!8W#ajc_i4%BM888nREWB6L+D&RVU* z?+lF1Fh-(android.content.Context); + public (android.content.Context, android.util.AttributeSet); + public (android.content.Context, android.util.AttributeSet, int); +} +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); +} +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet, int); +} +-keepclassmembers class * extends android.content.Context { + public void *(android.view.View); + public void *(android.view.MenuItem); +} +-keep public class * extends android.app.Activity +-dontskipnonpubliclibraryclassmembers \ No newline at end of file diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml deleted file mode 100644 index be52ed256..000000000 --- a/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - diff --git a/run_tests b/run_tests index 315d942cc..63042b5a1 100755 --- a/run_tests +++ b/run_tests @@ -19,12 +19,18 @@ fi AVD_NAME=$1 AVD_SERIAL=$2 + ADB="${ANDROID_HOME}/platform-tools/adb -s emulator-${AVD_SERIAL}" EMULATOR="${ANDROID_HOME}/tools/emulator" -GRADLE="./gradlew --no-daemon --stacktrace" +GRADLE="./gradlew --stacktrace" PACKAGE_NAME=org.isoron.uhabits OUTPUTS_DIR=app/build/outputs +KEYFILE="TestKeystore.jks" +KEY_ALIAS="default" +KEY_PASSWORD="qwe123" +STORE_PASSWORD="qwe123" + info() { if [ ! -z "$TEAMCITY_VERSION" ]; then echo "###teamcity[progressMessage '$1']" @@ -35,8 +41,12 @@ info() { fi } -fail() { +cleanup() { $ADB emu kill + $GRADLE --stop +} + +fail() { exit 1 } @@ -56,24 +66,36 @@ rm -rf ${OUTPUTS_DIR} mkdir -p ${OUTPUTS_DIR} #-------------------------------------------------------------------------------- -info "Building instrumentation APKs" -$GRADLE assembleDebug assembleAndroidTest || fail +info "Building release APK" +./gradlew assembleRelease \ + -Pandroid.injected.signing.store.file=$KEYFILE \ + -Pandroid.injected.signing.store.password=$STORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$KEY_PASSWORD || fail #-------------------------------------------------------------------------------- -info "Installing APKs" -$ADB install -r ${OUTPUTS_DIR}/apk/app-debug.apk || fail -$ADB install -r ${OUTPUTS_DIR}/apk/app-debug-androidTest.apk || fail +info "Building instrumentation APK" +$GRADLE assembleAndroidTest \ + -Pandroid.injected.signing.store.file=$KEYFILE \ + -Pandroid.injected.signing.store.password=$STORE_PASSWORD \ + -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ + -Pandroid.injected.signing.key.password=$KEY_PASSWORD || fail #-------------------------------------------------------------------------------- -info "Granting permissions" -$ADB shell pm grant org.isoron.uhabits android.permission.SET_ANIMATION_SCALE || fail +info "Installing APKs" +$ADB uninstall ${PACKAGE_NAME} +$ADB install -r ${OUTPUTS_DIR}/apk/app-release.apk || fail +$ADB install -r ${OUTPUTS_DIR}/apk/app-debug-androidTest.apk || fail #-------------------------------------------------------------------------------- info "Running instrumentation tests" -$ADB shell am instrument -r -e coverage true -e size medium \ +$ADB shell am instrument \ + -r -e coverage true -e size medium \ -w ${PACKAGE_NAME}.test/android.support.test.runner.AndroidJUnitRunner \ > ${OUTPUTS_DIR}/instrument.txt +#-------------------------------------------------------------------------------- +info "Parsing test results" java -jar tools/automator-log-converter-1.5.0.jar ${OUTPUTS_DIR}/instrument.txt || fail #-------------------------------------------------------------------------------- @@ -103,7 +125,7 @@ info "Uninstalling test APK" $ADB uninstall ${PACKAGE_NAME}.test || fail #-------------------------------------------------------------------------------- -info "Stopping emulator" -$ADB emu kill +info "Stopping emulator and cleaning up" +cleanup exit $failed