Warning: App must target Android 13 (API level 33) or higher. It does
我收到来自 Google Play Console 的以下警告,表明我们的应用不符合最低目标 API 级别。然而,它确实如此,下面是它的代码:
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
//TODO: Keep an eye on targetSdkVersion number, as it has to be within one year of major android release.
applicationId "com.com"
minSdkVersion 24
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
然后,当我单击影响应用程序包时,它们实际上是两年多前的旧应用程序包:
我应该删除这些旧的捆绑包还是需要做其他事情?我很担心,因为它说除非我们满足要求(最新的代码就是这样做的),否则我们将无法更新应用程序。
更新:首先根据下面的答案使用兼容的应用程序包更新每个曲目(甚至暂停的曲目),将其发送以供审核,然后发布这些更改(即使曲目处于非活动状态,也要再次发布),我无法更新应用程序的警告仍然存在。因此,我直接联系了 Google,并收到了以下有关警告的消息。我想我们下次尝试更新应用程序时会看到会发生什么
"As per checking, this warning is with regards to Google Play's target API level requirement which only warns the developers about the risk of not releasing a compliant app version. In this case, you may ignore this warning and you can rest assured that you will still be able to release an app update. I hope this helps. Please let me know if you have any other questions about the Play Console and we'll be happy to help."
更新的更新:发布并点击收件箱中的消息后,会出现一条新消息,指出违规已解决(如下所述)。
由于类似的原因,我遇到了此警告 - 我在内部测试中暂停了一个带有旧目标 api 版本的包。
此问题的解决方案是更新生产或测试中发布的所有活动应用程序包。
要查看需要更新的所有应用程序包的列表,您必须转到:
Inbox > 单击 affected warning message > View details > View app bundles - 这将列出所有应用程序包及其发布位置 - 生产或测试。
另外,您可以通过转到App Bundle Explorer
并检查所有带有Release status
和Active
的版本来检查它们是否匹配目标sdk
就我而言,它已暂停版本1.0.0
和target sdk 31
进行内部测试:
您需要转到目标 sdk < 33 的活动版本所在的分区,并执行以下操作:Add new release > Add from library > Set checkbox on your app bundle with target sdk 33 or more > Add to release > Next > Save and publish
然后,如果您返回Inbox >单击your warning message>View details,您将不再看到View affected app bundles
按钮,并且您将收到以下通知:
因此,完成所有操作后,您的所有活动版本都将遵守规则
更新:
完成上述所有步骤并成功完成审核后,警告消息将消失,您将在您的Inbox
中收到以下消息:
App Bundle Explorer
中,意味着您必须查看状态为 Active 的每个项目的详细信息,并找到那些 target sdk < 33
的项目(如第一个屏幕截图所示) 。最好的选择是查看警告消息中的所有不一致之处。
- Victor Sklyarov 2023-08-21
这对我有用,如果您不点击发送到收件箱的消息,Play Console 机器人似乎会假设您没有采取任何措施来解决政策违规问题。
尝试1
要解决此问题,请转到Dashboard
,单击Inbox
,然后打开包含有关目标 Android 13(API 级别 33)或更高版本的警告的消息。
尝试2
万一这对你不起作用,即使它应该对你起作用。单击Dashboard
,您会注意到顶部有一个错误告诉您有关目标策略的信息,单击该错误将转到Policy status
尝试3
单击App bundle explorer
并确保只有您的生产包处于活动状态,其余的处于非活动状态。另请检查Your internal, closed and open testing
,如果有活动捆绑包,请确保暂停所有捆绑包。
执行此操作后,您将在收件箱中收到一条消息,提示最近有关您的应用的政策警告已得到解决。
这个解决方案对我有部分帮助。
我用以下路径检查了收件箱消息:Inbox > Click your affected warning message > View details > View app bundles
,找到了受影响的版本及其相应的version code
和version name
,然后我转到了App bundle explorer
。
我观察到这个受影响的轨道(< 33)仍然活跃,但已经是一个非常古老的轨道(一年多前)。
我不记得是否在生产中提供了这一曲目(因为 Android 应用程序包正在相互替换并停用旧的应用程序包)。
然后我浏览了所有Testing
曲目:
罪魁祸首位于Internal Testing
轨道,仍然可供测试人员使用,但早已被遗忘。
用一些兼容 SDK 33 的应用程序包替换有问题的版本(因为没有选项可以删除它)。
Create new release
-> Add from library
-> 选择您生产中的一些最新版本 -> Next
-> Save and publish
-> Save and publish
作为奖励,您可以返回Inbox
,单击View details
,然后观察没有受影响的应用程序包。
这只是 Google Play 上更新每个应用程序状态的延迟。我只是更新了一些应用程序,没有执行其他任何操作。今天,这些应用程序的警告消息已消失。
如果您不使用它,只需暂停打开/关闭的测试轨道即可。如果您不需要保持活跃状态,则不必使用新版本更新测试轨道。
我只收到了针对我忘记关闭暂停测试的应用程序的警告。
就我而言,我在build.gradle
中将SDK版本从31
更新为33
。
compileSdkVersion = 33
targetSdkVersion = 33
然后编译一个新的捆绑包,使用它创建View affected app bundle
中列出的版本(包括测试和生产)以停用旧的过时的捆绑包。
此后不再出现该警告。
检查AndroidManifest.xml "<application" 标签 如果工具:targetApi 是 33
我也遇到了同样的问题,昨天解决了。
我的问题是我的应用程序有一个非常旧的版本作为“开放测试”和“封闭测试”中的活动轨道。
我的最新版本也在“Internal Testing”中,所以解决方案是将这个版本提升为“Closed Testing”并发布它并等待一小会儿,然后当它在“Closed Testing”中可用时我再次提升它到“Open Testing”并发布它,然后再次等待一段时间,直到它在“Open Test”中可用。
通过这样做,我的应用程序的旧版本已从封闭和开放测试部分中删除,并替换为新版本(类似于生产版本)。
执行此操作后,显示“check Affected bundles”的按钮消失了,但警报消息仍然显示;然后大约 2 小时后,我收到了来自 Google 的消息,现在一切正常,我将来可以正常发送更新。
生产应用程序版本未修改,也未向用户发送更新。