Android端CodePush配置
2019独角兽企业重金招聘Python工程师标准>>>
Code Push
环境配置
- 安装react-native-code-push :
$ npm install --save react-native-code-push
- 安装App Center CLI :
$ npm install -g appcenter-cli
Android工程配置
CodePush 提供两种配置方式,一种为自动配置,一种为手动配置:
RNPM (自动配置)
$ react-native link react-native-code-push
需要在RN项目的根目录下,且Android原生项目也在此根目录下
手动配置
- 在
android/settings.gradle
文件中配置react-native-code-push
工程
include ':app', ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
- 在
android/app/build.gradle
文件中添加:react-native-code-push
工程依赖
...
dependencies {...compile project(':react-native-code-push')
}
- 在
android/app/build.gradle
文件中添加codepush.gradle
插件
...
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
...
- 配置Application
...
// 1. Import the plugin class.
import com.microsoft.codepush.react.CodePush;public class MainApplication extends Application {private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {...// 2. Override the getJSBundleFile method in order to let// the CodePush runtime determine where to get the JS// bundle location from on each app start@Overrideprotected String getJSBundleFile() {return CodePush.getJSBundleFile();}@Overrideprotected List<ReactPackage> getPackages() {// 3. Instantiate an instance of the CodePush runtime and add it to the list of// existing packages, specifying the right deployment key. If you don't already// have it, you can run "appcenter codepush deployment list -a <ownerName>/<appName>" to retrieve your key.return Arrays.<ReactPackage>asList(new MainReactPackage(),new CodePush("deployment-key-here", MainApplication.this, BuildConfig.DEBUG));}};
}
Js配置
检查更新的代码需在js端配置
import CodePush from "react-native-code-push";class App extends Component {...
}App = CodePush({installMode: CodePush.InstallMode.ON_NEXT_SUSPEND, //app进入后台模式时更新checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME //每次进入页面时检查是否有更新可用
})(App);export default App
详细可用配置参数可参考官方文档
发布bundle文件
- 登录AppCenter
$ appcenter login
- 创建app(可直接在web端操作)
$ appcenter apps create -d <appDisplayName> -o <operatingSystem> -p <platform>
- 发布
//开发模式
appcenter codepush deployment add -a <ownerName>/<appName> Staging
//生产模式
appcenter codepush deployment add -a <ownerName>/<appName> Production
常见问题
已发布升级包,但是检测更新显示已是最新代码
可能存在的几种情况如下:
- 检查部署的key是否正确,是对应到Staging还是Production的
- 检查android版本号是否正确,每个发布的bundle更新都会对应一个android的版本号,用于针对版本的更新
realease版本无法正常显示
检查是否正确配置proguard文件,可参考官方配置
转载于:https://my.oschina.net/u/552375/blog/1649961
Android端CodePush配置相关推荐
- React Native手动实现调用原生相机相册(Android端)
前言 最近一直在学习RN的相关开发,想做一部分调用原生的实现,来练练手,于是就有了下面这个demo,由于本人是Android开发,所以只实现了Android端的效果. Demo 主要实现 这种调用原生 ...
- android native 相册,React Native手动实现调用原生相机相册(Android端)
前言 最近一直在学习RN的相关开发,想做一部分调用原生的实现,来练练手,于是就有了下面这个demo,由于本人是Android开发,所以只实现了Android端的效果. Demo 主要实现 这种调用原生 ...
- Android端调用Caffe模型实现CNN分类
本文的主要内容如下. 移动端的深度学习的实现方式 tiny-cnn介绍以及移动端移植 总结与改进 应用截图 一.移动端深度学习的几种实现方式 (1)Caffe的移动端编译项目 caffe(命令式框架) ...
- 【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 )
文章目录 一.下载 Java-WebSocket 源码 二.Android Studio 工程导入 Java-WebSocket 源码 使用 https://github.com/TooTallNat ...
- 【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 )
文章目录 一.protobuf-gradle-plugin 插件简介 二.Android Studio 中配置 protobuf-gradle-plugin 插件 三.Android Studio 中 ...
- 【Android RTMP】RTMPDumb 源码导入 Android Studio ( 交叉编译 | 配置 CMakeList.txt 构建脚本 )
文章目录 安卓直播推流专栏博客总结 一. RTMP 协议 二. RTMP 协议使用 三. RTMPDump 源码下载 四. RTMPDump 源码交叉编译 五. RTMPDump 源码导入 Andro ...
- java 对外提供接口_Java服务器对外提供接口以及Android端向服务器请求数据
讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么请求服务器,接收以及解析返回数据的. 服务端:还是在原先S2SH框架的项目上(搭建SSH详细步骤及其相关说明),加 ...
- 如何做好 Android 端音视频测试?
在用户眼中,优秀的音视频产品应该具有清晰.低延时.流畅.秒开.抗丢包.高音效等特征.为了满足用户以上要求,网易云信的工程师通过自建源站,在SDK端为了适应网络优化进行QoS优化,对视频编码器进行优化, ...
- 短视频技术详解:Android端的短视频开发技术
在 <如何快速实现移动端短视频功能?>中,我们主要介绍了当前短视频的大热趋势以及开发一个短视频应用所涉及到的功能和业务.在本篇文章中,我们主要谈一谈短视频在Android端上的具体实现技术 ...
最新文章
- c51语言的标准库函的头文件,C51编程中头文件的使用
- 从硬件到软件 统一沟通将引领通讯市场
- Java开发面试题及答案,SpringBoot统一日志处理原理
- UVa1368 - DNA Consensus String(贪心算法)
- 借助开源工具高效完成Java应用的运行分析
- 传统的http请求存在那些缺点
- IT168调研:企业移动安全应用状况调查
- Spring Boot 核心知识,深入剖析!
- LiveVideoStack线上分享第四季(三):在线教育的音视频架构设计及弱网对抗技术...
- 投资学习网课笔记(part3)--基金第三课
- 使用Spring Boot打造文件文档在线预览平台
- 利用Enterprise Library中的DAAB构造的数据库访问架构
- iOS研发助手DoraemonKit技术实现之Crash查看
- 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
- 服务器后台运行程序(nohup/screen/tmux)
- Python 求数字开方
- 关于php的广告语,解说词、广告词、欢迎词专题训练a href=http://ruiwen.com/friend/list.php(教师中心专稿)/a...
- Oliver的救援【BFS】
- 排序算法lowB三人组
- 无代码开发平台 有哪些?