集成 App Center

集成 App Center SDK

1pnpm add appcenter appcenter-analytics appcenter-crashes
提示

该文章仅支持 React Native 0.60 以上版本集成 App Center。

集成步骤详看:为 React Native 0.60 自动集成 SDK

登录至 App Center

1appcenter login

查询应用分发的密钥

1appcenter codepush deployment list --app <所有者名称>/<应用名称> -k

设置当前应用

1appcenter apps set-current <所有者名称>/<应用名称>

发布到 Staging 部署

1appcenter codepush release-react -a <所有者名称>/<应用名称> -d <环境名称>

如果设置了当前应用,可以省略 -a 参数。

iOS 指定发布构建的目录

npm package 名称和 ios 应用目录名称不一致,执行发布命令会出错,默认寻找的是 ios/<npm package name> 目录。n-

1appcenter codepush release-react -d Staging --plist-file ios/<React Native iOS 应用名称>/Info.plist --xcode-project-file ios/<React Native iOS 应用名称>.xcodeproj/project.pbxproj

如果遇到如下错误:

1Detecting ios app version:
2
3Using the target binary version value "1.0" from "ios/ReactNativeDemoApp.xcodeproj/project.pbxproj".
4
5Running "react-native bundle" command:
6
7node node_modules/.bin/react-native bundle --assets-dest /var/folders/wx/pwxj2jls6ys7svj4wyrctf240000gn/T/code-push2023101-3009-19dr21e.96h7/CodePush --bundle-output /var/folders/wx/pwxj2jls6ys7svj4wyrctf240000gn/T/code-push2023101-3009-19dr21e.96h7/CodePush/main.jsbundle --dev false --entry-file index.js --platform ios
8/Users/bruce/Code/soya-energy-app/node_modules/.bin/react-native:2
9basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
10          ^^^^^^^
11
12SyntaxError: missing ) after argument list
13    at internalCompileFunction (node:internal/vm:73:18)
14    at wrapSafe (node:internal/modules/cjs/loader:1153:20)
15    at Module._compile (node:internal/modules/cjs/loader:1205:27)
16    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
17    at Module.load (node:internal/modules/cjs/loader:1091:32)
18    at Module._load (node:internal/modules/cjs/loader:938:12)
19    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
20    at node:internal/main/run_main_module:23:47

需要回滚 app-center 的版本至 2.3.3,此处查看 GitHub 相关 Issue

警告

目前仍未解决该问题。