为什么用'--prod --release android'构建Ionic 3 apk会给Google Playstore错误,表明apk是在调试模式下签名的?

时间:2018-08-09 17:11:15

标签: android cordova ionic-framework google-play ionic3

Play商店不再接受我的Ionic 3应用程序构建。我确信证书和签名过程没有任何问题。我之前发布了多个版本,最后一个发布于2018年7月。

$ ionic info

cli packages: (/usr/lib/node_modules)

    @ionic/cli-utils  : 1.19.2
    ionic (Ionic CLI) : 3.20.0

global packages:

    cordova (Cordova CLI) : 8.0.0

local packages:

    @ionic/app-scripts : 3.1.8
    Cordova Platforms  : android 6.3.0
    Ionic Framework    : ionic-angular 3.9.2

System:

    Android SDK Tools : 26.1.1
    Node              : v8.11.3
    npm               : 5.6.0
    OS                : Linux 4.15

Environment Variables:

    ANDROID_HOME : /home/sebinbenjamin/Android/Sdk

Misc:

    backend : pro

我使用此命令构建

$ ionic cordova build --prod --release android

正在

生成未签名的发行版APK。
  

/ home /.../ app / platforms / android / build / outputs / apk / android-release-unsigned.apk

我使用以下命令签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/app.keystore ./platforms/android/build/outputs/apk/android-release-unsigned.apk aliasname

然后执行zipalign

zipalign -v 4 ./app/platforms/android/build/outputs/apk/android-release-unsigned.apk android-signed-release.apk

这个过程一直持续到最近。现在,我从Play商店收到此错误。

  

”“您上传了已在调试中签名的APK或Android应用程序捆绑包   模式。”

我确定我已经签名并且apk处于发布模式(由文件名android-release-unsigned.apk给出)。请帮忙。

2 个答案:

答案 0 :(得分:1)

不是手动进行构建以发布产品。您可以通过这种方式完成。

  1. 创建一个名为“ release-signing.properties”的新文件,并粘贴以下几行(用storePassword,keyPassword,keyAlias替换)

    target=android-26
    android.library.reference.1=CordovaLib
    storePassword=yourstorePassword
    keyPassword=yourkeyPassword
    keyAlias=yourkeyAlias
    storeFile=../../resources/keystore.jks
    
  2. 将密钥库文件放在以下路径

    /YourProject/resources/keystore.jks
    
  3. 将文件“ release-signing.properties”放置在以下路径中

    /YourProject/platforms/android/release-signing.properties
    
  4. 运行:

    ionic cordova build android
    
  5. 然后:

    ionic cordova build android --prod --release
    

您可以通过以下路径获得生产版本(您可以使用此版本在Google Play商店中使用

/YourProject/platforms/android/build/outputs/apk/android-release.apk

答案 1 :(得分:1)

最近,Play商店的支票收紧了一些。 要检查调试证书,Play商店会查看您的证书并检查其中是否有"CN=Android Debug"。 您可以自己检查,使用类似以下命令:

keytool -list -v -keystore keystore.jks