生成签名APK(Android Studio)

103

我刚接触安卓开发,并完成了我的第一个应用。我想在android studio生成签名APK。我阅读了开发者文档,但无法理解其中的步骤。当我点击 Build>Generate Signed APK... ,它会显示一个对话框询问以下内容:

Keystore path  //with two options create new and choose existing
Keystore password
Key alias
key password

我即使在谷歌搜索后还是不明白什么是密钥库。当我选择“创建新的”时,它要求我选择路径并找到一个我没有的“.jks”文件!请问有人能够解释并列出生成签名 APK 的步骤吗?


2
这个答案非常好:https://dev59.com/yGw15IYBdhLWcg3wD3np#6849903 - Pull
可能是如何在Android Studio中导出项目?的重复问题。 - Jim G.
12个回答

116

我认为没有人正确回答这个问题。因此,对于其他有同样问题的人,这应该会有所帮助:

步骤1 转到构建>生成已签名的APK>下一步(选定的模块将是您的模块,通常称为“应用程序”)

步骤2 点击“创建新内容”

步骤3 基本上,填写所需详细信息的表格。混淆的部分是它要求一个密钥库路径。单击右侧带有 3 个点(“...”)的图标,这将打开导航器窗口,要求您导航并选择 .jks 文件。导航到您想要保存密钥库文件的文件夹,然后在该窗口底部的文件名称框中输入您喜欢的名称,现在即可单击“确定”按钮。

实际发生的是,该窗口并不真正要求您选择 .jks 文件,而是希望您给出您想要的位置和名称。

步骤4 单击下一步,然后选择发布,完成!


1
文件保存在哪里?谢谢。 - Imogen Johnson
2
我刚刚在这里写道(https://dev59.com/0VsW5IYBdhLWcg3wfXJa),在“Build”下面没有“生成已签名的APK”。 - Mark Ebden

50
使用Keytool二进制文件或exe生成私有密钥库。 这里有指示。然后,您可以使用此密钥库对应用程序进行签名。安装Java时会安装Keytool。
注意:保存/备份此密钥库,因为一旦使用此密钥库签署应用程序并在Play上发布,您将不得不在任何以后的更新中使用相同的密钥库。因此,备份非常重要。
希望有所帮助。

我认为这里的问题与众不同,用户困惑于如何选择.jks文件,因为只是在请求名称。正确答案是由@jackspier在下面回答了。 - Raj

25

点击这里查看我的回答

如何在Android Studio中导出项目?

本文将为您逐步指导如何生成签名APK以及如何从Android Studio创建密钥库文件。

从链接中,您可以轻松完成此操作,因为我已经逐步添加了截图。

简短回答

如果您有密钥库文件,则可以简单地执行相同的操作。

转到“构建”,然后单击“生成签名APK”。


21

按照 Google 建议的“官方”方式,可以在此处了解如何配置 build.gradle 文件。

基本上,您需要添加一个 signingConfig,在其中指定密钥库的位置和密码。然后,在发布版本的构建类型中,引用该签名配置。

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("myreleasekey.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

17
  1. 在Android Studio中,转到Build -> Generate Signed APK
  2. 在新窗口中,点击Create new...按钮。
  3. 接下来,按照下面所示的方式输入详细信息,然后单击OK -> 下一步enter image description here
  4. 选择Build Typerelease,然后点击Finish按钮。
  5. 等待APK generated successfully消息出现,如下所示。enter image description here
  6. 点击Show in Explorer以查看已签名的APK文件。

有关更多详细信息,请访问此链接


11

简单的五个视觉步骤:

步骤1:点击“生成已签名的Build/APK”Build -> Generate Signed Build/APK

生成

步骤2:选择APK,然后点击下一步Choose APK -> Next APK

步骤3:点击“创建新文件...”Create new ... 创建新文件...

步骤4:填写必要细节 填写

⚠️重要提示:请确保将此密钥库文件安全存储,因为连续存储上传需要相同的密钥库文件。

步骤5:选择构建变体debug/release 和签名版本(V2) 在此输入图像描述

完成了,现在您的已签名APK将开始构建,并应在可用时弹出在右下角。 点击locate以获取您的已签名APK文件。

很简单吧?


没有菜单项:构建 -> 生成已签名的Bundle/APK - steve

4
您可以将此添加到您的build.gradle文件中。
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my.keystore")
            storePassword "password"
            keyAlias "MyReleaseKey"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

如果您需要一个 keyHash,请在项目根目录中通过 Android Studio 终端执行以下操作:
keytool -exportcert -alias my.keystore -keystore app/my.keystore.jks | openssl sha1 -binary | openssl base64

4

我曾经也遇到类似的问题。在教程中,我使用了位于/home/tim/android.jks的文件填写该字段,以为这个文件已经创建好。但实际上在点击"确认"后,却提示找不到该文件。当我尝试创建该文件时,却无法创建jks文件。之后我退出了Android Studio并重新运行了它,然后就正常了。我需要点击“...”按钮才能正确地添加我的文件。

生成签名APK向导-->新密钥存储-->点击“...”选择密钥库文件。输入文件名。

我一开始还以为需要使用openjdk并创建自己的密钥文件,但实际上它已经内置在了Android Studio中。


2

注意:如果是React Native项目

如果你在Android Studio中打开根项目文件夹,你将看不到本页面其他答案中建议的选项。

enter image description here

解决方案

我打开了packages/native/android文件夹,而不是根文件夹。然后我才能看到构建已签名APK的选项。

https://istack.dev59.com/k8Elg.webp


1
  1. 生成签名的APK文件,请从工具栏中打开“Build”菜单,然后选择生成签名的Bundle/APKenter image description here
  2. 选择创建Android应用程序包APK文件。 enter image description here
  3. 输入密钥库路径密钥库密码密钥别名密钥密码enter image description here
  4. 如果您是第一次创建签名的APK文件,则需要创建新的密钥库,请单击密钥库路径下方的创建新建...enter image description here
  5. 输入所有信息,如路径、密码、确认密码、别名名称、密码、确认、名字、姓氏、组织单位、组织名称、国家代码、城市、州enter image description here
  6. 填写完证书详细信息后,选择确定,然后选择下一步
  7. 现在您将能够看到签名的APK文件的目标。在下面,您将看到另外两个选项:调试发布enter image description here
  8. 屏幕底部还有两个复选框。选择V2(完整APK签名)并单击完成

1
这并没有解决OP的问题,即什么是密钥库。 - raquelhortab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接