提兵百万西湖上,立马吴山第一峰!这篇文章主要讲述教你如何使用android studio发布release 版本相关的知识,希望能为你提供帮助。
原文链接
想必还有人对如何在android
studio (以下简称as)发布release版本的app而狂刷百度吧?都是过来人,我很理解这种心情,百度到的基本是半成品,为什么这么说呢?百度一下,你就知道
文章图片
,好了,不废话了,下面奉上完整的教程。
一、前提
发布release 版本,首先,的需要保证当前的app没有bug、可以正式发布了,嘿嘿,就是这样~~二.、准备jks
.jks即密钥库,是一种包含一个或多个私钥的二进制文件,只要记住,他就相当于人的指纹一样重要就行了。切记!必须在应用的整个生命周期内使用相同的证书,以便用户能够以应用更新的形式安装新版本。我们来看看如何在as中创建密钥库。
首先,在菜单栏中,点击 Build > Generate Signed APK。出现如下对话框
文章图片
点击create new....如果有了就直接choose 好了。
点击后会让你创建一个密钥库,如下图
文章图片
对上面的图,稍作讲解
密钥库
Key store path:选择创建密钥库的位置 + 密钥库名字+jks。Password:为您的密钥库创建并确认一个安全的密码。密钥
Alias:为您的密钥输入一个标识名。
Password:为您的密钥创建并确认一个安全的密码。此密码应当与您为密钥库选择的密码不同
Validity (years):以年为单位设置密钥的有效时长。密钥的有效期应至少为 25 年,以便您可以在应用的整个生命期内使用相同的密钥签署应用更新。默认为25
Certificate:为证书输入一些关于您自己的信息。此信息不会显示在应用中,但会作为 APK 的一部分包含在您的证书中。
一定要把两个密码记住、一定要把两个密码记住、一定要把两个密码记住点,重要的事情说三遍,我为了简单,两个密码是一致的,但为了安全起见,最好不要一样。填完,击ok即可,这个时候会在相应的文件下生成demo.jks(我的),紧接着会回到下面的界面,点击next--> finish
文章图片
三、配置构建流程以自动签署您的 APK
1.在 Project 窗口中,右键点击您的应用并点击 Open Module Settings。
2.在 Project Structure 窗口左面板中的 Modules 下,点击您想要签署的模块。
3.点击 Signing 标签,然后点击 ‘+’ 。
4.选择您的密钥库文件,为此签署配置输入一个名称(随意起一个),然后输入所需的信息。
文章图片
如图,找到上面创建的密钥库,并输入密钥库的密码,以及密钥密码
文章图片
然后,点击 Build Types 标签,点击 release 构建,在 Signing Config 下,选择您刚创建的签署配置。点击OK
文章图片
现在,在您每一次使用 Android Studio 构建发布构建时,IDE 都会使用您指定的签署配置自动签署 APK。四、发布release版本
【教你如何使用android studio发布release 版本】顺利走完上面的步骤,那么离发布release版本就差一键了
文章图片
,首先,修改发布版本,在as的左下角,修改build variant为release,接着,run即可,这个时候在项目下面的app\build\outputs\apk下就可以看到release版本的apk了,good lucky~~
文章图片
五、签署注意事项
在应用的预期生命周期内,您应使用相同证书签署所有 APK。这么做的原因有多个:
应用升级:
当系统安装应用的更新时,它会比较新版本和现有版本中的证书。如果证书匹配,则系统允许更新。如果您使用不同的证书签署新版本,则必须为应用分配另一个软件包名称 - 在此情况下,用户将新版本作为全新应用安装。
应用模块化:
Android 允许通过相同证书签署的多个 APK 在同一个进程中运行(如果应用请求这样),以便系统将它们视为单个应用。通过此方式,您可以在模块中部署您的应用,且用户可以独立更新每个模块。Android 提供基于签名的权限执行,以便应用可以将功能展示给使用指定证书签署的另一应用。通过使用同一个证书签署多个 APK 并使用基于签名的权限检查功能,您的应用可采用安全的方式共享代码和数据。
通过权限共享代码/数据:
推荐阅读
- Egret打包App修改App名称和图标 (Egret4.1.0)
- logback(logback和slf4j中的:appenderloggerencoderlayout)
- 最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级
- A query was run and no Result Maps were found for the Mapped Statement
- 学习angular之(ng-app)
- 迅为嵌入式4418开发板Android4.4-更改uboot开机LOGO
- android, 模拟器
- Android在 普通类(非Activity,多数为Adapter) 中 传输数据为空值解决方法 (在startActivity 用 intent传输数据)
- 本文教你如何调节电脑屏幕亮度