ReactNative使用Pushy热更新

安装和配置

安装

# 先全局安装命令行工具,每台电脑只用装一次
npm i -g react-native-update-cli
 
# 然后在项目目录中安装热更新模块
npm i react-native-update

# 然后进入ios目录安装iOS模块
cd ios && pod install
 

配置Bundle URL

iOS

AppDelegate.mmAppDelegate.m增加如下代码

// ... 其它代码
#import "AppDelegate.h"
 
#import "RCTPushy.h"  // <-- import头文件,注意要放到if条件外面
 
// 可能项目里有一些条件编译语句,例如有些版本RN自带的flipper
// #if DEBUG
// 注意**不要**在这里面引入"RCTPushy.h"
// #import <FlipperKit/FlipperClient.h>
// ...
// #endif
 
 
// 修改sourceURLForBridge方法
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  // 原先DEBUG这里的写法不作修改(所以DEBUG模式下不可热更新)
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
  return [RCTPushy bundleURL];  // <--  把这里非DEBUG的情况替换为热更新bundle
#endif
} 
Android

MainApplication中增加如下代码

// ... 其它代码
 
// ↓↓↓请注意不要少了这句import
import cn.reactnative.modules.update.UpdateContext;
// ↑↑↑
 
class MainApplication : Application(), ReactApplication {
 
  override val reactNativeHost: ReactNativeHost =
      object : DefaultReactNativeHost(this) {
 
        // ↓↓↓将下面这一段添加到 DefaultReactNativeHost 内部!
        override fun getJSBundleFile(): String? {
          return UpdateContext.getBundleUrl(this@MainApplication)
        }
        // ↑↑↑
 
        // ...其他代码
      }
}

禁用 android 的 crunch 优化

android 会在生成 apk 时自动对 png 图片进行压缩,此操作既耗时又影响增量补丁的生成。为了保证补丁能正常生成,您需要在android/app/build.gradle中关闭此操作:

...
android {
    ...
    signingConfigs { ... }
    buildTypes {
        release {
            ...
            // 添加下面这行以禁用crunch
            crunchPngs false
        }
    }
}
...

登录和创建应用

注册帐号后,在项目根目录下运行命令

$ pushy login
email: <输入你的注册邮箱>
password: <输入你的密码>

发布原生基准版本

iOS
$ pushy uploadIpa <ipa后缀文件>
Android
$ pushy uploadApk android/app/build/outputs/apk/release/app-release.apk

发布热更新版本

尝试修改一行代码(文本将版本1修改为版本2),然后pushy bundle --platform <ios|android>命令来省城新的热更新版本

$ pushy bundle --platform android
Bundling with React Native version:  0.22.2
<各种进度输出>
Bundled saved to: build/output/android.1459850548545.ppk
Would you like to publish it?(Y/N)

参考链接

Pushy发布流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值