Skip to content

应用部署说明篇

应用部署的前提是什么?

是构建成功后的产物。

应用语言与构建工具

平台/类型开发语言主要构建工具构建产物示例典型命令
Android 原生Kotlin/JavaGradleAPK/AAB./gradlew assembleRelease
iOS 原生Swift/Objective-CXcode + CocoaPods/SwiftPMIPA/XCArchiveXcode → Archive → 导出 IPA
FlutterDartflutter buildAPK/IPA/Web JSflutter build apk --release
React NativeJavaScript/TypeScriptMetro + Gradle/XcodeAPK/IPA (含 JS Bundle)npx react-native run-android --variant=release
Web 前端HTML/CSS/JS/TSWebpack/Vite/Rollupindex.html + bundle.js + *.cssnpm run build
Node.js 后端JavaScript/TypeScriptnpm/yarn + tscdist/*.jstsc && npm run start
Java 后端Java (Spring Boot)Maven/GradleJAR/WARmvn package
Python 后端Pythonsetuptools/pip.whl 或直接运行 .pypython setup.py bdist_wheel
Go 后端Gogo build单文件二进制 (如 server.exe)GOOS=linux GOARCH=amd64 go build -o app
Electron 桌面JavaScript/HTML/CSSelectron-builderEXE (Win)/DMG (Mac)/DEB (Linux)electron-builder --win --x64
Tauri 桌面Rust + Web 前端Cargo + npm轻量级二进制npm run tauri build

应用部署的方式

构建产物类型典型文件格式常见部署方式适用场景
Android APK/AAB.apk/.aab- 上传至 Google Play Store
- 第三方应用市场(如华为应用市场)
- 直接分发(企业内网/FTP)
移动端 Android 应用
iOS IPA.ipa- 上传至 Apple App Store
- TestFlight(测试分发)
- 企业证书签名(内部部署)
移动端 iOS 应用
Web 静态资源index.html + *.js/css- 托管到 CDN(如 Cloudflare/AWS S3)
- Nginx/Apache 服务器部署
- GitHub Pages/Vercel
纯前端网页/SPA
Java JAR/WAR.jar/.war- 服务器运行 java -jar
- 部署到 Tomcat/Jetty 容器
- Docker 容器化
Spring Boot 等 Java 后端
Node.js 应用dist/*.js- PM2 进程管理
- Docker 容器化
- Serverless 平台(如 AWS Lambda)
Node.js 后端/SSR 应用
Python 包.whl/.py- pip install 安装到虚拟环境
- Docker 容器化
- Serverless(如 AWS Lambda)
Django/Flask 等 Python 后端
Go 二进制无扩展名(如 app- 直接运行于服务器
- Docker 容器化
- 嵌入 CI/CD 管道(如 Jenkins)
高性能后端/CLI 工具
Electron 应用EXE/DMG/DEB- 官网下载分发
- 应用商店(如 Mac App Store)
- 自动更新(electron-updater)
跨平台桌面应用
Flutter 应用APK/IPA/Web JS- 同 Android/iOS 部署方式
- Web 版部署到服务器/CDN
跨平台移动端/Web 应用
.NET Web 应用.dll/发布文件夹- IIS 托管(Windows Server)
- Docker 容器化(跨平台)
- Azure App Service 部署
ASP.NET Core MVC/Web API
Docker 镜像.tar/OCI 镜像- 推送至 Docker Hub/私有仓库
- Kubernetes 集群部署
- docker run 本地运行
容器化所有类型应用
Serverless 包依赖平台(如 .zip- 上传至 AWS Lambda/阿里云函数计算
- 配置触发器(HTTP/定时任务)
无服务器架构应用

应用构建产物存放

压缩后存放在OSS(这个是我个人的看法)

无论是主机部署,还是容器部署,都可以从OSS中直接获取构建产物,所以很方便