Android应用程序签名

在前一章节里面,通过ionic run使app成功在手机上面跑起来,并且将android-debug.apk放到手机上后发现也能正常的安装,debug版本和release版本到底什么区别呢,这里就需要了解安卓的apk签名:为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。如果使用没有统一签名的debug版本进行覆盖安装时将会报错,提示:应用未安装。

进行签名的好处都有啥呢:

应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同!

应用程序模块化:Android 系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块

代码或者数据共享:Android 提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。

不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。

签名使用到的工具是Keytool:keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。

首先进入到工程目录后输入

$ keytool -genkey -v -keystore my-release-key.keystore -alias 你的应用名称 -keyalg RSA -keysize 2048 -validity 10000

成功生成签名文件

发布Release版本APK

Releaese版本和Debug版本的区别:

debug签名的应用程序不能在AndroidMarket上架销售,它会强制你使用自己的签名;Debug模式下签名用的证书(默认是Eclipse/ADT和Ant编译)自从它创建之日起,1年后就会失效。

debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题,相当于软件不具备升级功能!

使用命令ionic build android --release进行release版本的发布。在apk目录下选中我们需要的版本

输入命令:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore sangcan.apk sangcan

这里后面的sangcan.apk是我们的目标apk版本,这里是个人习惯将前面的目标文件重命名为sangcan.apk。而后面的sangcan则是之前在生成签名时填写的应用名称。

签名成功后可以看到成功进行覆盖安装

到这里Release版本的APK成功发布。

ionic2 mac android,Ionic制作Hybrid App系列二:Mac环境下Ionic release版本APK的签名与发布...相关推荐

  1. Ionic制作Hybrid App系列一:Mac环境下Ionic的搭建

    最近公司项目要做app.由于开发时间较短,并且要出web,android和ios三个版本,经过考虑后决定尝试用Hybrid App的开发方式.说到Hybrid App(混合应用),什么是混合应用? 混 ...

  2. 怎么用Android做登录界面,利用Android怎么制作一个APP登录界面

    利用Android怎么制作一个APP登录界面 发布时间:2020-12-02 17:09:10 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关利用Android怎么制作一 ...

  3. android studio设置生成的release版本apk的名称

    今天,简单讲讲如何使用android studio设置生成apk的名称. 一.首先讲讲如何使用android studio生成release版本的apk. 1.1.前提 发布release 版本,首先 ...

  4. Mac 环境下完美获取获取正式版SHA1和发布版SHA1

    本文转发自:https://blog.csdn.net/w13576267399/article/details/83007537#SHA1_6 Mac 环境下完美获取获取正式版SHA1和发布版SHA ...

  5. Android Studio制作手机App:通过手机蓝牙(Bluetooth)与STM32上的低功耗蓝牙(HC-42)连接通信,实现手机端对单片机的控制。

    背景: 本文的内容是针对单片机蓝牙模块(HC-42)开发的手机App.在这之前,我想先声明一点,手机与手机间的蓝牙连接方式"与"手机与HC间的蓝牙连接方式"是不一样的.原 ...

  6. Mac 此账户尚未用于app store_献给mac新手,Mac日常软件APP推荐

    不少初入Mac 或者 Macbook 的朋友会因为 macOS 系统的独特性而感到新奇又迷惑,它不仅在操作逻辑上和 Windows 大相径庭,软件生态也是截然不同. 初用 macOS 系统时可能会一头 ...

  7. Android Studio默认编译出Release版本apk

    在我们打包是进行Make Project,默认编译出来的是Debug包. 在Android Studio的左下角,有一个Build Variants,如图下: 这样Make Project编出来的所有 ...

  8. 利用Hbuilder + Android Studio 制作安卓APP

    制作过程 Hbuilder部分 首先第一步在Hbuilder中创建uni-app项目,由于我是第一次尝试,因此直接借用了原来的login代码模板.如图所示: 创建好了之后,想了解的可以看代码,不想了解 ...

  9. android网速测试app,Android网速测试App(二)

    上网速度测试软件名称:上网速度测试 软件版本:2.0 软件大小:2.83MB 软件授权:免费 适用平台:Android 这款App的名字很直接,就是上网速度测试.上网速度测试可以测试网络的上下行速度和 ...

最新文章

  1. 范登读书解读《亲密关系》(婚姻、爱情) 笔记
  2. 如何修改Admin用户名
  3. 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql
  4. windows下添加yaf扩展,生成yaf框架
  5. 2020年, SGG论文汇总
  6. 敏捷与 DevOps:是敌是友?
  7. [导入]C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式).zip(9.84 MB)...
  8. 如何把握网络工程师的“钱”途,专访文字。
  9. 问题 A: 阿正的忐忑不安(C语言)
  10. [Spring实战系列](8)Spring注入方式之setter注入
  11. [转]SSH框架搭建
  12. Mac使用磁盘工具创建(dmg)映像文件超详细步骤
  13. Python3-word文档操作(六):word文档中表格的操作-单元格文字居中,字体颜色等的设置
  14. 【Datawhale IntelVINO学习笔记】OpenVINO音频和人体姿态识别
  15. IOS苹果账号三方登录服务器端验证
  16. 39岁阿里P9失业,资产1.5亿,北京4套房!职场人的离职悲喜各不相同
  17. mysql3306端口被占用无法终止_Mysql3306端口被占用无法启动解决办法.doc
  18. 记录——使用坚果云引发的一次史诗级笔记灾难
  19. lc谐振计算机网络,LC谐振回路解析,LC谐振回路的选频特性
  20. 前端面试题汇总CSS篇

热门文章

  1. java上传音频到服务器_Java 客户端向服务端上传mp3文件数据的实例代码
  2. rss spring 接口_spring 接口支持返回多种格式
  3. mathematica在linux上运行,Mathematicamatlab的linux版的安装
  4. 加油python_力扣——gas station (加油站) python实现
  5. typeScript模块四
  6. Java线程机制学习
  7. 敏捷开发回顾:使团队更强大pdf
  8. Mybatis配置文件注释
  9. Angularjs 设置全局变量的3种方法
  10. 【Java集合源码剖析】Hashtable源码剖析