RN 热更新之Xcode配置
在codepush有staging环境 但是在普通开发中没有这个环节,所以就把staging当做debug就好了
-
添加App
code-push app add <appName> ios react-native
-
设置App类型
code-push deployment add <appName> <deploymentName> eg:code-push deployment add lw-ios ios
-
查看相关的key
code-push deployment ls <appName> -k
-
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
-
发布
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 表示版本
-
Xcode配置
-
info.plist
<key>CodePushDeploymentKey</key> <string>$(CODEPUSH_KEY)</string>
-
Build Setting
User-Defined //:configuration = Debug CODEPUSH_KEY = Kpzc77zDzUj2gsqI0JCX8wv7wknYxfqdoWNad //:configuration = Release CODEPUSH_KEY = Kpzc77zDzUj2gsqI0JCX8wv7wknYxfqdoWNad
-
-
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]; }
网友评论