Godot isn't signing my apk builds, so I can't install them

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Lfzinho

Hi!
I found a way to verify if an apk is signed or not, and tested with an apk debug version from Godot, an apk release version from Godot and a random apk game from internet. Both of my builds were unsigned, so Android doesn’t allow to install them (“The app was not installed”), and it doesn’t work with debug test either.

[Solved]
The problem was with the Jarsinger. I tried the Java JDK and the newest Open JDK, but I just read that Godot will only work with Open JDK 8.
(I guess they changed that in the documentation recently or I am a very bad reader).

:bust_in_silhouette: Reply From: jtarallo

It’s very difficult to know what is wrong without the output of your Gradle build. Could you provide this, as it has information if something went wrong with signing, and if it was with release or debug keys.

Also, if you are trying to sign with the release key, be sure to uncheck the “Export With Debug” checkbox in the Project → Export → Android → Export Project screen below the “file name” input.

I’m not sure if this is Gradle, but that is what the “Godot second black window” says:

ADDING: AndroidManifest.xml
ADDING: classes.dex
ADDING: lib/arm64-v8a/libc++_shared.so
ADDING: lib/arm64-v8a/libgodot_android.so
ADDING: lib/armeabi-v7a/libc++_shared.so
ADDING: lib/armeabi-v7a/libgodot_android.so
ADDING: res/drawable-hdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-mdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-v21/notification_action_background.xml
ADDING: res/drawable-xhdpi-v4/notification_bg_low_normal.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_normal.9.png
ADDING: res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png
ADDING: res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable-xxhdpi-v4/notify_panel_notification_icon_bg.png
ADDING: res/drawable/notification_bg.xml
ADDING: res/drawable/notification_bg_low.xml
ADDING: res/drawable/notification_icon_background.xml
ADDING: res/drawable/notification_tile_bg.xml
ADDING: res/layout-v16/notification_template_custom_big.xml
ADDING: res/layout-v21/notification_action.xml
ADDING: res/layout-v21/notification_action_tombstone.xml
ADDING: res/layout-v21/notification_template_custom_big.xml
ADDING: res/layout-v21/notification_template_icon_group.xml
ADDING: res/layout/downloading_expansion.xml
ADDING: res/layout/notification_action.xml
ADDING: res/layout/notification_action_tombstone.xml
ADDING: res/layout/notification_template_icon_group.xml
ADDING: res/layout/notification_template_part_chronometer.xml
ADDING: res/layout/notification_template_part_time.xml
ADDING: res/layout/status_bar_ongoing_event_progress_bar.xml
ADDING: res/mipmap-anydpi-v26/icon.xml
ADDING: res/mipmap-hdpi-v4/icon.png
ADDING: res/mipmap-hdpi-v4/icon_background.png
ADDING: res/mipmap-hdpi-v4/icon_foreground.png
ADDING: res/mipmap-mdpi-v4/icon.png
ADDING: res/mipmap-mdpi-v4/icon_background.png
ADDING: res/mipmap-mdpi-v4/icon_foreground.png
ADDING: res/mipmap-xhdpi-v4/icon.png
ADDING: res/mipmap-xhdpi-v4/icon_background.png
ADDING: res/mipmap-xhdpi-v4/icon_foreground.png
ADDING: res/mipmap-xxhdpi-v4/icon.png
ADDING: res/mipmap-xxhdpi-v4/icon_background.png
ADDING: res/mipmap-xxhdpi-v4/icon_foreground.png
ADDING: res/mipmap-xxxhdpi-v4/icon.png
ADDING: res/mipmap-xxxhdpi-v4/icon_background.png
ADDING: res/mipmap-xxxhdpi-v4/icon_foreground.png
ADDING: res/mipmap/icon.png
ADDING: res/mipmap/icon_background.png
ADDING: res/mipmap/icon_foreground.png
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: invalid skip
Unicode error: no space left
ADDING: resources.arsc
erasing C:\Users\lagua\AppData\Local\Temp/Godot/tmpproject.binary
0 param: --xr_mode_regular
1 param: --use_depth_32
2 param: --use_immersive
Illegal option: -digestalg
Key and Certificate Management Tool

Commands:

-certreq Generates a certificate request
-changealias Changes an entry’s alias
-delete Deletes an entry
-exportcert Exports certificate
-genkeypair Generates a key pair
-genseckey Generates a secret key
-gencert Generates certificate from a certificate request
-importcert Imports a certificate or a certificate chain
-importpass Imports a password
-importkeystore Imports one or all entries from another keystore
-keypasswd Changes the key password of an entry
-list Lists entries in a keystore
-printcert Prints the content of a certificate
-printcertreq Prints the content of a certificate request
-printcrl Prints the content of a CRL file
-storepasswd Changes the store password of a keystore
-showinfo Displays security-related information

Use “keytool -?, -h, or --help” for this help message
Use “keytool -command_name --help” for usage of command_name.
Use the -conf option to specify a pre-configured options file.
Illegal option: -verify
Key and Certificate Management Tool

Commands:

-certreq Generates a certificate request
-changealias Changes an entry’s alias
-delete Deletes an entry
-exportcert Exports certificate
-genkeypair Generates a key pair
-genseckey Generates a secret key
-gencert Generates certificate from a certificate request
-importcert Imports a certificate or a certificate chain
-importpass Imports a password
-importkeystore Imports one or all entries from another keystore
-keypasswd Changes the key password of an entry
-list Lists entries in a keystore
-printcert Prints the content of a certificate
-printcertreq Prints the content of a certificate request
-printcrl Prints the content of a CRL file
-storepasswd Changes the store password of a keystore
-showinfo Displays security-related information

Use “keytool -?, -h, or --help” for this help message
Use “keytool -command_name --help” for usage of command_name.
Use the -conf option to specify a pre-configured options file.
erasing C:\Users\lagua\AppData\Local\Temp/Godot/tmpexport-unaligned.apk

Lfzinho | 2020-06-08 18:38

Yeah man, something is wrong with the Key Tool:

Illegal option: -digestalg
Key and Certificate Management Tool

You should google a bit what can be wrong, maybe the wrong version? Or something wrong with Java? I got this to work with alot of trial and error, googling errors which turned up there in the output. Just be on the lookout for those until you get it to click. At least now you know the issue is with that tool in particular.

jtarallo | 2020-06-08 18:44

Thanks! Just one last question: I checked the keytool files and -digestalg is “\jarsigner” command, not a “\keytool” one, so that means this message should appear for everyone?
By the way, I changed my JDK from Oracle to Open JDK but it stills the same, maybe reinstall Godot would work?

Lfzinho | 2020-06-08 20:47

Screenshot-1 hosted at ImgBB — ImgBB

On the left you have the screenshot of the part which is failing for you, and on the right you have the bottom of the output of my game build for android, which states it is correctly signed and my information.

jtarallo | 2020-06-08 20:57

I highly doubt re-installing godot will work. It has definately something to do with your android dev environment, sdk etc. Be sure to follow the steps in the godot setup guide for android to the letter. There are also some stuff which needs to be described better maybe, as I recall having issues with signing also, and doing alot of googling around and trying out several android sdk downloads to get it to work.

jtarallo | 2020-06-08 21:02