No results found

Try a different or more specific query
Developer Console
Thank you for your visit. This page is only available in English at this time.

Step 7: Upload App Files (APK Files)

The documentation here relates to the APK Files tab:

APK Files tab

On the APK Files tab, you upload your Android binary files (AAB or APK), indicate which devices your app supports, and more. For more conceptual topics related to binary files, see the following:

  • Preparing Your Binary File: Provides information about preparing your binary file and the code wrapper that Amazon uses with your app, as well as size limitations and other details.
  • Device Filtering and Compatibility: Explains how attributes in your manifest determine the devices your binary supports.

(If you're uploading a web app, see Upload Web App Files instead of this topic.)

APK Files Fields

The following table describes each field and section on the APK Files tab.

APK Files tab fields
Field Description
Add App Bundles or APK Files

Upload an Android App Bundle (AAB) or an APK file. If submitting an APK and you didn't use Android Studio to build your signed APK, you might need to zipalign your file. You can upload multiple binary files by dropping one file at a time into the box. When you add a binary file, you can see its details by clicking the information icon information icon . These details include the version code, version name, file size, package name, minimum SDK version, features, libraries, permissions, localizations, supported screens, compatible screens, OpenGL details, and native platforms. For example:

APK details
These details determine what devices are supported by your binary file (filtering is explained in Device Filtering and Compatibility).

After you upload a binary, the file receives an alias, for example, "APK1". You can rename the alias as desired. The custom alias is used internally and not be seen by customers. See Preparing Your Binary File and Update a Published App for more details related to binary files.

Allow Amazon to Apply DRM?

DRM (digital rights management) protects your app from unauthorized use. Without DRM, your app can be used without restrictions by any user.

If your app isn't using the Appstore SDK, Amazon can automatically add DRM functionality to your app. Select Yes to allow Amazon to add DRM to your app. Select No if you do not want Amazon to add DRM to your app.

If you have multiple binary files, your selected DRM setting applies to all of your app's binaries. If you have previously uploaded binary files and are adding a new binary with different DRM settings, you must replace the previous binary files if you want them to receive the updated DRM settings. Otherwise, your previous binary files retain the same DRM settings as before. For more information about automatically-applied Amazon DRM, see About DRM.

Language Support

Select at least one language supported by your APK. Your selection here appears in a "Supported Languages" section in the device app details page in the Appstore to let users know which language is available in the app. (The "Supported Languages" section appears only on the device's display of Appstore apps, not on the Amazon Appstore website.)

The Language Support selection here doesn't influence whether your app becomes available in localized Appstore marketplaces. Any localization interfaces in your APK must be handled by your APK itself, not through settings in the Appstore submission process. However, if you do have a localized APK, you can add localized descriptions and image assets. The descriptions, image assets, and language support option selected here all inform your app details page in the Amazon Appstore. See Distribute Your App Internationally for more details on localization.

Testing Instructions

Use this field to communicate with the Amazon testing team. (If no testing instructions are needed, leave this field blank.) Testing instructions might include the following —

  • If your app has difficult-to-discover features, include directions here for finding those features. Also, if you need to resubmit your app based on feedback from Amazon, you can use this field to respond to the test report emails.
  • If your app requires users to log in before launching and using the app, include a set of test credentials for the Amazon test team to use. If Amazon cannot successfully launch your app during testing, the app will be rejected.
Export Compliance Asks you to certify that your app is compliant in all countries in which you've chosen to make it available. You can read more details in the "Compliance with Laws; Privacy and Security Obligations" section in the Amazon Developer Services Agreement
Use Amazon Maps Redirection Allows you to automatically redirect Google Maps v1 API calls from your app to the Amazon Maps API. Only used in tablet and phone apps if you have the Google Maps API implemented.

Public Key and PEM File

In the upper-right area of the tab, there is a link for a Public Key. This public key, which is unique per app, establishes a secure communication channel between the Amazon Appstore and your app. When you generate the public key from the Developer Console, Amazon generates a corresponding private key. These public and private keys form a key pair to sign license responses. Through this key pairing, you ensure that the users who install your app are authorized.

The public key is stored in a PEM file. If your app uses the Appstore SDK or the Appstore SDK plugin for Unity for In-App Purchasing (IAP) or DRM, you must add the PEM file to your project. To configure your app with the public key:

  1. Click Public Key.
  2. In the Public Key dialog box that appears, click the AppstoreAuthenticationKey.pem link to download the PEM file.

    PEM file download link
    PEM file download link
  3. Copy the AppstoreAuthenticationKey.pem file.
  4. Follow the instructions for your project type.

    Android project instructions

    1. Paste the PEM file into the app/src/main/assets folder of your Android Studio project.
    2. In the Project view, the assets folder is usually in app/src/main/assets. If your app doesn't have an assets folder, you must create one. Then drag your PEM file into it.

    Unity project instructions

    1. In the Assets folder of your project, create a new folder named StreamingAssets.
    2. Paste the PEM file in your Assets/StreamingAssets folder.

For more details, see Configure Appstore SDK with your public key or Configure Unity App with Public Key.

Appstore Certificate Hashes

Certificate information, which includes the SHA-1, MD5, and SHA-256 hashes, is available from a link in the upper-right area of the tab. As part of the ingestion process, Amazon removes your developer signature and applies an Amazon signature. This signature is unique to you, does not change, and is the same for all apps in your account. For more details, see Amazon App Signatures.

Update an Existing App

If you're updating an existing app, see Update a Published App. When you make the update, you have the option of replacing the existing binary file and retaining the same Device Support selections, or removing the previous binary file and re-selecting your Device Support details.

Adjust Device Support for Your App

After you upload your app's binary file , the number of supported devices appears in the Uploaded Files section.

Viewing the number of supported devices

To manage which devices your binary supports, select Edit next to the number of supported devices. In the Device Support overlay, devices with an 'X' next to their name are unsupported. Unsupported devices are determined by the attributes in your manifest and the countries you target in the Availability & Pricing tab.

If you see a device marked unsupported, find out why by moving your mouse over the help icon Appstore help icon next to the device name in the Device Support dialog box, as shown in the following image.

Device Support screen showing reasons why a device isn't supported

If necessary, you can manually remove support for devices that have known compatibility issues. The supported devices are grouped into three categories:

  • Amazon Fire phones and tablets: Shows the Fire phones and tablet support for your app. See the Tablet Device Specifications for more details. By default, device support for your uploaded binary is turned on for all Amazon Fire Phone and Fire tablet devices, and for all non-Amazon Android devices.
  • Amazon Fire TV devices: Shows the Fire TV device support for your app. For details on Fire TV device names, see Fire TV naming conventions; for specifications, see Device Specifications for Fire TV.

  • Non-Amazon Android devices: Shows Android devices on which your app could be installed through the Amazon Appstore for Android app. The Amazon Appstore supports non-Amazon devices running Android 5.0 and above. This option provides additional distribution avenues for your app (and is especially helpful if your app is only available in the Amazon Appstore, not on Google Play). Within this non-Amazon Android devices grouping, devices are sorted into three groups: Supported (compatible), Excluded (manually de-selected), and Unsupported (incompatible based on your manifest settings).

To adjust which devices are supported by your app, click Edit device support and update the devices indicated. Toggle device support on (green) or off (gray) as appropriate. Use the tabs at the top of the dialog to move between categories.

For example, if you're uploading a streaming media app designed for Fire TV devices, click Edit device support on the Amazon Fire TV devices row and select the appropriate device support options on the Amazon Fire TV tab:

Device support screen for Fire TV

For additional information about supported devices for your app, see the following:

For non-Amazon devices, at the bottom of the Device Support dialog, there's an option for All other Android devices. The Non-Amazon Android devices can be toggled on or off as a whole, or you can manually adjust device support. This setting allows your app to be distributed to any other Android devices, including future compatible Android devices. New devices are added regularly based on device popularity. Through manifest filtering, the Appstore automatically determines the device's compatibility.

If you turn off "All other Android devices," you change your compatibility strategy from using a deny-list to using an allow-list for non-Amazon devices. In other words, your app won't be compatible by default on those devices; instead, you'll need to manually select which third-party devices your app will support.

To add an additional binary for the same app, see the next section, Add multiple binaries for the same app.

Add Multiple Binaries for the Same App

The Amazon Appstore supports uploading multiple binaries for both AAB and APK files. For APKs, more conceptual details are explained in Multiple APKs for the Same Application Listing.

When uploading multiple binaries, make sure each file has the same package name in the manifest; however, each individual binary should have a unique versionCode in your Gradle build file.

When your app is available on the Appstore, each device has one APK associated with it. During app submission, when you add multiple binary files, you have to remove support for devices from your first binary that you want to be available for the additional binary files. The following step-by-step instructions and screenshots clarify this selection process.

To upload multiple binary files:

  1. If you haven't already uploaded your first binary file, upload it by dragging the file into the App Bundles or APK Files box.
  2. For the first binary you uploaded, next to "Supported Devices," click Edit and remove support for devices that you plan to target with your second binary.

    For example, suppose you have two APKs for your Fire TV app — "APK1" and "APK2". With APK1, you want to target all Fire TV devices except Fire TV (3rd Gen). For APK1, click Edit next to "Supported Devices" in the APK File section. In the Device Support dialog box that appears, clear the check box next to "Fire TV (3rd Gen)." This makes Fire TV (3rd Gen) available for APK2 to target. If you don't remove the device support from the first APK, you won't be able to target it with the second APK.

    Removing device support from the first APK
    In this scenario, we removed support for Fire TV (3rd Gen) because we want to select it with our second APK

    Note that if you're updating an existing binary file, when you clear the checkbox next to some supported devices, you might see a "Reduced device support" warning. This warning lets you know that you're shrinking the number of supported devices for your app. Customers who previously installed your app on those devices (now unsupported by this binary) won't get the update. (You can read more in Warning: Reduced device support.) Because you're uploading multiple binary files, you can disregard this notice. After you upload another binary and target these devices removed from your first binary file, the warning is no longer be applicable.

  3. (Optional) Give your binary file a recognizable alias to distinguish it from the next binary you upload.
  4. Drag another binary file into the App Bundles or APK Files box. Optionally, change the alias for the new file you upload to distinguish it from the first binary file.

    When you drag another binary file into the APK Files tab, the devices supported by the first binary are unavailable for the second binary file — because two binary files can't be installed on the same device. Under the greyed-out devices, you should see the phrase "Targeted by another APK in the current version." ("Targeted" just means that you selected support for the device with your app.) Remember this rule: Multiple APKs cannot be installed on the same device. With the second binary file, you can select support for devices not already selected by the first binary.

    Continuing with our previous example, suppose you upload "APK2" and want Fire TV (3rd Gen) to support this APK. You already cleared support for this device with the previous APK, so it should now be selectable with this second APK.

    Adding device support to the second APK
    Fire TV (3rd Gen) can be selected because you didn't already select support for it with the previous APK. The other devices have a gray X, meaning they are unavailable to be supported by this APK because they are already supported by the previous APK.

    With multiple binary files, the Amazon Appstore does not automatically assign the binary based on the API level or versionCode(unlike with Google Play). You must manually select the supported devices when uploading multiple binary files.

  5. When finished, click Save.

    You can add more than two binary files per app. Continue adding as many binary files as desired.

Troubleshooting common errors

This section provides troubleshooting information related to binary file submissions on the APK Files tab.

Error: Duplicate package name

When uploading a binary file, you see one of the following errors:

  • Failed to upload APK. The package name of the uploaded APK,, is already in use by an app owned by a different developer. Please contact us for more information.
  • Failed to upload App Bundle. The package name of the uploaded bundle,, is already in use by an app owned by a different developer. Please contact us for more information.

First, check to make sure that you have not uploaded this binary file on another Amazon developer account as either an app submission or Live App Test. If you haven't uploaded this same file under another account, submit a support case reporting the issue and noting the package name. To submit a support case, sign in to the Developer Console, click the ? in the upper-right corner, and click Contact Us.

Note that when using development environments such as Unity or pre-existing manifest files, it's possible that your app's package name will have a placeholder value that should be changed prior to submission. The package name of your binary file must be unique to the app you are publishing and is usually in the format of com.companyname.appname.

If you have an association with a developer or publishing company that might have uploaded your app for Live App Testing, contact your development partner to confirm that they have not submitted your binary file on their account. If they have, ask them to end the current Live App Test. Then contact Amazon with the package name to resolve the issue.

Warning: Reduced device support

When adjusting device support for a binary file, you see a warning that says the following:

  • Device support has been reduced from the previous version. Some existing customers will not be able to upgrade. To resolve manifest conflicts, Amazon recommends editing the manifest to retain your current device support.

This message means that, with your newly uploaded binary file, you have introduced new attributes in your manifest or build.gradle file that shrink the number of compatible devices. Most commonly, you might have incremented the API level, which reduces the number of devices that can support the update. As such, the Appstore is warning you that some devices might not be able to install this update.

For example, suppose you publish an APK with manifest attributes that require at minimum API level 19, and customers with a device supporting API level 19 (but not support for any level greater) install the app. Later, you update the app with new features or permissions requiring APK level 22 as a minimum. This new update will be incompatible with the previous version of the app the customer (with API level 19) installed. As a result, the customer will not see that an update is available.

Target device not available

When uploading a new binary file, you see a message that says a particular device is not supported. The message might one of the following:

  • Your App Bundle manifest requires capabilities not present on this device.
    android:minSdkVersion = '22'; device requires '15'
  • Your APK manifest requires capabilities not present on this device.
    android:minSdkVersion = '22'; device requires '15'

To see the reason the device isn't supported, move your mouse over the help icon next to the device name in the Device Support dialog box. See Adjust Device Support for Your App above for more details. The incompatibility could be due to the API level, OpenGL compression format, CPU, screen size and density, device features, or even other factors about your app such as lack of availability in the geographic locale.

Targeted by another binary in the current version

If you're uploading multiple binaries, the device might already be supported by another binary file. If so, when you move your mouse over the unsupported device, it says:

  • Targeted by another binary in the current version.

Multiple binaries cannot support the same device. You must edit the device support for one binary file so that you can select support for the device with the other binary. See Add Multiple Binaries for the Same App for step-by-step details. See Multiple APKs for the Same Application Listing for a more conceptual background.

Upload App Bundles

The Amazon Appstore supports Android's App Bundle file format for app submission. The Appstore receives your app bundle and generates an APK. Amazon Appstore uses the bundletool to convert the app bundle files into a single universal APK that can be downloaded and installed across client devices. There won't be any change in customer experience or app file size.

You can submit your Android App Bundle files to the Appstore, without the need to create separate APKs. However, app bundle files must meet Amazon Appstore's submission requirements. See Understanding Amazon Appstore Submission and Amazon Appstore Presubmission Checklist for detailed explanations of app requirements.

Create App Bundles

Before you can submit an app bundle on the Amazon Appstore, you must create an Android App Bundle (AAB) file. For information about configuring app bundle files, see About Android App Bundles in the Android developer documentation.

Test App Bundles

Before submitting your app, the Amazon Appstore recommends testing your bundle locally by using the bundletool. For details on how to generate an APK from your app bundle with bundletool, see the bundletool documentation. After testing your bundle locally, the Appstore recommends you use Live App Testing (LAT) with your app bundle before submitting your app to be published live.

If during the LAT phase your testers encounter issues when trying to access on-demand features, try the following:

  • If you want the feature to be available in the deliverable APK, add the "fusing" attribute in the manifest.
  • Alternatively, omit the on-demand feature from the deliverable APK by removing all references to it.

Submit app bundles

To submit an app bundle in the Developer Console:

  1. Go the APK Files tab.
  2. Upload the app bundle (.aab) file in the Add App Bundles or APK Files section.
  3. Complete the remaining sections. For more details, see APK Files Fields.

After uploading the app bundle, you see a list of devices that your app supports. For more details, see Adjust Device Support for Your App.

App bundle FAQs

This section contains frequently asked questions (FAQs) related to app bundles.

App submission

Q: Are Android app bundles mandatory for Amazon Appstore?
App bundles are optional. You can continue submitting apps using the existing APK format.
Q: Do app bundles change the way I submit apps to the Appstore?
No, app bundles do not change the app submission process for either app format (AAB or APK).
Q: Do I need to resubmit my app if it was published using APKs?
No, you do not need to resubmit your published app if it was previously submitted in the APK format. You can continue publishing new apps and updating existing apps using the APK format. You have the choice to use app bundles for future submissions by uploading a file with the Android App Bundle format (.aab).
Q: Will my apps get all available Android App Bundle benefits?
The Appstore allows you to upload your app using the app bundle file format (.aab). At this time, app size reduction, dynamic delivery, and instant app features aren't supported. For new feature announcements, see the Appstore Developer Blog.

App bundle features

Q: Will my apps get all available Android App Bundle benefits?
The Appstore allows you to upload your app using the app bundle file format (.aab). At this time, app size reduction, dynamic delivery, and instant app features aren't supported. For new feature announcements, see the Appstore Developer Blog.
Q: What happens if my app bundle contains dynamic delivery modules?
If the module is marked with the "fusing" attribute, it's merged in the universal APK.
Q: What happens if my app bundle contains asset packs?
  • Asset packs not configured as install-time are not merged in the universal APK.
  • Asset packs configured as install-time are fused in the universal APK.
Q: What happens if my app bundle contains conditional delivery modules?
Conditional delivery modules not annotated with the "fusing" attribute are not merged in the Universal APK.

Amazon services

Q: Can I use the App Submission API with app bundles?
No, the App Submission API doesn't support app bundles at this time.
Q: Can I use App Testing Service (ATS) with app bundles?
No, ATS doesn't support app bundles.
Q: Can I use Live App Testing (LAT) with app bundles?
Yes, LAT supports app bundles. The Appstore recommends using LAT to test your app bundle before submitting your app to be published live.

Next Steps

Go to the next step: Step 8: Submit Your App and Check Status.

Last updated: May 18, 2022