当前位置: 首页 > 知识库问答 >
问题:

Google开发者控制台中的“我们检测到您的应用程序正在使用旧版本的Google Play开发者API”警告是什么?

徐安康
2023-03-14

我们没有明确使用任何Google Play开发者API,但我们收到以下警告:

这和https://developer.android.com/google/play/billing/billing_library_releases_notes有关吗?

我们目前正在使用Google Play计费库1.2.2版本(2019-03-07)

我们不打算迁移Google Play Billing Library 2.0.1版本(2019-06-06),因为这将是一项工作量巨大、收益甚微的工作。

购买必须在三天内确认

但这只是我的猜测——Google Play计费库与Google Play开发者API有关。它们之间可能有关联,也可能没有关联。

“我们检测到您的应用程序正在使用旧版本的谷歌游戏开发者应用编程接口”是什么意思?

以下是我们的全部依赖项。你知道是什么引起了这个警告吗?

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:1.0.2@aar'

    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
}

共有3个答案

祁嘉瑞
2023-03-14

这与计费无关,因为您没有服务器端验证。正如其他人提到的,这是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-项目id和上面的gcp项目id
    1. 不要删除这里的随机服务帐户,大多数是从其他各种谷歌服务自动生成的,如果它们消失了,东西就会坏掉。如果服务帐户不用于访问其他API,请删除访问Play Console的服务帐户

柯奕
2023-03-14

任何人都知道,“我们检测到您的应用程序使用的是旧版本的Google Play开发者API”是什么意思?

这个消息的简单解释是:你的应用程序或第三方应用程序正在点击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

一些第三方插件已被确认触发此消息,原因很简单,因为它们正在使用不推荐使用的API来执行其操作。

例如:

  • 适用于android的Fastlane--请参阅讨论

也有可能是您引用了不推荐的api,可能是从服务器端引用的,也可能是在您自己的应用程序代码中引用的。底线是,某个地方的调用使用你的应用程序的包名命中了一个不推荐的api。我给您的建议是:如果您使用计费库,请更新您的计费库。

用谷歌开发人员API v3文档的声明来总结这个

API的使用也可以是间接的,不是由应用程序本身,而是由第三方插件(例如用于发布新版本的插件)使用。许多第三方插件已经在使用API的版本3。如果您使用的插件不支持版本3,则需要联系维护人员。

丌官寒
2023-03-14

问题是您在Google Cloud Platform上的项目使用的是旧版本的Developer Web API。当您有意/无意地从开发人员设置中的Google Play控制台的API访问部分启用开发人员服务时,它会自动为您设置。

用于订阅和购买的Web API实际上是Android Developer API的一部分:

Google Play Developer API允许您执行许多发布和应用管理任务。它包括两个组成部分:

订阅和应用内购买API允许您管理应用内购买和订阅。
发布API允许您上传和发布应用,并执行其他与发布相关的任务。

您的应用程序中未使用上述API,此API用于管理而非实际购买。您使用的SDK版本不同,因此无需升级。但是,此API是在您的GCP项目中设置的。

要查找GCP上与您的游戏机关联的项目,请转到以下链接:https://play.google.com/apps/publish/#ApiAccessPlace

你只需要去GCP,找到你的项目,找到谷歌Android开发者API并在那里更改版本。或者,如果不使用API,您也可以禁用它。

例如,我的GCP项目被自动命名为Google Play Android Developer,所以你的项目可能与之相同。

我在我的控制台上看不到一个选项,可能是因为他们为新项目删除了它,但是如果你的项目已经使用了旧版本,你可能也会有一个警告。

 类似资料:
  • 我再也找不到实施Google Play服务所需的app_id,包括Google Cast、应用内计费等。 示例: 它曾经通过谷歌播放开发者控制台获得: 谷歌Play开发者控制台2014 然而,谷歌最近发布了他们的新游戏机,并且已经完全重组: Google Play开发者控制台2017年4月 现在在Play Developer控制台上的应用程序id在哪里?

  • 我在谷歌云平台上有一个账户。我在那个账户里有很多项目。现在,我创建了一个新的项目和API,并尝试为GCM启用API,但该页面正在重定向到firebase cloud messaging documentation页面。在我创建项目和API之前,并没有问题。但现在我无法为GCM启用API。有人能帮忙找出这个问题吗?

  • 代码是很容易出现错误的。你也很可能犯错误……哦,我在说什么?只要你是人,你 一定 会犯错误(在写代码的时候),除非你是 机器人。 但在浏览器中,默认情况下用户是看不到错误的。所以,如果脚本中有错误,我们看不到是什么错误,更不能够修复它。 为了发现错误并获得一些与脚本相关且有用的信息,浏览器内置了“开发者工具”。 通常,开发者倾向于使用 Chrome 或 Firefox 进行开发,因为它们有最好的开

  • 我见过其他帖子问同样的问题,答案都提到一个巨大的按钮,上面写着“Unpublish”,现在已经不存在了(至少在2016年)。 如何真正取消发布上传到Google Play开发者控制台的应用程序?

  • 我已经准备好将我的第一个应用程序发送给beta测试人员,所以我点击“管理beta” 以及“保存”和“恢复” APK已上载

  • 我想从游戏商店删除已发布的应用程序。所以我已经取消发布,但它仍然存在于开发控制台。如何删除它。 如有任何帮助,不胜感激:)