It looks like you're new here. If you want to get involved, click one of these buttons!
I get this error when I try to make a signed build (apk) for Android in Unity3D:
'Failed to read key *** from store "/Volumes/Work/Developer/Dev_Unity3D/game_development/projects/com/***/Dev_SpaceShooter/Keystores/user.keystore": trusted certificate entries are not password-protected'
I made a keystore and imported my upload-certificate from Google Developer Console in order to create a keystore with the same fingerprint (SHA-1). I need a correctly working signed build in order to use Google Play Services.
The password for the alias is not set. Only the public key is set.
I have almost no experience in doing this so don't blame me for errors I made.
Now how can I get rid of the above mentioned error, please?
Answers
Set a password for the alias
The doesn't work. When I try to do this via
keytool -keypasswd -keystore keystoreFile -alias aliasName
then I get this error message:
keytool error: java.lang.Exception: Alias <aliasName> has no key😪
via what?
It's a field in the Player Settings when you build in unity.
Player Settings -> Publishing Settings
There's a spot your .keystore file, and a password for the key, and alias. Make an alias, and give it a password. I think you can assign one after an alias is created, but not sure.
I created that keystore via Terminal on the Mac. Then I imported my upload-certificate from Google in order to get the right SHA-1 fingerprint so I can use this keystore for Google Play Services.
I know I can make a keystore in Unity but it generates a different SHA-1 fingerprint than the one used in my upload-certificate. I want the same fingerprint like the one inside of the upload_certificate. Basically that's all I want but don't know how to do it...
Ah, I see. Can you not make a new alias with a password in unity though? Does generating it via terminal not give you a .keystore?
Yeah I already made a new keystore in Unity that comes along with an alias. After that I imported my upload-certificate and when I upload it into the Google Developer Console the following error message appears:
"Hochladen fehlgeschlagen
Du hast eine APK-Datei hochgeladen, die mit nicht mit dem Upload-Zertifikat signiert ist. Du musst dasselbe Zertifikat verwenden. Das hochgeladene Zertifikat ist mit dieser ID-Datei signiert
SHA1: FC:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Das Zertifikat, mit dem die hochgeladene APK-Datei signiert ist, weist diese ID-Datei auf:
SHA1: 3A:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
Sorry for the German text but you can easily translate it via Google. So the problem still persists. The fingerprint-ids are not the same.
Right, but don't make a new one. Can you just give unity the .keystore you already generated? Not generated a new one in unity.
Basically yes. You can look for any valid .keystore-file in Unity and use it to sign the .apk-file. So do you think it's better if I generate the keystore-file within Terminal or this app: https://keystore-explorer.org?
Im asking if you tried to use the .keystore you already generated.
I am aware it is possible to do it in unity, I was asking if you, personally, have tried to look for your .keystore.
Yes.
and then did you make a new alias through that, and give it a password?
The alias has no password. There is one public key only. BTW: The user.keystore-file consists of one imported trusted certificate only. Nothing else...
I know the alias has no password
thats why I said make a new alias.
a keystore can have multiple aliases
p.s. I know how keystores work, I have published to GooglePlay before. But I generated my keystores though unity. I know the fundamentals, just not the mechanics of doing it via a Mac command line
One dumb question: How do you create another alias via key tool in Terminal?
I do not know the key tools, or how to do it by a terminal.
So I made another alias (=drpelz). I made a key pair and put it into my keystore file. Now what's next?