Android App signieren

Das Android Betriebssystem von Google verlangt, dass alle Apps digital mit einem Zertifikat signiert werden. Nur so können diese über den Play Store auf Endgeräten installiert oder aktualisiert werden. Es ist also ein Sicherheitsmechanismus, mit diesem kann bei einem Update sicher gestellt werden, dass es sich auch wirklich um den ursprünglichen Entwickler handelt.

Würde sich nämliche jemand fremdes Zugriff zu deinem Google Playstore Developer Account verschaffen, dann könnte dieser auch deine bestehenden Anwendungen mit seiner Anwendung aktualisieren. Dies ist vor allem richtig ärgerlich, wenn du eine erfolgreiche Anwendung hast und diese durch Ingame-Items oder Werbung Geld abwirft. Der Angreifer könnte also dadurch mit deiner Anwendung Geld verdienen. Das beschriebene Szenario ist aber nicht möglich, denn der Sicherheitsmechanismus (Android Keystore) ist nur in deinen Händen und ohne diesen kann die Anwendung auch nicht aktualisiert werden.

Folgende Schritt sind bei Neuveröffentlichung notwendig:

  • Generiere einen Upload-Key und einen Keystore
  • Signiere die App mit Hilfe deines Upload-Key
  • Lade die App im Google Play Store (oder anderen Store, wie z.B. Oculus Store) hoch

Bei der Aktualisierung deiner Anwendung verwendet bitte deinen vorhanden Key aus dem Keystore. Es ist daher unabdingbar, dass du deinen Key entsprechend sicher aufbewahrst und dir das Passwort zum entschlüsseln merkst.

Keystore erstellen

Android Studio

Damit du deinen Keystore erstellen kannst und deine App damit signierst öffnest du Android Studio. Erstelle eine neues Projekt oder öffne ein bestehendes und klicke in der Menüleiste Build > Generate Signed APK > Create New.

Erstelle dir ein Password für den Keystore und für den Key selbst. Bei Certificate sind nicht alle Angaben pflicht, jedoch musst du das Feld „First and Last Name“ ausfüllen. Klicke danach auf „OK“ und dein neuer Keystore wird im Key store path / gewähltes Verzeichnis erstellt. Danach kannst du Android Studio auch wieder schließen.

Unity

Alternativ kannst du dir deinen Keystore auch in Unity erstellen. Begebe dich dazu ber File > Build Settings > Android > Player Settings.. in die Einstellungen und wähle den Reiter „Publishing Settings aus“. Innerhalb des Reiters findest du den Button „Keystore Manager..“, selektiere diesen und der Keystore Manager öffnet sich.

Selektiere im Keystore Manager das Dropdown-Menü > Create New > In Dedicated Location, somit kannst du selbst festlegen in welchem Ordner dein neuer Keystore erstellt werden soll. Klicke auf speichern und fülle die Felder aus. Zuerst ein Passwort für den Keystore selbst und dann die Felder für den Schlüssel (Key) innerhalb des Schlüsselbunds (Keystore). Pflichtangabe bei den persönlichen Daten ist das Feld „First and Last Name“.

Android App in Unity signieren

Du kannst deine Unity Anwendung direkt innerhalb von Unity signieren. Begebe dich dazu über File > Build Settings > Android > Player Settings.. in die Einstellungen und wähle den Reiter „Publishing Settings aus“.  Klicke auf den „Select..“ Button und wähle Browse. Suche nach deiner Keystore datei und öffne diese. Danach gibst du das Passwort für den Keystore ein und beim Abschnitt Project Key wählst du den Alias aus, dies ist quasi der Key für dein Projekt innerhalb des Keystores und gibst ebenfalls das Passwort ein.

Das eigentliche Signieren passiert während des Build-Prozess aus Unity.

Wichtig: Schließt du dein Unity Projekt und öffnest es erneut, dann musst du auch die Passwörter für den Keystore und den Key erneut eingeben. Dies soll verhindert, dass unbefugte Personen Änderungen vornehmen können. Sollte dein Passwort in den Publishing Settings nicht hinterlegt sein, erhältst du spätestens beim Build der Anwendung eine Hinweismeldung.

 

Michael

Michael

Mein Name ist Michael Mark. Ich bin IT-Trainer und Gründer der Lernplattform nobreakpoints. In meinem Blog biete ich Tipps, Anleitungen und Beispiele für alle, die mit Hilfe von Unity Anwendungen erstellen möchten.