美文网首页Ionic
ionic2完整-签名android和ios App打包上架

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

作者: 娶个村姑当老婆 | 来源:发表于2017-11-20 21:58 被阅读218次

    ------------------在网上找了很多资料,综合整理出了最完整的ionic打包上架。


    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 

          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  【本人没试过】

    方法一:(未打包好,想直接打包签名的。)

    打包前注意config.xml文件需要进行包名的更改(更改成唯一标识)【为打包签名后能正常安装到手机】

    不然打包后安装

    项目目录下执行:

    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)放到一个安全的地方,要不然你上传到商店后就无法对这个软件进行升级。】


    相关文章

      网友评论

        本文标题:ionic2完整-签名android和ios App打包上架

        本文链接:https://www.haomeiwen.com/subject/dnpbcxtx.html