【问题标题】:How to sign APK in release mode in VS 2017 native app?如何在 VS 2017 本机应用程序中以发布模式签署 APK?
【发布时间】:2018-06-27 20:24:46
【问题描述】:

如何在 Visual Studio Native-Activity Application (Android) 项目中以发布模式签署您的 APK 或 Android App Bundle?

当我在发布 ARM 目标中重建解决方案和部署解决方案时,导航到发布文件夹并将 apk 文件拖放到 play.google.com(Play 商店),出现以下错误消息。

上传失败

您上传了可调试的 APK 或 Android App Bundle。出于安全原因,您需要先禁用调试,然后才能在 Google Play 中发布它。详细了解可调试的 APK 或 Android App Bundle。

您上传了在调试模式下签名的 APK 或 Android App Bundle。您需要在发布模式下签署您的 APK 或 Android App Bundle。详细了解签名。

我已经设法在 Play 商店中生成和下载 deployment_cert.der,但不确定如何将它添加到 Visual Studio Native-Activity Application (Android) 项目中的 apk。

【问题讨论】:

    标签: android visual-studio-2017 native


    【解决方案1】:

    现在想通了。 构建的 APK 文件可以使用命令行进行签名(无需安装 Android Studio)。这可以按如下方式完成:

    1.) Bellow 将允许在发布模式下构建未签名的 APK:

    .packing project Properties --> Ant --> Ant Build Target --> Release (Release Mode)

    2.) 将 JDK 和 Android SDK 添加到 PATH。在我的情况下(由 VS 安装程序安装),这些路径是:

    C:\Program Files\Java\jdk1.8.0_172\bin

    C:\Program Files (x86)\Android\android-sdk\build-tools\25.0.3

    3.) 使用密钥创建密钥库:

    keytool -genkey -v -keystore my_app.keystore -alias alias_name -keyalg PSA -keysize 2048 -validity 10000

    4.) 签署 APK:

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_app.keystore My.App.Packaging-release-unsigned.apk alias_name

    5.) ZIP 对齐:

    zipalign -f -v 4 My.App.Packaging-release-unsigned.apk My.App.apk

    6.) 拖放到 Play 商店

    【讨论】: