Files
FunConnect/mobile
FunMC 7fdc570391 feat: 全平台打包 + CI/CD 自动构建工作流
- 修复移动端: axios替换为原生fetch (React Native兼容)
- 新增 .gitea/workflows/build.yml CI/CD工作流:
  - Windows: NSIS安装包 (windows-latest)
  - macOS: DMG x64+arm64 (macos-latest)
  - Linux: AppImage+deb (ubuntu-latest)
  - Android: APK via expo prebuild + gradle (ubuntu-latest)
  - iOS: simulator build (macos-latest)
  - 移动端JS Bundle导出 (android+ios)
  - 自动创建Release (tag触发)

本地已构建产物:
- client/release/FunConnect-1.1.0-Win-x64.exe (73MB)
- client/release/FunConnect-1.1.0-Linux-x64.zip (99MB)
- mobile JS bundles (android + ios) 已验证导出成功
2026-02-23 08:16:28 +08:00
..

FunConnect Mobile

Minecraft 联机移动客户端,基于 React Native + Expo 构建,支持 iOSAndroid

功能

  • 连接服务器 - 输入中继服务器地址连接
  • 浏览房间 - 实时查看在线联机房间(自动刷新)
  • 搜索筛选 - 按名称、房间号、房主搜索,按版本类型筛选
  • 创建房间 - 创建联机房间并分享房间号
  • 加入房间 - 输入房间号加入,支持密码验证
  • 设置持久化 - 记住服务器地址、玩家名
  • 深色主题 - Minecraft 风格暗色 UI

快速开始

前置要求

  • Node.js 18+
  • Expo CLI: npm install -g expo-cli
  • iOS: Xcode 15+(仅 macOS
  • Android: Android Studio + SDK

安装依赖

cd mobile
npm install

开发模式

# 启动 Expo 开发服务器
npm start

# 在 iOS 模拟器中运行
npm run ios

# 在 Android 模拟器中运行
npm run android

也可以用 Expo Go 手机 App 扫描二维码直接在真机上运行。

编译发布

方式一EAS Build推荐云端构建

# 安装 EAS CLI
npm install -g eas-cli

# 登录 Expo 账号
eas login

# 构建 Android APK预览版
eas build --platform android --profile preview

# 构建 Android AAB生产版用于上架 Google Play
eas build --platform android --profile production

# 构建 iOS需要 Apple Developer 账号)
eas build --platform ios --profile production

# 同时构建两个平台
eas build --platform all --profile production

方式二:本地构建

# 生成原生项目
npx expo prebuild

# Android
cd android && ./gradlew assembleRelease
# 输出: android/app/build/outputs/apk/release/app-release.apk

# iOS需要 macOS + Xcode
cd ios && xcodebuild -workspace FunConnect.xcworkspace -scheme FunConnect archive

项目结构

mobile/
├── App.tsx               # 入口 + Tab 导航
├── index.js              # 注册根组件
├── src/
│   ├── screens/
│   │   ├── ConnectScreen.tsx   # 连接服务器
│   │   ├── RoomsScreen.tsx     # 房间列表
│   │   ├── CreateScreen.tsx    # 创建房间
│   │   ├── JoinScreen.tsx      # 加入房间
│   │   └── SettingsScreen.tsx  # 设置
│   ├── lib/
│   │   ├── api.ts              # API 客户端 + 存储
│   │   └── theme.ts            # 主题色彩
│   └── components/             # 共享组件
├── app.json              # Expo 配置
├── eas.json              # EAS Build 配置
├── package.json
└── tsconfig.json

联机流程

房主

  1. 在「连接」页连接中继服务器
  2. 在「创建」页创建房间,复制房间号
  3. 将房间号分享给好友
  4. 启动本地 Minecraft 服务器

玩家

  1. 在「连接」页连接同一个中继服务器
  2. 在「加入」页输入房间号
  3. 验证通过后获取服务器地址
  4. 在 Minecraft 中添加该服务器地址
  5. 开始联机!

技术栈

  • React Native 0.73 + Expo 50
  • TypeScript
  • React Navigation - Tab 导航
  • AsyncStorage - 本地持久化
  • Axios - HTTP 请求
  • EAS Build - 云端编译发布