🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 准备工作 ## `app.module.ts`修改 ~~~ HTTP_DEBUG: false, ~~~ ## `../project/node_modules/ionic-angular/components/infinite-scroll/infinite-scroll.js`修改 # Android打包 使用ionic cli 打包,打包分两种,开发包 和发布包。发布包需要对app进行签名。 资源整理:http://www.jianshu.com/p/a7791341709e 1. 生成签名文件 ~~~ keytool -genkey -v -keystore ipet.keystore -alias ipet.keystore -keyalg RSA -validity 20000 ~~~ 2. 给文件签名 注意这里的apk路径要正确,如果路径不正确,就找不到需要签名的apk文件,自然会签名失败。 将打包的app移动到与生成的keystore文件相同的目录 ~~~ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ipet.keystore android-release-unsigned.apk ipet ~~~ **Tips** 在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2签名方式,美团也推出相应的Android渠道包生成工具Walle。 360加固后需要重新签名,借助360官方提供的签名工具qihoo apk signer,是采用的7.0以前的v1签名,这时再通过walle打渠道包,是无法成功往apk写入渠道号的。 (新版的360加固工具-辅助工具里面已经有V2签名的选项了) 这时我们就必须借助Android SDK提供的[apksigner工具](https://developer.android.google.cn/studio/command-line/apksigner#options-sign-general)对已经打包好的apk进行v2签名。 3. 压缩apk文件 zipalign是`Android/sdk/build-tools/VERSION/zipalign`的压缩代码工具,可以将我们的apk体积最小化。 比如我的zipalign的位置在`D:\Android\android-sdk-windows\build tools\25.0.1\zipalign.exe`,25.0.1是android sdk版本号,任意版本号都有zipalign.exe。 ~~~ cd D:\develop\android-sdk\build-tools\26.0.0 zipalign -v 4 "D:/My Projects/IPet/platforms/android/build/outputs/apk/release/android-release.apk" ipet-signed-dist.apk ~~~ 现在去你的zipalign所在的路径,可以看到压缩完成的apk文件。 4. 自动签名设置:签名APP生成release版本(跳过2,3步骤!!!) 签名的意义其实就是给app一个身份证。这样你的app发布到市场,就拥有了唯一的ID。 如何获得签名请点击查看 [Ionic3 Android签名](http://www.jianshu.com/p/26166279413b),签名之后,就可以打包了: 在ionic2项目 platform/android目录下新建文件 `release-signing.properties`,内容为 ```ini storeFile=[到 keystore 文件的路径] keyAlias=[keystore 的别名] storePassword=[keystore 的密码] keyPassword=[keystore 别名对应的密码] ``` 然后构建app命令换成 `ionic cordova build android --release --prod` ,最后生成的 app 安装前需要卸载手机中原来的debug版本。这样一个可发布到市场的基本APP就生成了,在商业应用中还需要对app进行加固等处理,我打算专门写一篇这方面的博客。 ~~~ cordova plugin rm cordova-plugin-console ionic build android --release --prod --device --keystore="../android.keystore" --storePassword=android --alias=mykey --password=myKeyPassword zipalign -v 4 D:\\My Projects\\IPet\\platforms\\android\\build\\outputs\\apk\\release\\android-release.apk ipet.apk ~~~ 其中 ionic build android --prod --device 中的 --prod 表示启用aot;--device 将要求略过白屏启动时间。   打包好APP后,还需要对APP进行加固。可以使用“乐固”,通过“乐固”进行加固后,下载加固后的安装包,重新进行签名即可。 ## 快速获取 UDID 可以使用 FIR.im [提供的的接口](https://fir.im/support/articles/faq/user_udid) 快速获取 UDID ## Android签名 如果需要发布应用到 安卓市场 资源整理:http://www.jianshu.com/p/26166279413b # IOS打包 比较麻烦,涉及到一系列IOS证书,关键是还要开发者账号,要钱。目前的做法是远程打包,不过目前有一个问题:现在那台机器上的证书好像失效了。 # 问题 # 参考 ## [腾讯乐固](http://www.cnblogs.com/happen-/p/6077140.html) ## [ionic应用的Android打包签名发布步骤](https://blog.csdn.net/liujiawei00/article/details/74356356) ## [发布ionic应用到App Store的完整步骤](https://blog.csdn.net/liujiawei00/article/details/73822707) https://www.baidu.com/s?ie=UTF-8&wd=webpack%20flexible | webpack flexible_百度搜索 https://segmentfault.com/a/1190000007055508 | 用vue+webpack搭建的前端项目结构 - 对角另一面 - SegmentFault 思否 http://xc.hubwiz.com/class/598bad66c7fd1d49453979c9/#1/1 | Vue.js 2 工程化实践 - 汇智网 https://blog.csdn.net/github_36326955/article/details/79066401 | Vue2.js工程实践4:Vue相关开源项目库汇总 - CSDN博客 http://www.hubwiz.com/course/55c0792f3ad79a1b05dcc401/ | Hogan.js - 汇智网 http://web.jobbole.com/91772/ | 淘宝 flexible.js 漏洞修补:记一次 rem 踩坑记录 - WEB前端 - 伯乐在线 https://www.kancloud.cn/book/chandler/web_app/edit | 移动Web开发 · 看云 https://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html | 使用Flexible实现手淘H5页面的终端适配_双11前端技术连载, Layout, mobile 教程_w3cplus https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=cordova%20%E5%9B%BE%E7%89%87%E5%A4%84%E7%90%86&oq=%25E5%259B%25BE%25E7%2589%2587%25E5%25A4%2584%25E7%2590%2586%2520api&rsv_pq=e1787f3f0002158a&rsv_t=1862X9kNBOQep9hdZXRRGDSFf1t9hg72PVsyhfkNKAlGxB%2BKWN2316lMK5c&rqlang=cn&rsv_enter=1&inputT=7196&rsv_sug3=26&rsv_sug1=29&rsv_sug7=100&rsv_sug2=0&rsv_sug4=7196 | cordova 图片处理_百度搜索 http://www.xview360.com/zb.html | xview