Step 7: Upload APK Files
The documentation here relates to the APK Files tab:
On the APK Files tab, you upload your APK files, indicate which devices your APKs support, and more. For more conceptual topics related to APKs, see the following:
- Preparing the APK File for Your App: Provides information about preparing your APK and the code wrapper that Amazon uses with your APK, as well as APK size limitations and other details.
- Device Filtering and Compatibility: Explains how attributes in your manifest determine the devices your APK supports.
(If you're uploading a web app, see Upload Web App Files instead of this topic.)
- APK Files Fields
- Appstore Certificate Hashes
- Update an Existing APK
- Adjust Device Support for your APK
- Add Multiple APKs for the Same App
- Troubleshooting Common Errors
- Next Steps
APK Files Fields
The following table describes each field and section on the APK Files tab.
|Apply Amazon DRM?||
For each app that you submit to Amazon (a single app might contain multiple APKs), you can choose either to apply DRM or make your app available without any rights management constraints. DRM (digital rights management) protects your application from unauthorized use. The DRM setting applies to all of your app's APKs. 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.
Upload your Android APK files (drop one file at a time into the box). If didn't use Android Studio to build your signed APK, you might need to zipalign your file. When you add an APK file, you can see its details by clicking the 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:These details determine what devices are supported by your APK (filtering is explained in Device Filtering and Compatibility).
Tip: The package name in your APK must be unique, and it shouldn't include
After you upload an APK, the APK receives an alias named after the API level (for example, "apilevel22"). You can rename the alias as desired. The custom alias is used internally and not be seen by customers. See Preparing the APK File for Your App and Updating a Published App for more details related to APK files.
Select at least one language supported by your APK. (The default is English.) 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.)
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 —
|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.|
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 APK
If you're updating an existing APK, see Updating a Published App. When you make the update, you have the option of replacing an existing APK and retaining the same Device Support selections, or removing the previous APK and re-selecting your Device Support details.
Adjust Device Support for your APK
With your APK uploaded, the Device Support section shows which devices are supported by (compatible with) your APK, based on the attributes in your manifest.
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.
- 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 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:
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.
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. In other words, your APK won't be compatible by default on those devices; instead, you'll need to manually select which third-party devices your APK will support.
To add an additional APK for the same app, see the next section, Add Multiple APKs for the Same App.
Add Multiple APKs for the Same App
When uploading multiple APKs, make sure each APK has the same
package name in the manifest; however, each individual APK should have a unique
versionCode in your 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, upload it by dragging the APK into the APK Files box.
For the first APK you uploaded, next to "Supported Devices," click Edit 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 — "APK1" and "APK2". With APK1, you want to target all Fire TV devices except Fire TV (Gen 3). 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 (Gen 3)." This will make Fire TV (Gen 3) 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.
Note that if you're updating an existing APK, when you clear the check box next to 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 those devices (now unsupported by this APK) 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 target these devices removed from your first APK, the warning will no longer be applicable.
- (Optional) Give your APK a recognizable alias to distinguish it from the next APK you upload.
Drag another APK file into the APK Files box. Optionally, change the alias for the new APK you uploaded to distinguish it from the first APK.
When you drag another APK into the APK Files tab, 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 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 APK, you can select support for devices not already selected by the first APK.
Continuing with our previous example, suppose you upload "APK2" 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, the Amazon Appstore does not automatically assign the APK based on the API level or
versionCode(unlike with Google Play). You must manually select the supported devices when uploading multiple APKs.
When finished, click Save.
You can add more than two APKs per app. Continue adding as many APKs as desired.
Troubleshooting Common Errors
This section provides troubleshooting information related to APK submissions on the APK Files tab.
Error: Duplicate package name
When uploading an APK, you see the following error:
"Failed to upload APK. The package name of the uploaded APK, 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, 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 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.