react native 热更新
一、安装codepush服务
npm install code-push-cli -g
code-push -v
二、创建codepush账号
code-push register
code-push login
code-push logout
三.添加应用
Usage: code-push app add <appName> <os> <platform>
选项:
-v, --version 显示版本号 [布尔]
示例:
app add MyApp ios react-native Adds app "MyApp", indicating that it's an iOS React Native app
app add MyApp windows react-native Adds app "MyApp", indicating that it's a Windows React Native app
app add MyApp android cordova Adds app "MyApp", indicating that it's an Android Cordova app
四.查看和删除应用
code-push app list
code-push app remove
五.集成codepush sdk
1.npm install --save react-native-code-push
六.配置ios和android
1.安装rnpm
npm i -g rnpm
2.链接
rnpm link react-native-code-push
中途输入2个enter
3.配置android
只要把本地的服务器和端口随便填一个就能从codepush获得最新代码了
4.配置ios
1.单击项目->PROJECT->info->configurations里面点击加号->添加一个duplicate release->名称为Staging
2.选中build settings->加号->user-defined setting->输入CODEPUSH_KEY->去命令行查code-push deployment ls -k tk_ios,接着输入key->
debug和staging 设置成一样的。
3.打开info.plist的Codepushdeploymentkey的内容为$(CODEPUSH_KEY)
4.查看appdelegate,发现多了一段代码,判断开发环境和生产环境的
#ifdef DEBUG
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
jsCodeLocation = [CodePush bundleURL];
#endif
七.使用codepush进行热更新
1.设置更新策略,什么时候进行更新
下面是加载就更新的例子
1.1导入codepush
import codePush from 'react-native-code-push'
1.2 在componentDidMount 中调用codePush.sync();
2.发布更新
1.发布测试
code-push release-react tk_ios ios --t 1.0.0 --dev false --d Staging --des "1.改变背景为红色" --m true
code-push release-react tk_android android --t 1.0.0 --dev false --d Staging --des "1.超大字体" --m true
2.发布生产环境
2.1安卓
code-push release-react tk_android android --t 1.0.0 --dev false --d Production --des "1.修复搜索页返回bug" --m true
2.2 ios
code-push releaselease-react tk_ios ios --t 1.0.0 --dev false --d Production --des "1.修复搜索页返回bug" --m true
--t 版本
--dev 是否启用开发者模式
--d Production ,Staging是生产环境还是测试环境
--des 更新说明
--m 强制更新
查询更新
code-push deployment ls tk_ios
code-push deployment ls tk_android
查询历史
code-push deployment history tk_android Production
code-push deployment history tk_android Staging
3.测试
1.需要要ios的js打包,放到xcode,要不然每次都是本地直接更新了
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/
2.把打包的拉倒xcode,不要copy needed
3.去appdelegate里面 设置jsCodeLocation = [CodePush bundleURL];,把其他注释掉
查看push的版本
code-push deployment history tk_android Production
安卓的打包
1.在项目根目录执行
React-native bundle --entry-file index.android.js --bundle-output ./android/app/src/main/assets/index.android.jsbundle --platform android --assets-dest ./android/app/src/main/res/ --dev false
2.在项目根目录执行
cd android && ./gradlew assembleRelease
http://www.devio.org/2016/07/23/react-native-%E5%8F%91%E5%B8%83APP%E4%B9%8B%E7%AD%BE%E5%90%8D%E6%89%93%E5%8C%85APK/
问题:Couldn't follow symbolic link
1.https://juejin.im/post/599bcdaf518825242927bd1b
2.https://github.com/facebook/react-native/issues/11212
问题:Duplicate file 安卓打包的时候出现
1.解决方法是把$(rn_project)\android\app\src\main\res文件夹下的带有drawable-xxxx的文件夹删掉就可以了
问题:null is not an object(evaluating _this3._foot.setNativeProps)
问题:can only update a mounted or mounting component, this usually means you called setstate on an unmounted component
https://www.cnblogs.com/zyl-Tara/p/7998590.html
https://www.jianshu.com/p/a9d1f5aa719a
问题:安卓隐藏底部bar
https://stackoverflow.com/questions/32704336/how-to-access-activity-from-a-react-native-android-module
问题:Only the original thread that created a view hierarchy can touch its views
https://developer.android.com/training/system-ui/navigation.html
问题:如何修改安卓的包名
进入 Androidmanifest.xml 文件,找到 package 名称,选中需要修改的部分。
比如原包名为
com.faqiang.android
如果需要修改中间的 faqiang ,那么我们就选中 faqiang ,
依次进行 右键 - > Refactor -> Rename , (Mac 快捷键为 fn + shift+F6)
然后选择 Rename package , 输入要修改目标的名称 ,直接点击 Refactor , 左下方继续点击 Do Refactor , 等待修改成功~!
问题:cannot add a child that doesn't have a yoganode to a parent without a message function()
http://www.mianbeian.org/
react native 热更新的更多相关文章
- React Native热更新(iOS)-Pushy
React Native的出现,使的开发iOS代码出现了更便捷的方式.由于RN是使用脚本语言编写的,实现了"解释执行"的方式,而这种执行方式的修改只需替换脚步即可,不需要重新发布程 ...
- iOS 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- react-native热更新之CodePush详细介绍及使用方法
react-native热更新之CodePush详细介绍及使用方法 2018年03月04日 17:03:21 clf_programing 阅读数:7979 标签: react native热更新co ...
- 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- 🙈 如何隐藏你的热更新 bundle 文件?
如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦. 前段时间我们公司的一个大佬从一些渠道得知了一些小道消息,某国民级 APP 因为 Apple App Store ...
- React Native环境配置和简单使用
# 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会 ...
- React Native实践之携程Moles框架
编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...
- RN学习1——前奏,app插件化和热更新的探索
react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客 ...
- 搭建带热更新功能的本地开发node server
引言 使用webpack有一段时间了,对其中的热更新的大概理解是:对某个模块做了修改,页面只做局部更新而不需要刷新整个页面来进行更新.这样就能节省因为整个页面刷新所产生开销的时间,模块热加载加快了开发 ...
随机推荐
- AutoCAD2015激活码和密钥
CAD2015序列号和密钥 序列号: 666-69696969 产品密钥: 001G1 序列号: 356-72378422 产品密钥: 206G1 安装说明 ...
- Python爬虫入门(3-4):Urllib库的高级用法
1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它 是一段HTML代码,加 JS.CS ...
- Alpha发布—文案+美工展示
目录 团队简介 项目进展 组内分工 队员总结 后期计划 一.团队简介 二.项目进展 从选题发布到今天的Alpha发布,我们团队经历了许许多多的磨难.我们最终设计了如下的功能:首页.班级.个人.更多.打 ...
- ubuntu安装和查看已安装软件
说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装.卸载和删除的方法. 一.U ...
- 对其中的一个特点将NABC的分析结果
一.题目要求 每一个组员针对其中的一个特点将NABC的分析结果发表博客上(截止日期4月8日晚24:00前). 二.分析结果 特点之一:通讯方便 <渴了么>这个安卓APP特点之一就是通讯方便 ...
- 团队开发——软件需求分析报告(Hello World 团队)
一. 项目名称 超级迷宫 二. 设计背景 随着生活节奏加快,游戏更新速度的加快,游戏大同小异缺少新颖度,同时为了满足多游戏的结合,充实人们的生活,同时增加知识,有协作模式增进友谊和感情,在闲暇 ...
- 基于图形学混色问题OpenGl的收获
void myDisplay(void) {glClearColor(0.0f,0.0f,0.0f,1.0f); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_B ...
- 【week10】规格说明书练习-吉林市1日游
假设我们全班同学及教师去吉林省吉林市1日游,请为这次活动给出规格说明书. 版本:1.0 编订:于淼 团队:2016级计算机技术全体同学 日期:2016/11/19 1.引言 1.1 编写目的 1.2 ...
- Robotium之“去哪儿旅行”
Robotium基于APK自动化测试,只有APK文件,没有源代码. Eclipse 默认的debug keystore可以在Windows->Preferences->Android-&g ...
- 【Quartz.Net】.net 下使用Quartz.Net
Quartz.net是作业调度框架 1. 项目中添加quartz.net的引用(这里使用nuget管理) 新建一个类TimingJob,该类主要用于实现任务逻辑 using Quartz; usi ...