ionic2完整-签名android和ios App打包上架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bug_money/article/details/78587672

APP开发完成后都需要做的就是打包上架,这里列举三种打包方法,着重讲解官网Android打包方式(结合android的打包)进行最详细的讲解。【学不会你可以打死我】

打包执行命令:(ionic其实可以省略,尾部可以加–save)

1、ionic cordova platform remove android (移除平台)

2、ionic cordova platform add android@6.2.2 (添加平台)【建议6.2.2
对应的是android-25 SDK】

3、ionic cordova build android –prod (测试版)
android-debug.apk【默认是这个版本】 ionic cordova build android
–prod –release(正式未签名版) 打包后出现 android-release-unsigned.apk

4、ionic cordova build android –prod –release(正式签名版) 打包后出现
android-release.apk【前提是创建了密钥 并配置了release.properties文件】

加完平台后包执行Android打包 完成后会显示: Building successful

**IOS的打包上架可参考blog.csdn.net/liujiawei00/article/details/73822707。(这里不详细讲解)
使用webStorm工具打包签名APP www.jianshu.com/p/dfd98ad47af1 【本人没试过】
方法一:(未打包好,想直接打包签名的。)

项目目录下执行:

1、先移除平台防止错误:ionic cordova platform remove android –save 【ionic
不要也行】(如果成功,以后直接打包覆盖平台即可)

2、再添加平台:ionic cordova platform add android@6.2.2 –save

3、再制作密钥(随便在哪制作):keytool -genkey -v -keystore lappfront.keystore -alias
lappfront.keystore -keyalg RSA (-keysize 2048) -validity 20000

这里写图片描述
4、制作完生成的lappfront.store(我这里是lappfront) 移动到项目生成的platform >android目录下【和下面的release-signing.properties文件在同目录】

4、再platform >android文件夹下创建release-signing.properties文件(内容如下):
这里写图片描述
5、最后如下: 【打包正式的话就执行 ionic cordova build android –prod –release】【debug.apk的话如下图】
这里写图片描述

经过上面几步的操作,ionic打包签名APK:android-release.apk便已完成。

【最后就是优化APK,优化步骤下面有 (不优化也可以) 上线就行了】

方法二:要给未签名的apk重新签名,需要用到jarsigner工具:

1、已经执行了 ionic cordova build android –prod –release

打包成功的前提下出现:android-release-unsigned.apk【需要转成签名APK】

1)、创建密钥:同上 【这次在打包好的apk目录下执行】

2)、密钥弄好后,cd到项目的apk 目录 执行:【根据你要的app名称进行下面命令】

jarsigner -verbose -keystore my-release-key.keystore -storepass 123456
-signedjar lvshi.apk -digestalg SHA1 -sigalg MD5withRSA android-release-unsigned.apk alias_name 【这里要注意这些参数的意思,和密钥设置的匹配就行】
这里写图片描述
这里面,你的apk地址,要么是绝对地址,要么是你工程内的相对地址,如果地址不对,就会出现下面的错误【所以直接直接放一起,不然要找路径】

这里写图片描述
这里写图片描述
【结尾是jar 已签名,出现新的签名apk】

jarsigner是JDK自带的签名工具,我们需要将release版本的apk文件利用keystore文件进行加密,也就是签名,签名之后的apk才能发布到应用市场。

【项目apk的 目录下,创建密钥并签名如下】

一、keytool -genkey -v -keystore my-release-key.keystore -alias
alias_name -keyalg RSA -keysize 2048 -validity 10000

二、jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore
my-release-key.keystore HelloWorld-release-unsigned.apk
alias_name【这里用下面MD5那种的签名】

SHA-1与MD5的比较:【都是摘要加密算法】

http://blog.csdn.net/lplj717/article/details/51828692【加密算法中BASE64、MD5、SHA、HMAC等之间的区别】

因为二者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:

l对强行攻击的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要长32
位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD5是2^128数量级的操作,而对SHA-1则是2^160数量级的操作。这样,SHA-1对强行攻击有更大的强度。

l 对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击。

l 速度:在相同的硬件上,SHA-1的运行速度比MD5慢。

三、参考http://e2web.cn/2016/12/23/
这里写图片描述

这种打包完成后需要优化 【虽然你在build的时候–prod 了,但这里一样可以再优化】:

cd到下面目录(针对你apk的版本):
这里写图片描述
这里写图片描述

这里面apk的路径最好是绝对路径,要不然也会报错。

执行:zipalign -v 4
E:\my_project\lappfront\platforms\android\build\outputs\apk\lvshi.apk
E:\my_project\lappfront\platforms\android\build\outputs\apk\lvshi_fabu.apk

【到此为止,你还剩下最后一步工作,如果想要真正的发布软件,你需要将之前生成的签名文件(.keystore)放到一个安全的地方,要不然你上传到商店后就无法对这个软件进行升级。】

展开阅读全文

没有更多推荐了,返回首页