[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
- PWA 概念
- Immutable
- Angular 基础概念
- 入门参考
- Angular 更新总结
- Angular 生态系统
- Rx.js
- Ngrx
- CQRS/ES 模式
- Angular 5 详解
- 测试
- 定义共享模块
- 懒路由加载
- angular组件
- 双向绑定及变化检测
- 样式
- ionic 3详解
- ionic3
- ionic 插件
- Ionic 添加动画
- Ghost-Loading
- 打包发布
- Android上架国内应用市场流程
- 总结
- 文章
- 问题合集
- Cordova
- 插件开发指南
- Android插件开发指南-官网
- IOS插件开发指南-官网
- Hooks 编写
- 桥接技术
- ===cordova插件收集===
- 相关主题-官网
- 实战-自定义插件流程
- UI 及 相关资源