代码之家  ›  专栏  ›  技术社区  ›  Csaba Toth

为什么我的Flutter应用程序apk与任何阻止亚马逊移动市场提交的东西都不兼容?

  •  0
  • Csaba Toth  · 技术社区  · 4 年前

    我有一个小游戏应用程序 Deal-O-Round Google Play Store 大约7年前(2014年7月6日),我提交了相同的APK https://smile.amazon.com/Csaba-Toth-Deal-O-Round/dp/B00LK8VBLS/ )亚马逊移动市场也是如此。2014年的版本是基于 Google PlayN 该框架允许在Android和iOS平台之外进行基于网络的演示。很多时间过去了,去年我在Flutter中重新实现了整个游戏,这也允许在Android和iOS之外构建基于网络的演示。

    最近,我收到了一封来自亚马逊的电子邮件,标题是“目标API级别合规所需的[行动]应用程序更新”,这促使我再次尝试刷新他们商店中的APK。根据电子邮件,Fire OS 6版本要求最低API等级25,Fire OS7版本要求最低API等级28。这是个好消息,我刷新了我的Flutter项目,Gradle升级将最小SDK API级别提升到了23。我目前的目标API水平是29 as seen in my build.gradle 一切都是 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)应用程序内项,这一定是2013年的一些恶作剧,但我应用程序没有任何应用程序内支付。Flutter版本也没有任何广告,旧版本有(我讨厌一些广告项目)。

    关键在于: console showing two APKs new apk compatibility matrix new apk manifest view

    我明白,对于min SDK 23,我会放弃对Fire OS 5的支持,因为这需要min SDK 22(顺便说一句,如果需要,我可以恢复到min SDK 16)。但还有其他问题。我怀疑这可能与Flutter无关。我使用V1和V2方法对APK进行签名。也许这是额外的权限 GET_ACCOUNTS , USE_CREDENTIALS ,或 WAKE_LOCK ? 这里是旧APK的参考:

    old apk manifest view old apk compatibility matrix

    Google Play商店一切正常。我在看 https://developer.amazon.com/docs/app-submission/supported-filters-on-the-amazon-appstore.html 我没有看到任何迹象表明我不能使用 获取计数 , 使用凭证 ,或 WAKE_LOCK .

    0 回复  |  直到 3 年前
        1
  •  0
  •   Csaba Toth    3 年前

    我回到了截图所在的页面。在第一个( “亚马逊Fire平板电脑和手机” )最后一个( “非亚马逊设备” )标签所有小问号显示 “被当前版本中的另一个APK锁定。” 提示。我需要进一步研究,因为这听起来很荒谬。这个 “亚马逊消防电视” 选项卡的提示显示了一些 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,您可以选择支持第一个APK尚未选择的设备。” 。我不知道为什么商店不能自动提供最新的APK,为什么我必须手动切换,但好吧,这就是我要做的。

    1. 开始编辑: enter image description here
    2. 关闭旧APK的设备 enter image description here
    3. 转到旧APK的另一个选项卡: enter image description here
    4. 编辑和打开较新APK的设备。也许这就是为什么会发生这种奇怪的事情,我必须将minSdk从23减少到22,以获得更好的覆盖率: enter image description here

    所以 GET_ACCOUTNS USE_CREDENTIALS 据推测(到目前为止)这不是问题。如果以上内容对您没有帮助,请查看 https://developer.amazon.com/docs/app-submission/troubleshooting-android-manifest-and-device-targeting.html