Sign APK with credentials from keystore.properties

This commit is contained in:
Romain Vimont 2022-06-12 15:31:46 +02:00
parent f34075ff52
commit b5b431fa32
5 changed files with 34 additions and 1 deletions

1
server/.gitignore vendored
View file

@ -6,3 +6,4 @@
/build
/captures
.externalNativeBuild
/keystore.properties

12
server/HOWTO_keystore.txt Normal file
View file

@ -0,0 +1,12 @@
For an APK to be installable, it must be signed: <https://developer.android.com/training/articles/keystore>
For that purpose, create a keystore by executing this command:
keytool -genkey -v -keystore ~/.android/scrcpy.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias scrcpy -dname cn=scrcpy
(Adapt ~/.android/scrcpy.keystore if you want to generate it to another location.)
Then create server/keystore.properties and edit its properties:
cp keystore.properties.sample keystore.properties
vim keystore.properties # fill the properties

View file

@ -10,10 +10,26 @@ android {
versionName "1.24"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
// to be defined in server/keystore.properties (see server/HOWTO_keystore.txt)
def keystorePropsFile = rootProject.file("server/keystore.properties")
if (keystorePropsFile.exists()) {
def props = new Properties()
props.load(new FileInputStream(keystorePropsFile))
storeFile rootProject.file(props['storeFile'])
storePassword props['storePassword']
keyAlias props['keyAlias']
keyPassword props['keyPassword']
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}

View file

@ -0,0 +1,4 @@
storeFile=/path/to/your/keystore
storePassword=PASSWORD
keyAlias=scrcpy
keyPassword=PASSWORD

View file

@ -25,5 +25,5 @@ then
cp "$PROJECT_ROOT/build/outputs/apk/debug/server-debug.apk" "$OUTPUT"
else
"$GRADLE" -p "$PROJECT_ROOT" assembleRelease
cp "$PROJECT_ROOT/build/outputs/apk/release/server-release-unsigned.apk" "$OUTPUT"
cp "$PROJECT_ROOT/build/outputs/apk/release/server-release.apk" "$OUTPUT"
fi