`
jsntghf
  • 浏览: 2542410 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

React Native热部署之CodePush

    博客分类:
  • iOS
阅读更多

本文使用的环境是Mac OS 10.11.1、Xcode 7.2、React Native 0.17.0、CodePush 1.5.2-beta。

 

一、环境准备

 

1、安装CodePush CLI

$ npm install -g code-push-cli

 

2、 注册CodePush账户

$ code-push register

 

执行以上命令将会自动打开如下图所示的注册页面:

 

本文使用GitHub账户进行注册,注册成功后将会生成如下图所示相应的access token:

 

在终端输入刚生成的access token:

 

3、添加CodePush应用

$ code-push app add AGG

 

二、集成CodePush

 

1、修改package.js,添加react-native-code-push

{
  "name": "AGG_V2",
  "version": "2.1.3",
  "private": true,
  "scripts": {
    "start": "node_modules/react-native/packager/packager.sh"
  },
  "dependencies": {
	"react-native": "^0.17.0",
    "react-timer-mixin": "^0.13.2",
    "react-native-custom-navigation": "^0.2.1",
    "react-native-code-push": "^1.5.2-beta",
    "react-redux": "^4.0.6",
    "redux": "^3.0.5"
  }
}

 

2、项目目录下执行npm install命令后,在node_modules目录中将会生成react-native-code-push目录

 

3、在node_modules/react-native-code-push目录中找到CodePush.xcodeproj,将它拖到项目的Libraries下

 

4、Build Phases中的Link Binary With Libraries下添加libCodePush.a和libz.tbd

 

5、Build Settings中的Header Search Paths下添加react-native-code-push的路径

 

6、找到加载JS Bundle的类,做如下修改:

    (1)导入CodePush

#import "CodePush.h"

 

    (2)将代码中的

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

    替换为:

jsCodeLocation = [CodePush bundleURLForResource:@"AGG" withExtension:@"jsbundle"];

 

7、修改Info.plist文件,添加CodePushDeploymentKey键值对,Deployment Key可以通过以下命令进行获取:

$ code-push deployment ls AGG

 

8、React Native项目的入口文件,做如下修改:

    (1)导入CodePush模块

import CodePush from "react-native-code-push";

 

    (2)添加CodePush同步代码

componentDidMount() {
  CodePush.sync();
}

 

三、发布更新

 

1、React Native项目打包

$ react-native bundle --platform ios --entry-file index.ios.js --bundle-output AGG.jsbundle --dev false

 

2、发布更新

$ code-push release AGG AGG.jsbundle 2.1.3
分享到:
评论
3 楼 往事如烟1 2016-03-11  
我的项目是自己init了一个原始的project,之后将version对应的1.0改为1.0.0,在终端上同步到code push时,上面显示是成功的
2 楼 jsntghf 2016-03-11  
往事如烟1 写道
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什么原因?
首先初始化一个react native名为AwesomeProject,之后再进行离线真机,edit scheme>run>build Configuration: Debug
不知是不是这个原因

请确认版本号是否正确,以及同步到code push是否成功。
1 楼 往事如烟1 2016-03-10  
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什么原因?
首先初始化一个react native名为AwesomeProject,之后再进行离线真机,edit scheme>run>build Configuration: Debug
不知是不是这个原因

相关推荐

    reactnative热更新

    React Native热更新主要基于两个核心概念:Code Push和Fast Refresh。Code Push是微软推出的一个服务,它允许RN应用在不通过App Store或Google Play发布新版本的情况下,接收并安装远程服务器上的代码更新。Fast ...

    react-native-code-push

    import CodePush from 'react-native-code-push'; AppRegistry.registerComponent('YourAppName', () => YourApp, CodePush(AppConfig.codePushKey)); ``` 3. **部署更新**: 在Code Push服务端发布更新,这...

    reactnative-源码-热更新 iOS

    在提供的源码`66、手把手教React Native实战之热更新部署-CodePush-适配IOS_源码`中,我们可以看到具体如何配置和使用CodePush服务。主要关注以下几个文件: - `AppDelegate.m`:iOS原生代码中,我们需要导入Code...

    react_native热更新

    React Native 热更新机制详解 React Native 热更新是指在应用程序运行时,能够实时更新应用程序的代码,而不需要重新编译和安装应用程序。这项技术可以大大提高开发效率和用户体验。本文将详细介绍 React Native ...

    ReactNative开发实例带你入门reactnative开发

    8. **发布与更新**:最后,学习如何打包应用并提交到App Store或Google Play,以及如何通过热更新技术如CodePush实现实时部署和更新,将确保你的应用能够顺利地到达用户手中。 通过“React Native开发实例带你入门...

    Swift-react-native自建热更新版本升级工具demoios

    接下来,React Native的热更新机制通常依赖于`react-native-code-push`,这是一个由微软开发的开源库,允许开发者推送JavaScript和资源文件的更新,无需用户重新安装应用。然而,对于iOS端,可能由于某些限制或特定...

    Android-ReactNative启动白屏问题解决教程

    使用如`CodePush`这样的热更新服务,将更新的JavaScript代码部署到服务器,用户启动应用时直接下载最新版本,减少了启动时的等待时间。 三、具体实践步骤 1. **集成启动画面库** 克隆`crazycodeboy/react-native-...

    react-native从基础到高级

    5. **热更新**:掌握如何使用Expo的热更新服务或者自己实现热更新方案,如CodePush。 6. **第三方库**:熟悉社区中的常用库,如Redux和MobX进行状态管理,react-native-vector-icons添加图标,react-native-image-...

    React Native版本的Bilibili客户端,支持iOS和Android用户.zip

    此外,热更新是React Native的一个亮点,通过`CodePush`等服务,开发者可以在用户不更新应用的情况下推送新的JavaScript代码,提高了迭代效率。 对于测试和调试,React Native提供了模拟器和真机调试工具,如Chrome...

    一款基于react-native 的ios版 资讯头条 APP.zip

    此外,借助热更新技术,如CodePush,开发者可以在不经过应用商店的情况下推送更新,提高迭代速度。 总的来说,“资讯头条APP”利用React-Native的优势,实现了跨平台的快速开发,同时保持了良好的用户体验。对于...

    MyReactDemo:Android 与 ReactNative 的练习Demo。嵌入原生项目,与原生Activity界面互相跳转

    React Native提供了很多性能优化工具和技术,如Code Push、热更新和Proguard配置。 通过深入研究"MyReactDemo"项目,开发者不仅可以掌握React Native与Android原生项目的集成技术,还能了解到如何在两者之间建立...

    Android-ReactNativeForAndroid热更新实现思路

    本文将深入探讨如何在Android应用中实现React Native的热更新功能,主要基于CodePush服务。 **一、React Native概述** React Native是由Facebook开发的开源框架,它允许开发者使用JavaScript和React库来构建原生...

    tiktok-react-native:使用React Native和样式化的组件重新创建应用Tiktok

    - **代码分割**:通过动态导入和`react-native-code-push`,可以实现按需加载,减少启动时间和内存占用。 - **异步渲染**:利用`useEffect`和`Suspense`进行数据预加载和错误边界处理。 - **性能监控**:使用`...

    React Native如何消除启动时白屏的方法

    4. 利用热更新技术:如CodePush,可以快速部署修复和更新,减少因下载新版本导致的白屏时间。 5. 调整应用结构:优化应用结构,减少启动时不必要的初始化操作,提升整体性能。 总之,消除React Native应用启动时的...

    ReactNativeLearning::mobile_phone_with_arrow:ReactNative仓库

    9. **热更新**:了解如何配置和使用Fastlane, CodePush等工具实现React Native应用的热更新。 10. **测试与调试**:学习使用Expo的test runner Jest进行单元测试,以及Chrome开发者工具和React Native Debugger进行...

    rn_bibhinno:使用React Native构建电子商务移动应用程序

    4. 使用CodePush进行热更新,减少用户下载新版本的频率。 六、部署与发布 完成开发后,开发者可以使用Xcode或Android Studio进行打包和签名,然后通过App Store或Google Play发布应用。 总的来说,React Native为...

    reactive-native-leonardo-moura:在Android上使用React Native进行开发的基本方法,请在Android和iOS上使用JavaScript!

    4. **热更新**: 通过Code Push等服务实现应用的热更新,减少用户手动升级的困扰。 在"reactive-native-leonardo-moura-master"这个项目中,你可以找到一个实际的React Native应用示例,通过研究其代码结构和实现,...

    react-native-api-practice

    11. **热更新**:`CodePush`是一个流行的热更新服务,可以让开发者在不发布新版本的情况下更新应用的JavaScript代码。 12. **第三方库**:React Native社区提供了大量的第三方库,如`react-navigation`用于导航,`...

Global site tag (gtag.js) - Google Analytics