Log In and Add an App
Step 7: Upload APK (Binary) Files
The documentation here relates to the Binary File(s) tab:
On the Binary File(s) tab, you upload your APK files, indicate which devices your app supports, and more.
For more conceptual topics related to APKs, see the following:
If you're uploading a web app, see Upload Web App Files instead of this topic.
- Binary File(s) tab
- Preparing Your APK
- Upload Your APK
- Adjust Device Support for your APK
- Add Multiple APKs for the Same App
- Replace the APK of a Published App
- Troubleshooting Common Errors
- Next Steps
Binary File(s) tab
The following table describes each field on the Binary File(s) tab.
|Apply Amazon DRM?||
For each app that you submit to Amazon, you can choose to apply DRM or to make your app available without any rights management constraints. DRM protects your application from unauthorized use. Without DRM, your app can be used without restrictions by any user. If you choose to apply DRM to one of your apps, you must use the DRM system provided by Amazon through the developer portal. See About DRM for more details.
|Appstore Certificate Hashes||
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.
Upload your Android APK file. (Note that the terms "binary file" and "APK" are used interchangeably here.) See Preparing the APK File for Your App. For details on uploading your APK, see Upload Your APK.
Select at least one language supported by your APK. (The default is English.) Your selection here appears on the app details page in the Appstore to let users know which language is available in the app.
Accept the export compliance statement by selecting the checkbox to confirm that your app complies with applicable export and import regulations.
|Use Amazon Maps Redirection||
Amazon devices do not support the Google Maps API. However, the Amazon Maps API provides interface parity with the Google Maps v1 API. By using Amazon Maps Redirection, you can automatically redirect Google Maps v1 API calls from your app to the Amazon Maps API, providing a seamless maps experience in your app with no coding changes. The redirection occurs ONLY on Amazon devices.
Provide a unique name for your APK file, which will be used internally and will not be seen by customers. Amazon automatically provides a default name for this field.
Use this field to communicate with the Amazon testing team. (If no testing instructions are needed, you can leave this field blank.) Testing instructions might include the following —
Preparing Your APK
For general information about preparing your APK and the code wrapper that Amazon uses with your APK, as well as APK size limitations and other details, see Preparing the APK File for Your App. The content here assumes you already have an APK ready to upload to the Amazon Appstore.
Upload Your APK
Go to the Binary File(s) tab, if necessary. (If you landed here out of context of the publishing workflow shown at the top of the screen, see Submitting Apps to the Amazon Appstore.)
If you've already published your app and are submitting a new version, click Add Upcoming Version below your app's title.
Drag your APK into the UPLOAD BINARY square.Tip: The package name in your APK must be unique, and it shouldn't include
amazonin the name. If you use the same package name as another app, you will get an error when uploading the APK. The
versionCodemust be unique as well (and not the same as the
versionCodein a previous APK you uploaded).
After uploading the APK, the Appstore shows the package name, version code, version name, file size, API levels, features, libraries, permissions, localizations, supported screens, and other details that will determine the device compatibility.
Adjust Device Support for your APK
With your APK uploaded, the Device Support section shows which devices are supported by (or are compatible with) your APK, based on the attributes in your APK manifest. The attributes in your manifest act as filters that automatically determine which devices are 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 APK 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 devices, see Device Specifications for Fire TV.Warning: Fire TV devices are not selected/targeted by default (even if the APK is compatible). You must manually select which Fire TV devices your APK supports. See Device Filtering for Fire TV Devices for details.
In the Device Support dialog box, the identifiers used for Fire TV devices differ somewhat from the Fire TV naming conventions in the documentation and amazon.com website. Here's what these names in the submission console refer to:
Device support name Friendly name Fire TV (2014)—AFTB Fire TV (Gen 1) Fire TV (2015)—AFTS Fire TV (Gen 2) Fire TV (Gen 3)—AFTN Fire TV (Gen 3) Fire TV Stick—AFTM Fire TV Stick (Gen 1) Fire TV Stick with Alexa Voice Remote—AFTT Fire TV Stick (Gen 2) Fire TV Edition - Element 4K—AFTRS Fire TV Edition - Element 4K Fire TV Edition - Toshiba 4K—AFTKMST12 Fire TV Edition - Toshiba 4K Fire TV Cube—AFTA Fire TV Cube
- Non-Amazon Android devices: Shows Android devices on which your app could be installed through the Amazon Appstore for Android app. This option provides additional avenues of distribution 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:
To understand why a device isn't supported by your APK, move your mouse over the help icon next to the device name in the Device Support dialog box, as shown in the following image.
For additional information about supported devices for your APK, see the following:
- Troubleshooting Android Manifest and Device Filtering
- Device Filtering and Compatibility
- Supported Filters on the Amazon Appstore.
The All Devices drop-down menu (the upper-left of the previous screenshot) also provides a quick way to review your device support options:
- All Devices: Shows every possible device
- Supported Devices: Shows those devices supported by your APK
- Manually Excluded: Shows devices that have been de-selected
- Unsupported Devices: Shows devices that have been automatically excluded due to incompatibility issues with your APK. This includes devices supported by another APK.
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 a blacklisting approach to a whitelisting approach for non-Amazon devices.
If you want to add another APK for the same app, see the next section, Add Multiple APKs for the Same App.
Add Multiple APKs for the Same App
More conceptual details about uploading multiple APKs for your app are explained in Multiple APKs for the Same Application Listing. Note that adding multiple APKs for the same app is supported for Amazon devices only. The Amazon Appstore does not support multiple APKs when targeting non-Amazon devices. Make sure each APK has the same
package name in the manifest but also has unique
versionCode in the Gradle build file.
When you add multiple APKs, because each APK can only be available for a single device, you have to remove support for devices from your first APK that you want to be available for the additional APKs. The following step-by-step instructions and screenshots will clarify this selection process.
To upload multiple APKs:
- If you haven't already uploaded your first APK, see Upload Your APK above.
For the first APK you uploaded, click Edit device support and remove support for devices that you plan to target with your second APK.
For example, suppose you have two APKs for your Fire TV app: "APK-alias1" and "APK-alias2". With APK-alias1, you want to target all Fire TV devices except Fire TV (Gen 3). For APK-alias1, click Edit Device Support next to Amazon Fire TV Devices and clear the check box next to "Fire TV (Gen 3)." This will make this device available for APK-alias2 to select. If you don't remove the device support from the first APK, you won't be able to select it with the second APK.
Note that if you're updating an existing APK, when you de-select some supported devices, you may 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 the device that you de-selected, which is now unsupported by your app, won't get the update. You can read more in Warning: Reduced device support. Since you're uploading multiple APKs, you can disregard this notice. After you upload another APK and select support for these de-selected devices, the warning will no longer be applicable.
- In the Binary alias field, give your APK a recognizable name to distinguish it from the next APK you upload.
Click the Save and Add a Binary button and upload another APK.
When you click the "Save and Add a Binary" button, the devices supported by the first APK are unavailable for the second APK — because two APKs can't be installed on the same device. Under the greyed-out devices, you should see the phrase "Targeted by another binary in current or prior 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 APK, you can select support for devices not already selected by the first APK.
Continuing with our previous example, suppose you upload "APK-alias2" and want Fire TV (Gen 3) 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.
With multiple APKs, unlike with Google Play the Amazon Appstore does not automatically assign the APK based on the API level or
versionCode. You must manually select the supported devices when uploading multiple APKs. This is especially true for Fire TV devices, because automatic manifest filtering for Amazon devices is largely ignored for these devices.
- Add a name for the APK in the Binary alias field to distinguish it from the first APK.
When finished, click Save.
You can add more than two APKs per app. Continue adding more APKs as desired.
Replace the APK of a Published App
To replace the APK of an app that is already published, follow these steps.
- Build your new APK, giving it a new
versionCodein the app's Gradle build file.
- Sign in to the Developer Portal, and click the name of the app you want to modify.
- Near the top of the page, in the area below the name of your app, click Add Upcoming Version, and click OK. You use the Upcoming Version feature both for updating existing APKs and adding new APKs.
- Go to the Binary File(s) tab and click the Edit button. The existing APKs are listed on this page.
- In the Binary file section, click the X next to your APK file. This removes the APK without requiring you to re-select device support.
- Drag and drop the new APK file onto the Upload Binary box. (If you're adding multiple APKs, see Add Multiple APKs for the Same App above.)
- Click Save.
- Choose the Release Notes tab. Each update you make to your original app requires release notes.
- Click Save and then Submit App.
Troubleshooting Common Errors
This section provides troubleshooting information related to APK submissions on the Binary File(s) tab.
Error: Duplicate package name
When uploading an APK, you see the following error:
"Failed to upload binary. The package name of the uploaded binary, com.amazon.android.yourapp, 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 APK file on another Amazon developer account as either an app submission or Live App Test. If you haven't uploaded this same APK under another account, go to Support > Contact Us and report the issue, noting the package name.
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 APK file must be unique to the app you are publishing and is usually in the format of
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 app’s APK file on their account. If they have, ask them to end the current Live App Test. Then contact us with the package name to resolve the issue.
Warning: Reduced device support
When adjusting device support for an APK, 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 APK, you have introduced new attributes in your manifest or build.gradle file that shrink the number of compatible devices. Most commonly, you may 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 may 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 APK, you see a message that says a particular device is not supported for your APK. The message might be as follows:
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 APK 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 APKs, the device might already be supported by another APK. If so, when you move your mouse over the unsupported device, it says:
Targeted by another binary in the current version.
Multiple APKs cannot support the same device. You'll need to edit the device support for one APK so that you can select support for the device with the other APK. See Add Multiple APKs for the Same App for step-by-step details. See Multiple APKs for the Same Application Listing for a more conceptual background.
Go to the next step: Step 8: Submit Your App and Check Status.