# UniApp 打包部署说明 - 内网环境 ## 项目说明 ✅ **您的项目已配置为内网部署模式** - 服务器地址:`192.168.0.106:30091` - 使用场景:局域网内使用 - 要求:设备必须连接到与服务器相同的WiFi网络 ## ⚠️ 重要提示 打包后的App **只能在内网环境使用**: - ✅ 设备连接到服务器所在的WiFi网络 → 正常使用 - ❌ 设备连接到其他网络 → 无法访问服务器 ## 打包步骤 ### 1. 确认配置 已自动配置为内网IP,无需修改: ```env # .env.production VITE_SERVER_HOST=192.168.0.106 VITE_SERVER_PORT=30091 ``` ### 2. 使用HBuilderX打包 **打包步骤:** 1. 在HBuilderX中:发行 → 原生App-云打包 2. 选择正式证书 3. 等待打包完成 4. 下载安装包 ### 3. 测试部署 **测试前准备:** 1. ✅ 确保后端服务器(192.168.0.106:30091)正常运行 2. ✅ 测试设备连接到与服务器相同的WiFi 3. ✅ 在浏览器中测试服务器可访问性:`http://192.168.0.106:30091` **测试步骤:** 1. 安装打包好的App 2. 启动App,测试登录功能 3. 检查首页加载速度 4. 测试课程视频播放 5. 验证图标显示是否正常 ## 优化说明 已为您优化了以下配置: ### 1. 打包优化(vite.config.js) - ✅ 自动移除生产环境的console日志 - ✅ 优化代码分块,减小包体积 - ✅ 提升首屏加载速度 ### 2. 环境隔离 - 开发环境(`.env.development`):使用局域网IP,方便调试 - 生产环境(`.env.production`):使用公网地址,正式部署 ### 3. 请求优化(已有) - ✅ 自动重试机制 - ✅ 请求超时处理 - ✅ Token自动刷新 ## 常见问题 ### Q1: 我没有公网IP或域名怎么办? **方案A:** 使用内网穿透工具(临时方案) - 使用花生壳、ngrok等工具获取临时域名 - 将临时域名配置到 `.env.production` **方案B:** 让用户自己配置服务器地址(适合内部使用) - App内添加设置页面 - 用户可以输入自己的服务器地址 - 代码中已支持,使用:`uni.setStorageSync('server_host', 'xxx')` ### Q2: 打包后图标还是加载不出来? 检查以下几点: 1. 确认后端服务器可以从外网访问 2. 检查图标资源是否正确上传到服务器 3. 查看浏览器控制台的网络请求,确认请求地址是否正确 4. 确认服务器防火墙已开放相应端口 ### Q3: 如何测试正式包? 1. 打正式包前,先在开发环境测试: ```javascript // 临时修改测试 uni.setStorageSync('server_host', 'your-domain.com') ``` 2. 重启App,查看是否能正常访问 3. 确认无误后再打正式包 ## 部署检查清单 打包前请确认: - [ ] `.env.production` 中的服务器地址已修改为公网地址 - [ ] 后端服务器可以从公网访问 - [ ] 防火墙已开放相应端口(30091) - [ ] 已在测试环境验证配置正确 ## 技术支持 如有问题,请检查: 1. 后端服务是否正常运行 2. 网络是否可以访问服务器 3. 查看控制台错误日志