2017-03-05 77 views
56

我在Android Studio 2.3(build-> generate signed APK)上簽名了我的APK。當我嘗試將其上傳到Google Play商店時,它顯示我上傳了未簽名的APK的錯誤。任何人都可以回答爲什麼會發生,以及如何解決它?Android Signed APK嘗試上傳到產品時顯示爲Unsigned APK

+0

你能發送錯誤信息嗎? –

+3

當我在生成已簽名的APK時檢查了V1(Jar Signature)而不是V2(Full APK Signature)時,它成功上傳。 –

回答

74

它上傳成功,當我檢查V1(JAR簽名),而不是V2(全APK簽名),而生成的Android Studio中籤署APK 2.3

+7

我選中了兩個複選框:Jar Signature和Full APK Signature。這個答案提供了必要的見解。 –

+2

爲什麼僅在V2可用於簽名時才檢查V1?你應該選擇V1和V2並接受Piyush Kukadiyas的答案。 – filipst

0

這是從谷歌的問題,它是前兩天發佈了this page

+0

上傳失敗 您上傳了一個未簽名的APK。您需要創建一個簽名的APK。 –

+0

你讀過那個頁面嗎? –

1

如何使用V2

https://developer.android.com/studio/command-line/apksigner.html

步驟1)的Android Studio中,選擇查看>工具的Windows>牛逼簽署APK端子

gradlew assembleRelease 

2)用的zipalign對齊APK未簽名:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk 

3)簽署APK使用apksigner私鑰:

apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk 

注意:要使用apksigner工具,必須安裝修訂版24.0.3或更高版本的Android SDK構建工具。您可以使用SDK Manager更新此軟件包。

4)確認您的APK簽署:

apksigner verify my-app-release.apk 

注:第2步4執行在命令提示符G:\ AndroidStudio \ SDK \構建工具\ 25.0.0 \

5

這是因爲您在發佈版本時只使用v2簽名。

那麼v1和v2提到了什麼?

v1是默認的簽名機制,v2是最新添加的機制,驗證速度更快。這意味着v2簽名的APK在Android Nougat(Android 7.0,API Level 24)和更新版本上安裝/更新速度更快。

那麼你應該怎麼做?

如果要簽名的應用程序沒有任何變化(僅JAR簽名)

檢查V1這是默認的。

如果你想爲7.x的版本

檢查V2(全部的.apk簽名),這也減少了應用程序的大小最新的簽名和支持。

如果您希望應用程序變得更小,能夠更快安裝,並且與所有Android版本兼容。

檢查v1和v2。

PS:只適用於使用Studio對應用程序進行簽名,而不是使用管道進行構建。

更多refereces Link

53

的Android 7.0引入了APK簽名方案v2之後,提供更快的應用程序安裝的時間和更多的保護,防止擅自改變APK文件的新應用程序簽名方案。

生成已簽名的apk時,會出現兩個複選框。

  1. V1(JAR簽名)
  2. V2(全APK簽名)

有三種選擇,我們:

  1. 選擇V1(對於舊版本的簽署) - apk獲得成功上傳

  2. select V2(對於較新版本的簽名) - P1請注意,單獨選擇這一項不起作用。

  3. 選擇V1和V2(對於年齡較大的和較新的版本) - APK被成功上傳

爲什麼單單選擇V2不起作用?

因爲APK簽名方案v2是在Android 7.0(牛軋糖)中引入的。 要在Android 6.0(Marshmallow)和較舊的設備上安裝APK,應在使用v2方案簽名之前使用JAR簽名對APK進行簽名。

對於簽訂了兩個V1V2更多信息jump here

+0

是的,它適用於我。 –

12

。它將成功上傳。