5.0 KiB
5.0 KiB
各平台客户端构建并放入下载目录
下载页提供的文件名由服务端配置 CLIENT_VERSION 决定(默认 0.1.0),格式为:
FunMC-<版本>-windows-x64.exeFunMC-<版本>-macos-arm64.dmg/FunMC-<版本>-macos-x64.dmgFunMC-<版本>-linux-x64.AppImageFunMC-<版本>-android.apk
构建产物需复制到服务器的下载目录并按上述文件名命名,下载页才会显示「下载」按钮。
服务器下载目录:/opt/funmc/downloads(或环境变量 DOWNLOADS_DIR)。
1. 版本号一致
构建前请确认与服务器一致:
- 查看服务器:
grep CLIENT_VERSION /etc/funmc/server.env(例如0.1.0) - 下文中的
VERSION请替换为该版本号。
2. Linux(可在服务器本机执行)
在服务器或任意 Linux 机器上:
cd /opt/funmc/src/client # 或你的项目 client 目录
npm install --registry https://registry.npmjs.org/
npm run dist:linux
产物在 client/release/ 下,例如:
FunConnect-1.1.0-Linux-x64.AppImage
复制并重命名为下载页期望的文件名后放入下载目录:
VERSION=0.1.0 # 与 CLIENT_VERSION 一致
cp release/FunConnect-*-Linux-x64.AppImage /opt/funmc/downloads/FunMC-${VERSION}-linux-x64.AppImage
3. Windows
在 Windows 本机:
cd client
npm install
npm run dist:win
产物在 client\release\,例如:
FunConnect-1.1.0-Win-x64.exe(或带 nsis 的安装包)
上传到服务器后重命名并放入下载目录(在服务器上执行,或本机重命名后上传):
# 在服务器上(假设已上传为 FunConnect-1.1.0-Win-x64.exe)
VERSION=0.1.0
mv /path/to/FunConnect-1.1.0-Win-x64.exe /opt/funmc/downloads/FunMC-${VERSION}-windows-x64.exe
或用 SCP 从本机直接放到服务器并命名(PowerShell 示例):
scp client\release\FunConnect-1.1.0-Win-x64.exe root@你的服务器IP:/opt/funmc/downloads/FunMC-0.1.0-windows-x64.exe
4. macOS
在 Mac 本机:
cd client
npm install
npm run dist:mac
产物在 client/release/,例如:
- Apple Silicon:
FunConnect-1.1.0-Mac-arm64.dmg - Intel:
FunConnect-1.1.0-Mac-x64.dmg
上传到服务器并重命名(在服务器上):
VERSION=0.1.0
mv /path/to/FunConnect-1.1.0-Mac-arm64.dmg /opt/funmc/downloads/FunMC-${VERSION}-macos-arm64.dmg
mv /path/to/FunConnect-1.1.0-Mac-x64.dmg /opt/funmc/downloads/FunMC-${VERSION}-macos-x64.dmg
5. Android(mobile/,Expo + React Native)
Android 客户端在 mobile/ 目录,使用 Expo 构建。任选其一即可。
前置要求
- Node.js 18+
- 方式一(EAS 云端):Expo 账号(expo.dev 注册)
- 方式二(本地):Android Studio + Android SDK,并配置好
ANDROID_HOME
方式一:EAS Build(推荐,无需本机 Android 环境)
在项目根或 mobile/ 下执行:
cd mobile
npm install
# 安装 EAS CLI 并登录
npm install -g eas-cli
eas login
# 构建 APK(预览/内部分发,直接得到 .apk)
eas build --platform android --profile preview
构建完成后在 Expo 网页或邮件中下载 APK,上传到服务器后重命名并放入下载目录:
VERSION=0.1.0
cp /path/to/下载的.apk /opt/funmc/downloads/FunMC-${VERSION}-android.apk
方式二:本地构建(需 Android Studio + SDK)
cd mobile
npm install
# 生成原生 android/ 目录
npx expo prebuild
# 构建 Release APK
cd android && ./gradlew assembleRelease
APK 输出路径:
mobile/android/app/build/outputs/apk/release/app-release.apk
复制到服务器下载目录并重命名:
VERSION=0.1.0
cp mobile/android/app/build/outputs/apk/release/app-release.apk /opt/funmc/downloads/FunMC-${VERSION}-android.apk
# 若在服务器上,可先 scp 上传再执行 cp/mv
6. 一键复制脚本示例(在服务器上使用)
在服务器上,若已把各平台构建产物上传到某目录(或本机刚构建好 Linux 版),可统一复制并重命名:
# 请先确认版本号与 /etc/funmc/server.env 中 CLIENT_VERSION 一致
VERSION=0.1.0
DOWNLOADS=/opt/funmc/downloads
# Linux(本机刚构建时)
cp -v /opt/funmc/src/client/release/FunConnect-*-Linux-x64.AppImage "$DOWNLOADS/FunMC-${VERSION}-linux-x64.AppImage" 2>/dev/null || true
# 若 Windows/macOS 已上传到 /opt/funmc/uploads/ 等目录,可类似:
# cp -v /opt/funmc/uploads/FunConnect-*-Win-x64.exe "$DOWNLOADS/FunMC-${VERSION}-windows-x64.exe" 2>/dev/null || true
# cp -v /opt/funmc/uploads/FunConnect-*-Mac-arm64.dmg "$DOWNLOADS/FunMC-${VERSION}-macos-arm64.dmg" 2>/dev/null || true
# cp -v /opt/funmc/uploads/FunConnect-*-Mac-x64.dmg "$DOWNLOADS/FunMC-${VERSION}-macos-x64.dmg" 2>/dev/null || true
7. 验证
- 在服务器上:
ls -la /opt/funmc/downloads - 浏览器打开:
http://你的服务器:3000/download,有文件的平台会显示「下载」按钮,没有的显示「暂无」。