Что такое предупреждение "Мы обнаружили, что ваше приложение использует старую версию API разработчика Google Play" в консоли разработчика Google?

Мы явно не используем API-интерфейсы разработчика Google Play, но получаем следующее предупреждение:

enter image description here

Это связано с https://developer.android.com/google/play/billing/billing_library_releases_notes?

В настоящее время мы используем Google Play Billing Library 1.2.2 Release (2019-03-07)

Мы не планируем переносить Google Play Billing Library 2.0.1 (2019-06-06), потому что это будет большая работа с небольшим выигрышем.

Покупки должны быть подтверждены в течение трех дней

Но это только мое дикое предположение - что библиотека биллинга Google Play связана с Google Play Developer API. Они могут или не могут быть связаны друг с другом.

Что значит "мы обнаружили, что ваше приложение использует старую версию API разработчика Google Play"?

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

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])


    implementation 'com.android.billingclient:billing:1.2.2'


    implementation 'androidx.multidex:multidex:2.0.1'


    def lifecycle_version = '2.0.0-beta01'
    // ViewModel and LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"


    // alternately - if using Java8, use the following instead of compiler
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"


    def room_version = '2.1.0'
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    def work_version = "2.1.0"
    implementation "androidx.work:work-runtime:$work_version"

    // https://github.com/yccheok/SmoothProgressBar
    implementation 'com.github.castorflex.smoothprogressbar:library:1.1.0'

    // For Google Drive REST API - https://github.com/gsuitedevs/android-samples/blob/master/drive/deprecation/app/build.gradle
    implementation('com.google.http-client:google-http-client-gson:1.26.0') {
        exclude group: 'org.apache.httpcomponents'
    }
    implementation('com.google.api-client:google-api-client-android:1.26.0') {
        exclude group: 'org.apache.httpcomponents'
    }
    implementation('com.google.apis:google-api-services-drive:v3-rev136-1.25.0') {
        exclude group: 'org.apache.httpcomponents'
    }

    implementation 'com.google.firebase:firebase-messaging:19.0.1'

    implementation 'com.google.android.gms:play-services-auth:17.0.0'

    implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
    implementation 'androidx.preference:preference:1.1.0-beta01'
    implementation 'com.google.android.material:material:1.1.0-alpha07'

    implementation 'androidx.exifinterface:exifinterface:1.0.0'
    implementation 'androidx.gridlayout:gridlayout:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.code.gson:gson:2.8.5'

    implementation 'com.github.yccheok:AndroidDraw:0.18'
    implementation 'com.github.yccheok:SectionedRecyclerViewAdapter:0.4'
    implementation 'com.github.yccheok:CalendarView:1.10'

    implementation 'com.andrognito.patternlockview:patternlockview:1.0.0'

    implementation 'com.github.bumptech.glide:glide:4.7.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

    implementation 'com.github.yccheok:PhotoView:0.1'

    implementation 'com.github.yccheok:Matisse:1.6'

    implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'

    // https://github.com/romandanylyk/PageIndicatorView
    implementation 'com.romandanylyk:pageindicatorview:[email protected]'

    implementation 'me.zhanghai.android.materialratingbar:library:1.3.2'

    testImplementation 'junit:junit:4.12'

    testImplementation "org.robolectric:robolectric:4.2.1"
    testImplementation 'org.mockito:mockito-core:2.23.0'
    testImplementation 'org.powermock:powermock-core:2.0.0-RC.4'
    testImplementation 'org.powermock:powermock-module-junit4:2.0.0-RC.4'
    testImplementation 'org.powermock:powermock-api-mockito2:2.0.0-RC.4'

    androidTestImplementation 'androidx.test:runner:1.3.0-alpha01'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha01'
}

Для зависимостей уровня проекта это

dependencies {
    classpath 'com.android.tools.build:gradle:3.4.2'
    classpath 'com.google.gms:google-services:4.2.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Ответ 1

Проблема заключается в том, что ваш проект в облачной платформе Google использует старую версию Developer Web API. Он был автоматически настроен для вас, когда вы намеренно/непреднамеренно включили службы разработчика из раздела API Play Access консоли Google Play в настройках разработчика.

Веб-API для подписок и покупок фактически является частью API разработчика Android:

API разработчика Google Play позволяет выполнять ряд задач по публикации и управлению приложениями. Он включает в себя два компонента:

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

Вы не используете выше API в своем приложении, этот API предназначен для управления не фактическими покупками. Вы используете SDK, который имеет разные версии, поэтому нет необходимости обновлять. Однако этот API был установлен в вашем проекте GCP.

Чтобы узнать, какой проект в GCP связан с вашей игровой консолью, перейдите по этой ссылке: https://play.google.com/apps/publish/#ApiAccessPlace

enter image description here

Вам просто нужно зайти в GCP, найти свой проект, найти Google Android Developer API и изменить там версию. Или вы можете просто отключить API, если вы его не используете.

Например, мой проект GCP автоматически получил название Google Play Android Developer, поэтому ваш проект, вероятно, будет таким же.

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

enter image description here

Ответ 2

  У любого есть идея, что значит "Мы обнаружили, что ваше приложение использует старую версию API разработчика Google Play"?

Простое объяснение этого сообщения таково: приложение, либо ваше, либо стороннее приложение, запускает below api

https://www.googleapis.com/androidpublisher/v1/applications

или

https://www.googleapis.com/androidpublisher/v2/applications

передавая имя пакета приложения вдоль

com.android.myapp

в других для выполнения автоматизированных задач, таких как

Retrieve billing Info
Publish app to store
Retrieve review comments
etc..

Тем не менее, эти API устарели, и вместо этого они должны пройти через API ниже.

https://www.googleapis.com/androidpublisher/v3/applications

Было подтверждено, что некоторые сторонние плагины запускают это сообщение просто потому, что для выполнения своих действий они используют устаревший apis.

Например:

Существует также вероятность того, что вы - тот, кто ссылается на устаревший API, может быть со стороны вашего сервера или "just maybe" в коде вашего собственного приложения. Суть в том, что a call somewhere is hitting a deprecated api с вашим приложением package name. Мой тебе совет: Update your billing library if you use one.

Подводя итог, можно сказать, что Google Developer API v3 doc

Использование API также может быть косвенным, не самим приложением, а сторонний плагин (например, плагин для выпуска новых выпусков). Много сторонние плагины уже используют версию 3 API. Если вы используете плагин, который не поддерживает версию 3, вам нужно будет связаться с сопровождающий.

Ответ 3

Это не связано с выставлением счетов, так как у вас нет проверки на стороне сервера. Это AndroidPublisher API, как уже упоминалось, это означает, что у вас, вероятно, есть довольно неприятный недостаток безопасности. Итак, как найти его?

  1. Перейти к https://play.google.com/apps/publish/#AdminPlace
  2. Там вы увидите список "Пользователи с доступом". Некоторые из них будут настоящими, другие будут учетными записями служб. Последний конец в @gcp-project-id.iam.gserviceaccount.com
  3. Если что-то не распознается, удалите аккаунт
  4. Если вы хотите еще кое-что почистить, перейдите в https://console.developers.google.com/apis/credentials?project=gcp-project-id с gcp-project-id сверху
    1. Не удаляйте здесь случайные учетные записи служб, большинство из которых автоматически создаются из других служб Google, и в случае их исчезновения все будет сломано. Удалите учетные записи служб, которые имели доступ к консоли Play, если они не используются для доступа к другим API.

Ответ 4

Google Play Developer API напрямую не используется в вашем приложении (APK), поэтому вы не можете исправить это в build.gradle. Он содержит некоторые службы, помогающие автоматизировать публикацию приложений (непрерывная интеграция, CI), а также API для проверки покупок в приложении.

Вы должны проверить, как ваш бэкэнд проверяет покупки в приложении и обновиться до последней версии. Вы также можете проверить, как ваш CI-сервер загружает APK в Play Store, а также обновить его до последней версии.

Вы можете узнать больше об Google Play Developer API здесь https://developers.google.com/android-publisher/

Ответ 5

У меня похожая проблема с консоли разработчика Google. Может ли кто-нибудь дать мне знать, что мне делать? Спасибо.

Ответ 6

Согласно документации Google, вы не можете использовать Google Play Developer версии 1 и 2, как в документации, они упомянули, что переходят на версию 3, и биллинг внутри приложения напрямую связан с этим.

Проверьте первую ссылку, чтобы прочитать его
1. https://android-developers.googleblog.com/2019/03/changes-to-google-play-developer-api.html

Узнать об API Google Play для разработчиков
Проверьте https://developers.google.com/android-publisher/

Для реализации версии 3
1. https://github.com/googlesamples/android-play-publisher-api/tree/master/v3/java
2. https://developers.google.com/api-client-library/java/apis/androidpublisher/v3

Надеюсь, что это поможет вам.

Ответ 7

У меня такая же проблема. Мне пришлось обновить Google-сервисы.

См. https://firebase.google.com/support/release-notes/android#2019-08-22: "Теперь доступен плагин google-services для Android (v4.3.1). Этот выпуск удаляет вызовы устаревшего API. Для получения дополнительной информации см. примечания к выпуску Firebase Android SDK".

Надеюсь, это поможет вам!