# 移动端打包部署指导文档 ## 📋 项目概述 **项目**: 校园管理系统移动端 (mobile/) **技术栈**: Vue 2.6.14 + uni-app 2.x + uview-ui 2.0.38 **打包方式**: Vue CLI 命令行打包(无需HBuilderX) --- ## 🚀 打包命令详解 ### 1. H5网页版打包 ```bash cd mobile/ npm run build:h5 ``` **输出目录**: `mobile/dist/build/h5/` **部署方式**: 直接部署到Web服务器(如Nginx) ### 2. 微信小程序打包 ```bash cd mobile/ npm run build:mp-weixin ``` **输出目录**: `mobile/dist/build/mp-weixin/` **后续操作**: 用微信开发者工具导入该目录 ### 3. App打包 ```bash cd mobile/ npm run build:app-plus ``` **输出目录**: `mobile/dist/build/app-plus/` **后续操作**: - 使用HBuilderX云打包服务 - 或配置本地Android/iOS打包环境 ### 4. 其他小程序平台 ```bash # 支付宝小程序 npm run build:mp-alipay # 百度小程序 npm run build:mp-baidu # 字节跳动小程序 npm run build:mp-toutiao # QQ小程序 npm run build:mp-qq ``` --- ## 🔧 生产环境配置调整 ### ⚠️ 必须修改的配置项 **文件**: `mobile/src/common/config.js` #### 1. 服务器地址配置 ```javascript // 后端API服务器地址 serverUrl: 'https://hzdyjsapi.camasort.com' // API基础路径 baseURL: 'https://hzdyjsapi.camasort.com' // 前端域名(用于referer) referer: 'https://hzdyjs.camasort.com/login?redirect=/index' ``` #### 2. 环境判断逻辑 - **开发环境**: 使用`/api`代理转发到`http://localhost:8080` - **生产环境**: 直接访问`https://hzdyjsapi.camasort.com` ### 🔐 加密配置 - RSA密钥对已配置,与后端保持一致 - 客户端ID: `e5cd7e4891bf95d1d19206ce24a7b32e` - 租户ID: `000000` --- ## 📦 不同平台部署方案 ### 1. H5网页版部署 ```bash # 1. 打包 npm run build:h5 # 2. 部署到服务器 scp -r dist/build/h5/* user@server:/var/www/mobile/ # 3. Nginx配置示例 location /mobile { alias /var/www/mobile; index index.html; try_files $uri $uri/ /mobile/index.html; } ``` ### 2. 微信小程序发布 ```bash # 1. 打包 npm run build:mp-weixin # 2. 用微信开发者工具打开 # 目录: mobile/dist/build/mp-weixin/ # 3. 在微信开发者工具中: # - 预览测试 # - 上传代码 # - 提交审核 # - 发布上线 ``` ### 3. App发布流程 ```bash # 1. 打包 npm run build:app-plus # 2. 使用HBuilderX云打包: # - 打开HBuilderX # - 导入项目: mobile/dist/build/app-plus/ # - 选择发行 -> 原生App-云打包 # - 配置证书和签名 # - 提交打包 # 3. 发布到应用商店: # - Android: 上传到各大应用市场 # - iOS: 上传到App Store Connect ``` --- ## 🔄 CI/CD自动化部署 ### GitHub Actions示例 ```yaml name: Mobile Deploy on: push: branches: [main] paths: ['mobile/**'] jobs: build-h5: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '18' - name: Install dependencies run: | cd mobile npm ci - name: Build H5 run: | cd mobile npm run build:h5 - name: Deploy to server run: | # 部署到服务器的脚本 scp -r mobile/dist/build/h5/* ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }}:/var/www/mobile/ ``` --- ## 📱 多端测试验证 ### 开发环境测试 ```bash # H5开发服务器 npm run dev:h5 # 访问: http://localhost:8081 # 微信小程序开发 npm run dev:mp-weixin # 用微信开发者工具打开: mobile/dist/dev/mp-weixin/ ``` ### 生产环境验证 - **H5版本**: 在浏览器中访问部署地址 - **小程序**: 通过微信扫码体验版二维码 - **App**: 通过TestFlight(iOS)或内测分发(Android) --- ## 🚨 注意事项 ### 1. 域名配置 - **后端API**: `https://hzdyjsapi.camasort.com` - **前端域名**: `https://hzdyjs.camasort.com` - **确保HTTPS证书有效** ### 2. 跨域处理 - 生产环境后端需要配置CORS允许前端域名 - 或者使用Nginx反向代理统一域名 ### 3. 小程序特殊要求 - 微信小程序需要在管理后台配置服务器域名 - 确保API域名在小程序的request合法域名中 ### 4. App打包要求 - Android需要签名证书 - iOS需要开发者证书和Provisioning Profile - 确保manifest.json中的appid已配置 --- ## 📞 问题排查 ### 常见问题 1. **API请求失败**: 检查生产环境域名配置 2. **加密登录失败**: 验证RSA密钥对是否正确 3. **小程序白屏**: 检查域名是否已添加到合法域名列表 4. **App打包失败**: 检查证书配置和权限设置 ### 调试方法 ```javascript // 在config.js中添加调试日志 console.log('当前环境:', process.env.NODE_ENV); console.log('API地址:', REQUEST_CONFIG.baseURL); console.log('服务器地址:', REQUEST_CONFIG.serverUrl); ``` --- **📝 文档维护**: 2025-01-03 创建 **🔄 更新周期**: 每次部署流程变更时更新 **👥 适用人员**: 开发人员、运维人员