Staging:测试环境
Production:线上环境
code-push deployment history meeting_room_ios Staging //查询开发环境下的发布更新包历史
code-push deployment history meeting_room_ios Production //查询线上环境下的发布更新包历史
code-push release-react <应用名称> <平台> <对应的应用版本> --deploymentName: 更新环境 --description: 更新描述 --mandatory: 是否强制更新
//cd到package.json文件,上传测试环境下更新包
code-push release-react meeting_room_ios ios --t 4.0.0 --dev false --d Staging --des "这是第3个更新包" --m false
//cd到package.json文件,上传线上app的补丁包
code-push release-react meeting_room_ios ios --t 4.0.0 --dev false --d Production --des "这是第3个更新包" --m false
注意:现在打出的bundle后,添加到项目中不是添加bundle文件夹,而是将文件夹内的文件直接以refrense方式添加到项目中,不然Codepush找不到文件
app版本号必须为3位数,如:3.0.0
Code-push Xcode配置
1.package.json 文件中添加 "react-native-code-push": "^5.6.0”,执行 npm install
2.podfile文件中添加pod 'CodePush', :path => '../node_modules/react-native-code-push’(路径根据实际情况修改),执行pod install
3.AppDelegate.m中需改加载路径,release环境修改为[CodePush bundleURL];注意:现在打出的bundle后,添加到项目中不是添加bundle文件夹,而是将文件夹内的文件直接以refrense方式添加到项目中,不然Codepush找不到文件
4.点击项目名-PROJECT-Info,在Configurations 中添加+,选择Duplicate "Release" Configuration,取名Staging
5.选择PROJECT-Build Settings,Build Location > Per-configuration Build Products Path > Staging,修改Staging的值(CONFIGURATION)(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)
6.选择【TARGETS】-Build-Seeting-Add User-Defined Setting,添加一个key为CODEPUSH_KEY,里面的值填写Release对应的和Staging对应的的值,在平台:XXXX
上有该应用的Production和Staging的key值,Production对应的是线上环境app的key,Staging是测试使用的key值,
7.打开Info.plist文件,添加一个key为:CodePushDeploymentKey,值为:$(CODEPUSH_KEY),
添加一个key为:CodePushServerURL,值为:[http://xxx.xxx.xx.xxx:xxxx]
8:使用cocoapod安装的需要修改【TARGET】-Build-Seeting-[PODS_CONFIGURATION_BUILD_DIR]-Staging的值为:(EFFECTIVE_PLATFORM_NAME)
9.测试打包时,需要使用测试热更新环境时,先将项目clear一下,在改为release环境编译,编译成功后改为Staging,【直接使用Staging编译可能会报错】【注:热更新的测试环境需要在【edit-scheme】-[Run]-Build Configuration-[Staging],打线上环境需要将此处改为Release,如果报错:libraries not found for "staging”见:【https://github.com/Microsoft/react-native-code-push/issues/426】