为啥我的亚马逊应用商店提交被拒绝?如何获取更多信息?
Posted
技术标签:
【中文标题】为啥我的亚马逊应用商店提交被拒绝?如何获取更多信息?【英文标题】:Why are my Amazon Appstore submissions being rejected? How to get more info?为什么我的亚马逊应用商店提交被拒绝?如何获取更多信息? 【发布时间】:2020-12-18 16:19:26 【问题描述】:一年多以来,我在亚马逊上发布了一款俄罗斯多人文字游戏。
现在我已将其翻译成英语和德语,但在通过亚马逊应用商店审核获得 2 个翻译后的应用时遇到问题 -
响应总是一样的:“应用程序退出/强制关闭/冻结/启动后显示错误消息。”
但没有关于他们测试的设备的信息(在我的 Fire 5 和 Fire 7 平板电脑上,游戏运行良好),也没有错误日志。
我已尝试联系开发人员支持以获取任何日志,但没有得到任何回复。
我的应用使用 LWA 和 ADM,并且是 minSdk 16。我的应用也在 Google Store(他们在那里使用 Google Sign-In 和 FCM)和华为 AppGallery(他们在那里使用 HMS)上发布。
我只需要更多信息来解决我的应用程序的任何问题。如果我知道用于测试的设备,我会直接购买或借出。
是否有人愿意旁注 the APK files 并在她或他的 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'
附:我也在Amazon Developer Forum 提出了我的问题。
更新经过一周的尝试:
在App Testing Service我注意到我的应用程序在使用WebView时很少崩溃(一些内部崩溃,不是我的应用程序引起的),所以我删除了它的所有用法(使用嵌入式浏览器显示帮助,隐私政策、服务条款等)并删除了可选的 Facebook 登录。
现在我的英语和德语应用通过了“应用测试服务”:
但仍然被亚马逊评论者拒绝,我无法得到他们的任何人工回复或任何日志。
同时the Russian version of my app 通过更新审核...
更新:
最后我收到了来自亚马逊的错误日志:
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')
我在 AndroidManifest.xml 中确实有 xmlns:amazon="http://schemas.amazon.com/apk/res/android"。下面列出了我的整个 proguard-rules.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.***;
【问题讨论】:
您是否尝试过在您的物理设备上使用新语言进行测试? 是的,我在家里的 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
您可以尝试将其删除并重新设置,并尽可能按照他们的示例进行操作。祝你好运
【讨论】:
也许你是对的...我已将 proguard 规则更改为-keep class com.amazon.** *;
并且未选择的非亚马逊设备也已完成 more different things。现在我的英文游戏版本是published at Amazon。但是德文版仍然被拒绝...我现在在 Ebay 订购了一个较旧的 Amazon Fire HDX,等待它...
我为 Amazon Fire TV 制作电视应用程序,因此我知道在应用程序被拒绝时解决问题是多么困难。我也很幸运能够重新提交它们,信不信由你。如果您尝试进行故障排除并使一切尽可能接近他们的指示,那可能只是一件事情。祝你好运,谢谢你接受我的回答:)
是的,如果他们在拒绝时至少会附加应用程序日志......但他们不会。【参考方案2】:
对我来说,是 AdMob 应用打开实施导致失败。我删除了实现,一切正常。
【讨论】:
以上是关于为啥我的亚马逊应用商店提交被拒绝?如何获取更多信息?的主要内容,如果未能解决你的问题,请参考以下文章
如果版本号不应该增加,你如何替换被拒绝的应用商店二进制文件?