簡體   English   中英

如果Google只接受Api等級為26或更高的應用程序,為什么我仍可以發布Api低於26的應用程序?

[英]Why I can still publish app that has Api level lower than 26 if google will only accept apps with Api level 26 or newer?

最近我讀了一本關於android的書,說Starting with august 2019, Google play will only accept apps built using Api 26 or newer 但是最近我們發布了最低Api等級為23的android應用,並成功發布。 誰能說出這種情況是什么,或者書中的文檔是錯誤的?

他們不是在談論minSdk ,而是在談論targetSdkcompileSdk

請注意,我之所以使用“或”,是因為您的targetSdk不能高於您的compileSdk

當您增加targetSdk編號時,您必須遵守新的api和規則,但是使用舊的compile / target sdk將使您以與早期版本中使用的功能相同的方式使用這些功能( 這是導致此問題的根本原因之一)安全漏洞 )。 這就是為什么他們設置了限制,所以每個應用程序都被迫使用“新的做事方式”而不是舊的方式。

例如,在Android 5.0之前,安裝應用程序時授予了權限,但后來更改了權限,因此現在您必須在運行時詢問權限。 如果您針對低於Android 5.0的Sdk api定位,則無需執行任何操作,它也可以在較新的設備上運行。 但是,如果您將api定位為高於Android 5的api,則必須在運行時請求權限,否則新的sdk代碼將引發異常。

這意味着您的目標 API必須是最小的(在本例中為28),但是您仍然可以將自己的最小API設置為您想要允許向后兼容的任何值。

當您上傳APK時,它需要滿足Google Play的目標API級別要求。 從2019年8月1日開始,Google Play要求新應用必須至少以Android 9.0(API級別28)為目標,並且應用更新必須從2019年11月1日開始以Android 9.0為目標。在這些日期之前,新應用和應用更新必須至少以Android為目標8.0(API級別26)。

https://developer.android.com/distribute/best-practices/develop/target-sdk

我有一個針對28的應用程序,但我想要的最低API級別為18。它仍然允許我上載該應用程序,因為它針對的是 28。

這意味着您必須在build.gradle文件中進行設置

targetSdkVersion 28  //or later

官方文件

當您上傳APK時,它需要滿足Google Play的目標API級別要求。 從2019年8月1日開始 ,Google Play要求新應用的目標至少為Android 9.0( API級別28 ),並且自2019年11月1日起更新的應用目標為Android 9.0。 在這些日期之前,新應用和應用更新必須至少針對Android 8.0(API級別26)。

請記住:

minSdkVersion <= targetSdkVersion <= compileSdkVersion

如果您想了解有關minSdk,targetSdk和compileSdk的更多詳細信息,建議您閱讀此博客

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM