Почему мои заявки на Amazon Appstore отклоняются? Как получить больше информации?

#android #build.gradle #amazon-appstore #login-with-amazon #amazon-device-messaging

#Android #build.gradle #amazon-appstore #войдите в систему с помощью Amazon #amazon-устройство-обмен сообщениями

Вопрос:

Уже более года у меня есть русская многопользовательская игра в слова, опубликованная на Amazon.

Теперь я перевел его на английский и немецкий языки, но возникли проблемы с получением 2 переведенных приложений через обзор Amazon Appstore —

скриншот

Ответ всегда один и тот же: «Приложение завершает работу / принудительно закрывается / зависает / отображает сообщение об ошибке после запуска».

Но нет информации, на каком устройстве они были протестированы (на моих планшетах Fire 5 и Fire 7 игра работает просто отлично), и нет журнала ошибок.

Я пытался связаться со службой поддержки разработчиков, запрашивая какие-либо журналы, но ответа не получил.

Мое приложение использует LWA и ADM и имеет minSdk 16. Мои приложения также публикуются в Google Store (они используют там вход в Google и FCM) и Huawei AppGallery (они используют там HMS).

Мне просто нужно немного больше информации, чтобы устранить любые проблемы с моим приложением. Если бы я знал, какое устройство используется для тестирования, я бы просто купил или одолжил его.

Может быть, кто-нибудь хочет загрузить файлы APK и попробовать мою игру на своих устройствах Amazon Fire?

Наконец, ниже мой app/build.gradle — может быть, кто-то может обнаружить проблему с этим?

 apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    defaultConfig {
        versionCode 168
        targetSdkVersion 29
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    signingConfigs {
        debug {
            keyAlias 'AndroidDebugKey'
            storeFile file('../../../../../.android/debug.keystore')
            keyPassword 'android'
            storePassword 'android'
        }
        release {
            keyAlias 'AndroidReleaseKey'
            storeFile file('../../../conf/release.keystore')
            keyPassword System.getenv('PASSPHRASE1')
            storePassword System.getenv('PASSPHRASE1')
        }
    }

    flavorDimensions "store", "language"
    productFlavors {
        google {
            dimension "store"
            versionName "$defaultConfig.versionCode-google"
            // min sdk version 16 needed for Firebase messaging
            minSdkVersion 16
        }
        huawei {
            dimension "store"
            versionName "$defaultConfig.versionCode-huawei"
            // min sdk version 17 needed for Huawei push
            minSdkVersion 17
            applicationIdSuffix ".huawei"
            resConfigs "en", "zh-rCN", "ru", "de", "fr", "pl", "nl"
        }
        amazon {
            dimension "store"
            versionName "$defaultConfig.versionCode-amazon"
            // min sdk version 15 needed for older Amazon Fire models, but is no more supported by the LWA
            minSdkVersion 16
            // ignore AdmService not extending android.app.Service
            lintOptions {
                checkReleaseBuilds false
            }
        }

        de {
            applicationId "de.wortefarbers"
            dimension "language"
            resConfigs "de"
        }
        en {
            applicationId "com.wordsbyfarber"
            dimension "language"
            resConfigs "en"
        }
        ru {
            applicationId "de.slova"
            dimension "language"
            resConfigs "ru"
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            debuggable false
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'

    // minSdkVersion 9 is only supported by the OkHttp 3.12.x branch
    implementation 'com.squareup.okhttp3:okhttp:3.12.2'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.neovisionaries:nv-websocket-client:2.10'

    implementation "androidx.room:room-common:$roomVersion"
    implementation "androidx.room:room-runtime:$roomVersion"
    annotationProcessor "androidx.room:room-compiler:$roomVersion"
    androidTestImplementation "androidx.room:room-testing:$roomVersion"

    implementation "androidx.lifecycle:lifecycle-extensions:$archVersion"
    annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$archVersion"

    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.viewpager2:viewpager2:1.0.0'
    implementation 'com.google.android.material:material:1.3.0-alpha02'

    implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
    implementation 'com.mikepenz:materialdrawer:6.1.2'
    implementation 'com.mikepenz:iconics-core:3.2.5'
    implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha'
    implementation "com.facebook.android:facebook-core:$facebookVersion"
    implementation "com.facebook.android:facebook-login:$facebookVersion"

    googleImplementation 'com.google.android.gms:play-services-auth:18.1.0'
    googleImplementation 'com.google.firebase:firebase-messaging:20.2.4'
    googleImplementation 'com.android.billingclient:billing:3.0.0'

    huaweiImplementation "com.huawei.hms:base:$hmsVersion"
    huaweiImplementation "com.huawei.hms:hwid:$hmsVersion"
    huaweiImplementation "com.huawei.hms:push:$hmsVersion"
    huaweiImplementation "com.huawei.hms:iap:$hmsVersion"

    amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
    amazonImplementation files('libs/login-with-amazon-sdk.jar')

    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
}

if (getGradle().getStartParameter().getTaskRequests().toString().contains('Google')) {
    apply plugin: 'com.google.gms.google-services'
} else if (getGradle().getStartParameter().getTaskRequests().toString().contains('Huawei')) {
    apply plugin: 'com.huawei.agconnect'
}
  

PS Я также задал свой вопрос на форуме разработчиков Amazon.

ОБНОВЛЕНИЕ после недели попыток:

В службе тестирования приложений я заметил, что мое приложение редко выходит из строя при использовании WebView (какой-то внутренний сбой, не вызванный моим приложением), поэтому я удалил все его использования (использовал встроенный браузер для отображения справки, Политики конфиденциальности, условий предоставления услуг и т.д.) И удалил дополнительный Facebook login тоже.

Теперь мое приложение на английском и немецком языках проходит «Службу тестирования приложений»:

ru приложение

de app

Но рецензенты Amazon по-прежнему отклоняются, и я не могу получить от них никакого человеческого ответа или каких-либо журналов.

И в то же время русская версия моего приложения проходит проверку обновлений…

Обновить:

Наконец, я получил журнал ошибок от Amazon, в котором говорится:

 09-09 15:21:39.253: E/AndroidRuntime(19217): FATAL EXCEPTION: main
09-09 15:21:39.253: E/AndroidRuntime(19217): Process: de.wortefarbers, PID: 19217
09-09 15:21:39.253: E/AndroidRuntime(19217): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/amazon/device/messaging/development/ADMManifest;
09-09 15:21:39.253: E/AndroidRuntime(19217):    at de.slova.SlovaApplication.c(SlovaApplication.java:1)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at de.slova.MainActivity.onCreate(MainActivity.java:3)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.Activity.performCreate(Activity.java:6672)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.ActivityThread.-wrap12(ActivityThread.java)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.os.Handler.dispatchMessage(Handler.java:102)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.os.Looper.loop(Looper.java:154)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at android.app.ActivityThread.main(ActivityThread.java:6123)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at java.lang.reflect.Method.invoke(Native Method)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
09-09 15:21:39.253: E/AndroidRuntime(19217): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.amazon.device.messaging.development.ADMManifest" on path: DexPathList[[zip file "/data/app/de.wortefarbers-1/base.apk"],nativeLibraryDirectories=[/data/app/de.wortefarbers-1/lib/arm, /system/lib, /vendor/lib]]
09-09 15:21:39.253: E/AndroidRuntime(19217):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
09-09 15:21:39.253: E/AndroidRuntime(19217):    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
09-09 15:21:39.253: E/AndroidRuntime(19217):    ... 14 more
09-09 15:21:39.255: W/ActivityManager(1385):   Force finishing activity de.wortefarbers/de.slova.MainActivity
  

Однако у меня есть следующее в app / build.gradle (и оба файла jar действительно там):

 amazonCompileOnly files('libs/amazon-device-messaging-1.1.0.jar')
amazonImplementation files('libs/login-with-amazon-sdk.jar')
  

И у меня есть xmlns: amazon =»http://schemas.amazon.com/apk/res/android « в AndroidManifest.xml . И все мои правила proguard.pro указан ниже:

 -libraryjars libs/login-with-amazon-sdk.jar
-libraryjars libs/amazon-device-messaging-1.1.0.jar

-include okhttp3.pro

# -ignorewarning

-dontwarn org.conscrypt.**
-dontwarn com.amazon.device.messaging.**
-dontwarn com.huawei.**

-keep class com.amazon.device.messaging.** { *; }
-keep class androidx.multidex.** { *; }
-keep public class * extends com.amazon.device.messaging.ADMMessageReceiver
-keep public class * extends com.amazon.device.messaging.ADMMessageHandlerBase
-keep class android.support.v7.widget.SearchView { *; }

-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature

-keep class com.huawei.**{*;}
-keep class com.hianalytics.android.**{*;}
  

Комментарии:

1. Вы пробовали тестировать новые языки на своем физическом устройстве?

2. Да, я тестирую их на домашних устройствах Fire 5 и Fire 7 на всех трех языках: RU, EN, DE.

Ответ №1:

Если они предоставили вам журнал ошибок, они также должны предоставить вам список устройств, на которых произошел сбой.

В журнале указано, что не удается найти класс com.amazon.device.messaging.development.ADMManifest

Я предполагаю, что вы следовали этим инструкциям по настройке ADM:https://developer.amazon.com/docs/adm/set-up.html

Ваша зависимость от gradle и файл proguard выглядят не совсем так, как в их примере. Например, ваш отсутствует -keep public class * extends com.amazon.device.messaging.ADMMessageHandlerJobBase

Вы можете попытаться удалить его и настроить заново и следовать их примеру как можно точнее. Удачи

Комментарии:

1. Возможно, вы правы… Я изменил правило proguard на -keep class com.amazon.** {*;} , а также отменил выбор устройств, отличных от Amazon, а также сделал больше разных вещей . И теперь моя английская версия игры опубликована на Amazon . Но немецкая версия по-прежнему отклоняется… Сейчас я заказал более старый Amazon Fire HDX на Ebay, ожидая его…

2. Я создаю телевизионные приложения для Amazon Fire TV, поэтому я знаю, как сложно устранять неполадки, когда приложения отклоняются. Мне также повезло с их повторной отправкой, хотите верьте, хотите нет. Если вы пытались устранить неполадки и сделали все как можно ближе к их инструкциям, это может быть просто одноразовой вещью. Удачи и спасибо, что приняли мой ответ 🙂

3. Да, если они хотя бы прикрепят журналы приложений при отклонении… но они этого не делают.

Ответ №2:

Для меня причиной сбоя была открытая реализация приложения AdMob. Я удалил реализацию, и все работало хорошо.