为什么我的 Flutter 应用程序 apk 与任何东西都不兼容从而阻止了亚马逊移动市场提交?
Why is my Flutter application apk not compatible with anything thus preventing Amazon Mobile Marketplace submission?
我有一个小游戏应用程序 Deal-O-Round in the Google Play Store and I submitted the same APK about 7 years ago (July 6, 2014 https://smile.amazon.com/Csaba-Toth-Deal-O-Round/dp/B00LK8VBLS/) to the Amazon Mobile Marketplace as well. The 2014 version was based on Google PlayN 框架,除了 Android 和 iOS 平台外,它还允许 web-based 演示。很多时间过去了,去年我在 Flutter 中 re-implemented 整个游戏,除了 Android 和 iOS.[=25= 之外,它还允许构建 web-based 演示]
最近我收到了一封来自亚马逊的电子邮件,标题为“[需要采取行动] 目标 API 级别合规性需要应用程序更新”,这促使我尝试再次刷新他们商店中的 APK。根据电子邮件,Fire OS 6 版本需要最低 API 级别 25,而 Fire OS 7 将需要最低 API 级别 28。这是个好消息,我刷新了我的 Flutter 项目Gradle 升级将最低 SDK API 级别提高到 23。我当前的目标 API 级别是 29 as seen in my build.gradle. Everything is open source BTW.
android {
compileSdkVersion 29
...
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.dealoround.android"
minSdkVersion 23
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
...
我不确定这是否重要,但我的应用程序开发人员控制台下有一个“测试项目”(SKU12345) In-App 项目处于未完成状态,它一定是 2013 年的一些恶作剧,但我的应用没有任何应用内付款。 Flutter版本也没有任何广告,旧版本有(我讨厌一些广告项)。
问题来了:
我知道对于 min SDK 23,我会放弃 Fire OS 5 支持,因为这需要 min SDK 22(顺便说一句,如果需要,我可以恢复到 min SDK 16)。但还有其他问题。我怀疑这可能与 Flutter 无关。我正在使用 V1 和 V2 方法签署 APK。也许是 GET_ACCOUNTS
、USE_CREDENTIALS
或 WAKE_LOCK
的额外权限?供参考的是旧 APK:
Google Play 商店一切正常。我正在查看 https://developer.amazon.com/docs/app-submission/supported-filters-on-the-amazon-appstore.html,但没有看到我无法使用 GET_ACCOUNTS
、USE_CREDENTIALS
或 WAKE_LOCK
.
的迹象
我回到了截图的页面。在第一个(“Amazon Fire 平板电脑和手机”)和最后一个(“非亚马逊设备”)选项卡上,所有小问号都显示“以当前版本中的另一个 APK 为目标。” 提示。我需要对此进行更多研究,因为这听起来很荒谬。 “Amazon Fire TV” 选项卡的提示显示一些 minSdkVersion
(对于非常旧的设备)以及 "android.hardware.touchscreen"
功能提示。我的游戏需要触摸屏,所以这并不奇怪,旧的 APK 也不支持这些。
阅读更多关于 Targeted by another APK in the current version.
提示的信息 https://developer.amazon.com/docs/app-submission/publish-app-upload-apk-files.html#add_multiple_apks
“使用第二个 APK,您可以 select 支持第一个 APK 尚未 select 的设备。”。我不确定为什么商店不能自动提供更新的 APK 以及为什么我必须手动切换,但好吧,这就是我要做的。
- 开始编辑:
- 为旧 APK 关闭设备
- 关闭旧 APK 的另一个选项卡:
- 为较新的 APK 编辑和打开设备。也许这就是为什么会发生这种奇怪的事情,我必须将 minSdk 从 23 减少到 22 以获得更好的覆盖率:
所以 GET_ACCOUTNS
或 USE_CREDENTIALS
应该不是问题(到目前为止)。如果以上内容对您没有帮助,请查看 https://developer.amazon.com/docs/app-submission/troubleshooting-android-manifest-and-device-targeting.html
我有一个小游戏应用程序 Deal-O-Round in the Google Play Store and I submitted the same APK about 7 years ago (July 6, 2014 https://smile.amazon.com/Csaba-Toth-Deal-O-Round/dp/B00LK8VBLS/) to the Amazon Mobile Marketplace as well. The 2014 version was based on Google PlayN 框架,除了 Android 和 iOS 平台外,它还允许 web-based 演示。很多时间过去了,去年我在 Flutter 中 re-implemented 整个游戏,除了 Android 和 iOS.[=25= 之外,它还允许构建 web-based 演示]
最近我收到了一封来自亚马逊的电子邮件,标题为“[需要采取行动] 目标 API 级别合规性需要应用程序更新”,这促使我尝试再次刷新他们商店中的 APK。根据电子邮件,Fire OS 6 版本需要最低 API 级别 25,而 Fire OS 7 将需要最低 API 级别 28。这是个好消息,我刷新了我的 Flutter 项目Gradle 升级将最低 SDK API 级别提高到 23。我当前的目标 API 级别是 29 as seen in my build.gradle. Everything is open source BTW.
android {
compileSdkVersion 29
...
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.dealoround.android"
minSdkVersion 23
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
...
我不确定这是否重要,但我的应用程序开发人员控制台下有一个“测试项目”(SKU12345) In-App 项目处于未完成状态,它一定是 2013 年的一些恶作剧,但我的应用没有任何应用内付款。 Flutter版本也没有任何广告,旧版本有(我讨厌一些广告项)。
问题来了:
我知道对于 min SDK 23,我会放弃 Fire OS 5 支持,因为这需要 min SDK 22(顺便说一句,如果需要,我可以恢复到 min SDK 16)。但还有其他问题。我怀疑这可能与 Flutter 无关。我正在使用 V1 和 V2 方法签署 APK。也许是 GET_ACCOUNTS
、USE_CREDENTIALS
或 WAKE_LOCK
的额外权限?供参考的是旧 APK:
Google Play 商店一切正常。我正在查看 https://developer.amazon.com/docs/app-submission/supported-filters-on-the-amazon-appstore.html,但没有看到我无法使用 GET_ACCOUNTS
、USE_CREDENTIALS
或 WAKE_LOCK
.
我回到了截图的页面。在第一个(“Amazon Fire 平板电脑和手机”)和最后一个(“非亚马逊设备”)选项卡上,所有小问号都显示“以当前版本中的另一个 APK 为目标。” 提示。我需要对此进行更多研究,因为这听起来很荒谬。 “Amazon Fire TV” 选项卡的提示显示一些 minSdkVersion
(对于非常旧的设备)以及 "android.hardware.touchscreen"
功能提示。我的游戏需要触摸屏,所以这并不奇怪,旧的 APK 也不支持这些。
阅读更多关于 Targeted by another APK in the current version.
提示的信息 https://developer.amazon.com/docs/app-submission/publish-app-upload-apk-files.html#add_multiple_apks
“使用第二个 APK,您可以 select 支持第一个 APK 尚未 select 的设备。”。我不确定为什么商店不能自动提供更新的 APK 以及为什么我必须手动切换,但好吧,这就是我要做的。
- 开始编辑:
- 为旧 APK 关闭设备
- 关闭旧 APK 的另一个选项卡:
- 为较新的 APK 编辑和打开设备。也许这就是为什么会发生这种奇怪的事情,我必须将 minSdk 从 23 减少到 22 以获得更好的覆盖率:
所以 GET_ACCOUTNS
或 USE_CREDENTIALS
应该不是问题(到目前为止)。如果以上内容对您没有帮助,请查看 https://developer.amazon.com/docs/app-submission/troubleshooting-android-manifest-and-device-targeting.html