RN 热更新之Xcode配置

RN 热更新之Xcode配置

在codepush有staging环境 但是在普通开发中没有这个环节,所以就把staging当做debug就好了

  1. 添加App

    code-push app add <appName> ios react-native
    
  2. 设置App类型

    code-push deployment add <appName> <deploymentName>
    eg:code-push deployment add lw-ios ios
    
  3. 查看相关的key

    code-push deployment ls <appName> -k
    
  4. JS配置

import CodePush from "react-native-code-push"; // 引入code-push
let codePushOptions = {
  //设置检查更新的频率
  //ON_APP_RESUME APP恢复到前台的时候
  //ON_APP_START APP开启的时候
  //MANUAL 手动检查
  checkFrequency : CodePush.CheckFrequency.ON_APP_RESUME
};

class App ... {
  ...
   componentDidMount() {
      //检查更新
      CodePush.sync(
          { updateDialog: false, installMode: CodePush.InstallMode.IMMEDIATE },//无对话框,立即启动更新
          //自定义对话框也可以
      );
  }
}
App = CodePush(codePushOptions)(App)
export default App
  1. 发布

    code-push release-react lw-ios ios  --t 1.0.0 --dev false --des "第6次提交" --m true #debug
    code-push release-react lw-ios ios  --t 1.0.0 --dev false --d Production --des "第1次提交" --m true  #realase
    
    --t 表示版本
    
  1. Xcode配置

    1. info.plist

        <key>CodePushDeploymentKey</key>
        <string>$(CODEPUSH_KEY)</string>
      
    2. Build Setting

        User-Defined
        //:configuration = Debug
         CODEPUSH_KEY = Kpzc77zDzUj2gsqI0JCX8wv7wknYxfqdoWNad
      
         //:configuration = Release
         CODEPUSH_KEY = Kpzc77zDzUj2gsqI0JCX8wv7wknYxfqdoWNad
      
  2. OC

    - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
    //#if DEBUG
    //    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
    //  #else
    //  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
    //#endif
      return [CodePush bundleURL];
    }
    
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。