as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Develop
Test
Publish
Monetize
Engage users
Device specifications
Resources

Test your App with App Tester

App Tester is a tool that allows testing Appstore SDK features in your apps during integration without publishing changes to the Appstore. The App Tester tool is an APK you can install on your test device that mimics the Appstore client APK built into all Fire TVs and tablets. App Tester handles your app requests in place of the production Amazon Appstore services. You can use App Tester to test all three major functionalities (IAP, DRM, and SSI) offered as part of the Appstore SDK. App Tester maintains its own local data store, which it serves all requests through, rather than affecting the production state of your test accounts or devices.

For more details about how you can use App Tester to test In-App Purchasing (IAP) APIs, see the App Tester User Guide.

You can get the App Tester APK through the Amazon Appstore. Visit the Amazon App Tester page to download the APK for your devices.

Using App Tester for testing

Apps must activate sandbox mode to test with App Tester. Connect to the device using ADB (Fire TV / Fire tablets) and run the following command.

adb shell setprop debug.amazon.sandboxmode debug

Install and open App Tester. To configure your tests, click Appstore SDK APIs.

App Tester home page
App Tester home page
Appstore SDK features testable through App Tester
Appstore SDK features testable through App Tester

To configure and run SSI related tests, use the Simple Sign-in API Response Settings and Manage Simple Sign-in links sections.

Simple Sign-in API response settings

The following image shows the Simple Sign-In API Response Settings section in App Tester.

Simple Sign-in API response settings
Simple Sign-in API response settings

In this section, you can control which response App Tester returns to your app when in sandbox testing mode. App Tester returns a SUCCESSFUL response without manual intervention. The Simple Sign-in methods, getUserAndLinks() and linkUserAccount(), depend on the Simple Sign-in backend service. You can configure the response for these methods by using the instructions in the following sections.

As you set up account linking from your app when testing in sandbox mode, App Tester stores the state of linked accounts in a local database. By default, the response to the getUserAndLinks() method is based on the current state of account linking from that database.

To test how your app handles specific scenarios, configure the response settings and see how your app behaves. You can use the screens in the following images as a visual guide. For a list of request status values, see RequestStatus.

Response options include Default, SUCCESSFUL, FAILURE, RETRYABLE_FAILURE, NOT_SUPPORTED, NOT_AVAILABLE, DUPLICATE_REQUEST, and FEATURE_TURNED_OFF.
Configuring response for the GetUserAndLinks API

Test using mock responses

In App Tester, you can also configure getUserAndLinks() to respond with mock responses generated on the fly without referring to the local database. This feature is useful if you don't want to go through the extra work of setting up linked accounts before testing the getUserAndLinks() method.

Select the Mocked response for GetUserAndLinks checkbox to enable this option (see screenshot below). You can choose the type of mocked response you want to receive based on the number of linked accounts you expect to be returned.

  • By default, No linked accounts is selected, which means there are no linked accounts returned in the response.
  • If you select One linked account, App Tester returns a response containing data for a single predefined linked account.
  • If you select Two linked accounts, App Tester returns a response containing data for two predefined linked accounts.

Selecting the mocked response option doesn't clear any test data stored in the App Tester local database. Unselecting this checkbox allows you to revert to testing using the test data stored in App Tester.

Configuring mock response for GetUserAndLinks API
Configuring mock response for GetUserAndLinks API

LinkUserAccount API

App Tester handles account linking requests locally with link tokens stored in its local database.

Similar to how you configure getUserAndLinks() in App Tester to test your app, you set up the linkUserAccount() method with the response you want to receive (see screenshot below). For a list of request status values, see RequestStatus.

Response options include Default, SUCCESSFUL, FAILURE, RETRYABLE_FAILURE, NOT_SUPPORTED, NOT_AVAILABLE, DUPLICATE_REQUEST, and FEATURE_TURNED_OFF.
Configuring response for LinkUserAccount API

Because App Tester doesn't connect to the Appstore cloud, it doesn't have access to the app's Appstore private key. Therefore, it can't decrypt the linkSigningKey provided in the new account linking request. As a result, SSI tokens returned from the getUserAndLinks() method in sandbox mode are signed using an arbitrary private signing key. These tokens won't be verifiable using the app's real Appstore public key in your cloud.

Use App Tester to unit test your Appstore SDK integration during the early stages of development and leverage Live App Testing (LAT) for end-to-end testing. To test the end-to-end flow using App Tester, make additional changes to your backend to differentiate authentication requests originating from your app's debug versions and skip SSI token signature verification.

Troubleshooting App Tester

If you suspect App Tester is not correctly invoked for the SSI API calls from your app, verify the following:

  • You're using the debug build of your APK for testing. App Tester only works with a debug version of your app.
  • You're using the latest version of App Tester. If you previously installed App Tester, you might be using an older version. To resolve this, uninstall App Tester and install the latest version.
  • Your device is in sandbox mode. You can query the getSDKMode() method by the SimpleSignInService class in the Appstore SDK to determine the current mode of Appstore SDK. Possible return values from this method are:

    • SANDBOX
    • PRODUCTION
    • UNKNOWN

The SDK mode should be SANDBOX. If the SDK mode returns UNKNOWN, this indicates a problem with the Appstore SDK initialization within your app. Verify whether you called SimpleSignInService#registerResponseHandler() to register your app context and response handler. For details, see Step 2: Register a concrete implementation.

Manage linked accounts

You can delete linked accounts stored in the App Tester local database. Click Unlink linked accounts to clear all linked accounts for the current user.

Managing linked accounts
Managing linked accounts

Simulate your users' experience

App Tester uses simulated implementations of user consent and login screens. Though these screens display the same details in the production screens in the app, the look and feel of these screens is quite different and unpolished compared to the app screens.

App Tester – Simulated User Consent Screen
App Tester – Simulated User Consent Screen
App Tester – Simulated Login Selection Screen
App Tester – Simulated Login Selection Screen

Last updated: Feb 17, 2026