更多更全请参考: https://nxtfe.gitbooks.io/efos-app-spec/content/appfa-bu-liu-cheng-yu-gui-fan.html
痛点描述
Android
发布版
每次发布都需要手动修改很多内容,若是不小心修改错了,会需要热更新
- 指定
apptype 为发布版,当前标识为 1
- 关闭
debug 选项,注释到对应的标签
- 修改起始页
index.html 为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录
- 配置 manifest.json 页面版本
- 手动拷贝文件到服务器
- 修改下载页链接( AppDownload_release.html ),并上传覆盖
- 上传当前版本 Apk,格式示例:
TEST1.1.0.apk
- 修改数据库
AppVersion 表中信息
- 发布通知至运营
测试版
- 指定
apptype 为测试版,当前标识为 2
- 修改起始页
index.html 为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录
- 配置 manifest.json 页面版本
- 手动拷贝文件到服务器
- 修改下载页链接( AppDownload_test.html ),并上传覆盖
- 上传当前版本 Apk,格式示例:
1.1.0.apk
- 修改数据库
AppVersion 表中信息
- 发布通知至运营
IOS
发布版
- 代码差异性,日常开发围绕安卓开发,在IOS平台极有可能出现问题,发布需要测试功能是否完整。发现问题不建议针对不同平台开发不同版本,否则难以维护,而是使用分支提高代码的可维护性,具体措施如下
css: .platform-android .platform-ios
js: ionic.Platform.isAndroid ionic.Platform.isIOS
- 插件的差异性,日常开发围绕安卓开发的原因,发布IOS需要注意是否有插件新增,同时IOS应用权限管理严格,插件遵守精简原则
- 指定
apptype 为发布版,当前标识为 1
- 配置 manifest.json 页面版本
- 修改起始页
index.html 为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录
- 关闭
debug 选项,注释到对应的标签
- 手动拷贝文件到服务器
- 插件key的一致性
- 应用权限,IOS10以后对权限管理严格,有使用权限未声明或声明权限未使用,都会导致app上传不成功
- 目前解决措施:Cordova插件开发者觉得权限这一块确实容易忽略,有心的开发者会更新版本使得支持在plugin.xml配置插件使用的权限,并在插件安装的时候通过--variable的方式传入,如果插件不支持此功能,可以自己修改插件,这样一来权限相关就会记载在fetch.json当中,每次更新平台或者build代码都会自动配置好权限,而不是每次手动修改info.list文件。
- 更新应用config.xml的版本号
- 极光推送设置
- 开启Capabilities->Push Notification,确认step状态都是勾
- 开启并打开Capabilities->background modes->remote notification
- 配置PushConfig.plist
- 微信开放设置
- 微信插件打包armv7s时报错,需要在build setting->Other Linker Flags设置并加入-Objc -all_load
- 融云通信
- 本地通知插件
- 和安卓不同,安卓使用的是主分支,IOS使用的是IOS10的dev分支
- build setting设置enable modules(c and object-c)设置为YES,否则编译报错
- ibeacon
勾选Capabilities->background modes->Location updates,否则API调用异常,很可惜,审核会被拒绝,新增一个专门判断蓝牙状态的插件解决isBluetoothEnabled调用异常问题
- 兼容性设置
- Base SDK选择lastest IOS
- Deployment Target选择你目前支持的最低版本,如果有更低的要求,百度有方法解决
- 指令集设置
- architecture(想支持的指令集):armv7/armv7s/arm64
- valid architecture(有效的指令集):armv7/arm64(选择armv7s,Ionic项目编译报错)
- build active architectureonly(编译指令集):debug设置为YES(加快编译速度),release设置为NO(提高兼容性)
- 打包发布,设置project-scheme-edit scheme build configuration选择release,executable选择应用
测试版
IOS发布需要审核,暂时没有IOS内部测试版本的发布
其它
- 当前版本发布后,需要立即热更新一次才能生效
- 暂时没有自动同步到 Android 应用市场的机制
更多更全请参考: https://nxtfe.gitbooks.io/efos-app-spec/content/appfa-bu-liu-cheng-yu-gui-fan.html
痛点描述
Android
发布版
每次发布都需要手动修改很多内容,若是不小心修改错了,会需要热更新
apptype为发布版,当前标识为 1debug选项,注释到对应的标签index.html为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录TEST1.1.0.apkAppVersion表中信息测试版
apptype为测试版,当前标识为 2index.html为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录1.1.0.apkAppVersion表中信息IOS
发布版
apptype为发布版,当前标识为 1index.html为热更新模式,涉及到标签的 开启/关闭,并修改为此次发布目录debug选项,注释到对应的标签勾选Capabilities->background modes->Location updates,否则API调用异常,很可惜,审核会被拒绝,新增一个专门判断蓝牙状态的插件解决isBluetoothEnabled调用异常问题测试版
IOS发布需要审核,暂时没有IOS内部测试版本的发布
其它