Skip to content

Store Credential Security

Linking a store gives Apptonomy access to publish listing changes and read your performance data on your behalf. This page explains how those credentials are protected, and how Apptonomy tells you when one needs attention.

Apptonomy encrypts your keys in the browser using asymmetric encryption before uploading them to our servers. The keys are re-encrypted on our servers using industry-standard encryption via Google Key Management Service (KMS). We use a double-wrapping approach to further limit vulnerability to various attacks.

The keys are never stored in plain text in our systems. Decryption happens on demand, just before performing a transaction with the App Store or Play Store API.

Store credentials can stop working for reasons outside Apptonomy — a key is revoked, a role is removed, an Apple team membership changes, or Google Play permissions are altered. Apptonomy watches for these failures and surfaces them rather than failing silently.

When Apptonomy detects that a credential has become invalid, it:

  1. Raises a credential error banner on the project’s Watchtower with a link to fix it.
  2. Sends an invalid store credential notification to the project’s notification feed.

Once you fix the underlying access and the next check succeeds, Apptonomy clears the banner and posts a credential recovered notification, so you know the connection is healthy again without having to re-check manually.

The fix depends on the store:

  • App Store — regenerate the API key with both required roles and re-enter it. See App Store troubleshooting.
  • Google Play (keyless) — confirm the Apptonomy service account still has its roles in Play Console, then use Re-verify on the error banner. See Google Play troubleshooting.
  • Google Play (bring-your-own-key) — if the key was revoked, create a new one and re-upload it.

You remain in control of access at all times:

  • App Store — revoke the API key in App Store Connect, or remove the required roles.
  • Google Play — remove the invited service account (keyless) or revoke the key (bring-your-own-key) in your Google Cloud or Play Console.