2
\$\begingroup\$

When you choose a key for signing your APK for publishing in GooglePlay, you need to care of this key for the next 25 years if you want to do updates.

  • The key should not be shared with anyone.
  • The key should not be lost.

If you do several games, you face the question of having your key DeveloperName and sign all games with it, or have multiple keys like DeveloperName_GameOne for one game, DeveloperName_GameTwo for another, and so on.

Google says here http://developer.android.com/intl/es/tools/publishing/app-signing.html that if you sign several APPs with the same key, they may talk to each other. So it seems that having all with one key will allow future interoperability between games easier.

Instead, if at some point someone wants to buy you one of your games, but not the other, you don't want to give the keys to the non-sold games but still you don't want the buyer to break the update-flow. So it seems that having each game with a different key is better.

Question 1

What exact benefeits will one have if one signs 2 games with the same key? Is that necessary? Is that worth for future interop between games?

Question 2

What is the correct practice for an indie doing several games regarding the signature of them?

\$\endgroup\$
2
\$\begingroup\$

Signing each game with a different key allows you to sell the rights to the game to another party. When all your games are signed with the same key, you need to give them your one private key, allowing them technically to impersonate you and release updates for your other games. Contractual obligations can be used to prevent that, but it's still not very elegant to share a key that way.

The only reason to use the same key for all apps is if you want to make use of the data sharing feature. If you don't need that, don't use it.

\$\endgroup\$
  • \$\begingroup\$ So the only benefeit is data-sharing between apps. Maybe I should edit my question: May off-process apps (so, what must happen when signed with different key) send messages from one to the other inside the device without depending on an external server? If there is a mechanism, then definitively signing with different keys is the way. If I do not need my games "in the same process", just games that "talk each other" (for example if you earn points in one, you may spend them in another), can you do that in-device? Or you need an external server? \$\endgroup\$ – Xavi Montero Jan 31 '16 at 15:35
1
\$\begingroup\$

The best thing is to sign with the same key in most instances. You could in theory transfer data from one app to another. It also makes it easier to remember which key you are using. If someone wanted to buy the rights to one game, then yes, you might have an issue. But that same issue would be faced with your account. Bottom line, I'd recommend using the same key everwhere.

\$\endgroup\$
  • \$\begingroup\$ Re "But that same issue would be faced with your account." - No, there is a procedure for transferring an app to a different account, so that is not an issue, whereas an app signing key is permanent, so if you sell the app, you either have to give a copy of that key, thereby weakening the security of other apps that use the same key, or the app has to be re-released as a new app, which may be undesireable to the buyer of your app. To transfer one or more apps: support.google.com/googleplay/android-developer/answer/… \$\endgroup\$ – ToolmakerSteve Jul 25 '18 at 21:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.