Keystore-Files für die automatische Signierung eines Xamarin Android APK Files

Damit für eine komplette Automatisierung des Buildprozesses für ein Android Projekt, braucht man egal ob nativ oder via Xamarin ein KeyStore-File um das File abschließend signieren zu können. Erst danach wird das apk-File von einem Gerät akzeptiert.

Gott sei Dank kann man sich recht leicht ein Keystore File machen, indem man sich des keytool.exe Programms bedient, welches beim JDK mitgeliefert wird.

Erzeugen:

  1. Öffne cmd als Administrator
  2. Suche den Pfad zum Keytool
    normalerweise hier zu finden %program files%\java\jdk1.8.0\bin
  3. keytool.exe -genkey -v -keystore YOUR_KEYSTORE_FILE_NAME.keystore -alias YOUR_KEYSTORE_ALIAS -keyalg RSA -keysize 2048 [-validity 10000]
  4. Informationen zum Zertifikat ausfüllen (Password, First Name & Last Name, Organizational Unit, Organization, City, State, 2 Letter Country Code)
  1. Bestätigen der Details
  2. Enter um das keystore Passwort auch für den Alias zu verwenden

Bitte immer das .keystore File und ein ReadMe mit den dazugehörigen die Passwörter im Projekt Repository ablegen.

Auslesen:

Falls ihr einmal den Aliasnamen vergessen habt oder einfach schaun wollt was in eurem Keystore File herumkullert, könnt ihr es so auslesen:

keytool.exe -list -keystore YOUR_KEYSTORE_FILE_NAME.keystore

 

Danach fragt es noch nach dem Passwort und als Resultat bekommt man ungefähr sowas:

Keystore-Kennwort eingeben: ************

 

Keystore-Typ: JKS

Keystore-Provider: SUN

 

Keystore enthält 1 Eintrag

 

YOUR_KEYSTORE_ALIAS, 09.11.2016, PrivateKeyEntry,

Zertifikat-Fingerprint (SHA1): A8:87:6C:3E:F3:0C:AB:BD:E5:57:97:B6:87:E5:AC:1E:4B:A3:7D:E2

 

 Nun könnt ihr das KeyStore File in eurem TFS/VSTS Build verwenden.

keystore.png
SignierenAPK.png

mit den entsprechenden Einstellungen in einem "Signing and aligning"-Step kommt dann ein fertig signiertes APK File heraus.

ACHTUNG!

Beim KeystoreFile muss man auch den relativen Pfad zum File (vom ausgecheckten Verzeichnis aus) angeben, sonst bekommt man eine hübsche lange Fehlermeldung in der klein versteckt "keystore File not found" steht wink.