Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
.PHONY: run
# certs and output
OUTPUT_FILE=apkname.apk
ALIAS=youralias
KEYPASS=yourkeypass
KEYSTORE=certs/yourcert.keystore
UNSIGNED=platforms/android/build/outputs/apk/android-release-unsigned.apk
# or, if you're using Crosswalk:
# UNSIGNED=platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk
PACKAGE='com.yourcompany.yourapp'
# create a signed apk
sign:
rm -f ${OUTPUT_FILE}
cordova build android --release
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore ${KEYSTORE} -storepass ${KEYPASS} ${UNSIGNED} ${ALIAS}
zipalign -v 4 ${UNSIGNED} ${OUTPUT_FILE}
execute:
adb shell am start -n ${PACKAGE}/${PACKAGE}.MainActivity
# install a signed apk on a device
install:
adb install -r ${OUTPUT_FILE}
# monitor logs and filter by package name
log:
adb logcat | grep `adb shell ps | grep ${PACKAGE} | cut -c10-15`
run: sign install execute log
@clervius

This comment has been minimized.

Copy link

clervius commented May 13, 2017

nice

@clervius

This comment has been minimized.

Copy link

clervius commented May 15, 2017

Hey, I keep getting an error with this..

  • Looked up everywhere and can't find how to fix. Even tried modifying the variables to the full directories of each file, both with forward and back slashes.
  • Moved files around and tried doing it again.
  • Nothing
    process_begin: CreateProcess(NULL, rm -f InAppPurchases.apk, ...) failed
    make (e=2): The system cannot find the file specified.
    make: *** [sign] Error 2

EDIT: Nevermind... it just doesn't work in CMD.. only works in Git Bash

@verybluebot

This comment has been minimized.

Copy link

verybluebot commented Jul 13, 2019

thanks, very useful. Only one thing:
When you build a release the name of the file is app-release-unsigned.apk, NOT android-release-unsigned.apk

this took a few hours of my life..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.