ionic 项目签名
一.ionic 自动签名的好处与坏处(ionic build android/ios)
好处在于:可以直接安装手机上进行安装测试,也可以上传Android或者iOS平台
不好的地方在于:你的电脑环境变了换电脑了,再打包出来的签名就会不一样了,再打包出来的app就无法覆盖之前的版本,会报签名不一样的问题
二.不采用自动签名
关于签名官网提供了一种新的方式,参加官网https://ionicframework.com/docs/intro/deploying/
1.打包运行 命令 (安卓为例)
ionic build android -release
2.生成证书文件
keytool -genkey -v -keystore test.keystore -alias demo.alias -keyalg RSA -validity 20000
命令运行之后会让你填写密钥库口令,
再次确认,之后是一些相关的个人以及公司信息,没输入完一次,回车就行,
之后还会有一个密钥库的口令,可以和密钥库的一样或者重新写;
keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来;
-keystore test.keystore 证书的文件名;
-alias sign.alias表示证书的别名;
-keyalg RSA 生成密钥文件所采用的算法;
-validity 20000 该数字证书的有效期,单位天;
出现的问题:
(1).keytool不是内部或可用命令,这里需要把这个路径配置到这个工具的上级文件夹,
比如我的keytool.exe是在Java\jdk1.8.0_121\bin\这个文件下,配置目录到
Java\jdk1.8.0_121\bin\;最后这个\不要丢掉,配置的时候注意;(分号)没有了要加上;
(2).输入密钥库口令的时候输入但并不在窗口上展示,其实已经输上了;3.对生成的未签名的apk进行签名
jarsigner -verbose -keystore /yourpath/demo.keystore -signedjar signafter.apk android-release.apk sign.alias
jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;
-keystore /yourpath/test.keystore 之前生成的证书 找到证书的位置
signafter.apk 签名后的apk
android-release.apk 需要签名的apk
sign.alias证书的别名
注意的问题:
(1).配置的变量目录要和上边的类似,否则也会报命令不可用的问题.
位于jdk1.6.0_24\bin\目录下
(2).运行这个命令的时候需要切换目录到你需要签名的apk的目录,否则会报错jar文件无法打开
(3).如果你是在你签名证书存放的目录下运行的这个命令,那么你需要把你要签名的apk复制到这个目录下,否则也会报错jar文件无法打开
(4)有些情况下会提示未提供 tsa 或 tsacert(其实不影响apk的使用)
可以再命令后加上 -tsa https://timestamp.geotrust.com/tsa
4.对签名过的apk进行优化,可以不优化
zipalign -v 4 signafter.apk signend.apk
1)zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息;
2) 表示对已签名文件signafter.apk进行优化,优化后的文件名为 signend.apk
5.查看apk签名
1)
Mac下,把apk的后缀改为zip打开,然后查看META-INF下的.RSA文件
Windows下,用winner打开apk,同样查看.RSA文件
执行命令
keytool -printcert -file META-INF/CERT.RSA
注意后面文件的名称与路径即可,可以查看到签名信息,主要是查看Certificate fingerprints下的MD5与SHA1,这两个不同就代表着签名不同
2)查看证书文件的签名(keystore)
keytool -list -v -keystore 你自己的打包用到的keystore的路径
例如 keytool -list -v -keystore F:\workappusekey\test.keystore
6.利用证书文件当换电脑打包同一个app时,使app签名不变
利用生成的数字证书和包名可以保证签名不变,生成的数字证书文件和包名要保存好;
如果对包名有要求,在对项目签名前,确定包名;
在 start 命令创建项目的时候,后边加上 -i或者--id来设置包名,可以避免创建项目之后再去修改包名

希望有问题的地方,看到的大神帮补充一下,谢谢
ionic 项目签名的更多相关文章
- ionic项目 环境搭建及基本操作
一.安装 1.安装node.js 3.安装ionic & cordova: 命令行输入:npm install –g cordova ionic 注:-g表示全局安装,也可以进入指定的目录安装 ...
- ionic生成签名的APK方法总结
ionic生成签名的apk步骤如下: 1. 在项目目录下运行 ionic build android --release 先生成一个未签名的apk 2. 在项目目录下运行 keytool -genke ...
- ionic项目编译打包(android平台)
ionic项目相关开发工作完成之后(建立ionic工程项目可以参考上一篇文章ionic项目工程建立),就可以进行项目的编译打包apk应用包. 打包编译需要在平台环境下,这里只记录下android平台打 ...
- 浅谈对ionic项目的理解
在思考怎么将客户端app连接到服务器的时候,就在想ionic项目的本质是什么,一开始因为ionic serve这一命令,我以为它自己就是个服务器,但是后来一细想又感觉不是这样,不然客户端又该怎么和服务 ...
- 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- [转]ionic项目之上传下载数据
本文转自:http://blog.csdn.net/superjunjin/article/details/44158567 一,首先是上传数据 记得在angularjs的controller中注入$ ...
- ionic项目的一些简单操作
1.首先保证开发环境没问题: 2.下载一个ionic项目:命令ionic start myApp tabs(myApp的项目的名称) 3.在运行项目之前,要先创建平台: ionic platform ...
- cordova安装--创建ionic项目
1.简介ionic ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework ). 可以帮助您使用 Web 技术,比如 HTML.CS ...
- Ionic项目中使用极光推送
Ionic项目中使用极光推送-android 对于Ionic项目中使用消息推送服务,Ionic官方提供了ngCordova项目,这个里面的提供了用angularjs封装好的消息推送服务(官方文档) ...
随机推荐
- PHP基础架构
PHP基础架构 一.PHP简介 PHP是一种非常流行的高级脚本语言,尤其适合Web开发,快速.灵活和实用是PHP最重要的特点.PHP自1995年由Lerdorf创建以来,在全球得到了非常广泛的应用. ...
- react小知识2
概述 这是我学习react的过程中,学到的一些简便写法,都是利用了es6的特性,记录下来供以后开发时参考,相信对其他人也有用. 参考资料:dva.js 知识导图 析构 我们也可以析构传入的函数参数. ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 6.在计算节点上安装并配置计算服务Nova
安装和配置计算节点这个章节描述如何在计算节点上安装和配置计算服务. 计算服务支持几种不同的 hypervisors.为了简单起见,这个配置在计算节点上使用 :KVM <kernel-based ...
- Docker部署Vue 工程包
docker部署 Vue 工程包 目录结构 [root@host ~]# tree front/ front/ ├── dist.conf ├── dist.zip ├── Dockerfile └─ ...
- [每天解决一问题系列 - 0007] 如何创建Catalog并用其签名
问题描述: 校验一组文件的完整性 解决方法: https://msdn.microsoft.com/en-us/library/windows/desktop/aa386967(v=vs.85).as ...
- 设置c++中cout输出的字体颜色
在c++中控制台的默认字体颜色是白色,但是有时我们需要其他颜色,比如用红色提示错误,使用绿色提示计算完成,使用黄色表示警示等等,那么如何设置控制台文字的颜色呢? 一种方法是通过右键控制台进行颜色设置, ...
- cropper实现图片剪切上传
一.引入文件 <script src="jquery.min.js"></script> <link rel="stylesheet&quo ...
- TCP编程实践小结1
说起TCP/IP协议,大家估计都能说出个一二,但是估计很少有人能够深入的理解这个协议,原因有这么几个: 协议本身确实复杂 入门教材没选对,太抽象了,导致大家浅尝辄止 学习过程中如果没有配合实践理解,过 ...
- JAVA 面试知识点
参考:https://www.cnblogs.com/java1024/p/8594784.html 反射: JAVA反射机制是在运行状态中, 对于任意一个类,都能够知道这个类的所有属性和方法: 对于 ...
- c语言中阶乘的精确值
对于大数的操作,可能超出int,甚至long的表示范围,对此,可以使用数组来存储大数,下列代码为求1000以内数的阶乘的代码,代码如下: #include <stdio.h> #inclu ...