返回
自己动手部署 Code Push 私有 Server
IOS
2024-01-28 19:59:58
前言
一直用着 Microsoft 的 AppCenter.ms 服务都不错,功能强大,但是最近总是抽风,没办法,只能自己部署私有 Code Push Server 了。
直接搜索 Code Push Server,一般得到的结果都是 https://github.com/lison… 这个代码。但是这个代码很老了,而且只能用在 Node.js。还有一些代码,但是要么就是不知道该怎么用,要么就是看着也觉得不靠谱。
直到我看到微软有一个开源项目 https://github.com/micros…,才觉得自己找到答案了。这是一个用 Go 实现的 AppCenter.ms 私有版,感觉挺好的。
正文
安装与启动
- clone 项目
git clone https://github.com/microsoft/electrode-ota-server.git
- 安装依赖
cd electrode-ota-server
go mod tidy
- 安装 protobuf 编译器
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.28
- 运行
go run main.go
2022/03/11 11:07:53 listening on :8080
2022/03/11 11:07:53 starting websocket server on :3000
- 测试
curl -X POST -d '{"appId": "my-app", "version": "1.0.0"}' -H "Content-Type: application/json" http://localhost:8080/v1/apps/deploy
{"deployId":"515a782a-8b23-405e-b706-00c0131f8746"}
接入 React Native
- 安装依赖
npm install @code-push/cli
- 初始化
npx code-push init
- 配置
// code-push.json
{
"deploymentKey": "your-deployment-key",
"serviceHost": "http://localhost:8080",
"updateMethod": "ON_NEXT_RESUME"
}
- 打包
npx code-push release-react <appName> ios --deploymentName development
- 发布
npx code-push release-react <appName> android --deploymentName development
接入 Angular Cordova
- 安装依赖
npm install @code-push/cli
- 初始化
npx code-push init
- 配置
// code-push.json
{
"deploymentKey": "your-deployment-key",
"serviceHost": "http://localhost:8080",
"updateMethod": "ON_NEXT_RESUME"
}
- 打包
npx code-push package-cordova <appName> android --package-path <appFolder>
npx code-push package-cordova <appName> ios --package-path <appFolder>
- 发布
npx code-push release-cordova <appName> android --deploymentName development
npx code-push release-cordova <appName> ios --deploymentName development
总结
以上就是使用 Electrode OTA Server 创建 React Native/Angular Cordova 私有 Code Push 服务的方法。结合 Cloud Functions、Firestore 和 Pub/Sub,可以高效实现 Code Push 的 CI/CD。