omnAPP/CONFIGURATION_GUIDE.md
Rust 866938abab
Some checks failed
Build Windows / build (push) Has been cancelled
新增文档
2025-09-23 16:33:58 +08:00

8.3 KiB

BearVPN 配置修改指南

🎯 快速开始

在开始开发之前,您需要修改以下关键配置文件以适配您的项目。

📋 必须修改的配置

1. 🏷️ 应用基本信息

pubspec.yaml - 项目基础配置

# 位置: /pubspec.yaml
name: bearvpn                    # 修改为您的应用名称
description: A VPN application   # 修改为您的应用描述
version: 1.0.0+1                # 修改版本号

应用显示名称

  • iOS: /ios/Runner/Info.plistCFBundleDisplayName
  • macOS: /macos/Runner/Configs/AppInfo.xcconfigPRODUCT_NAME
  • Android: /android/app/src/main/res/values/strings.xmlapp_name
  • Web: /web/index.html<title> 标签

2. 🆔 包标识符 (Bundle ID)

iOS 配置

# 文件: /ios/Base.xcconfig
BASE_BUNDLE_IDENTIFIER=com.yourcompany.yourapp

# 文件: /ios/Runner/Info.plist
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

macOS 配置

# 文件: /macos/Runner/Configs/AppInfo.xcconfig
PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.yourapp

Android 配置

// 文件: /android/app/build.gradle
android {
    defaultConfig {
        applicationId "com.yourcompany.yourapp"
    }
}

3. 🔐 签名和证书配置

iOS 签名配置

# 文件: ios_signing_config.sh
export APPLE_ID="your-apple-id@example.com"        # 您的 Apple ID
export APPLE_PASSWORD="your-app-specific-password" # App 专用密码
export TEAM_ID="YOUR_TEAM_ID"                      # 您的团队 ID
export BUNDLE_ID="com.yourcompany.yourapp"         # 包标识符
export SIGNING_IDENTITY="Mac Developer: Your Name (YOUR_TEAM_ID)"
export DISTRIBUTION_IDENTITY="Developer ID Application: Your Name (YOUR_TEAM_ID)"

macOS 签名配置

# 文件: macos_signing_config.sh
export APPLE_ID="your-apple-id@example.com"        # 您的 Apple ID
export APPLE_PASSWORD="your-app-specific-password" # App 专用密码
export TEAM_ID="YOUR_TEAM_ID"                      # 您的团队 ID
export SIGNING_IDENTITY="Developer ID Application: Your Company Name (YOUR_TEAM_ID)"

4. 🎨 应用图标和资源

应用图标位置

assets/images/logo.svg                    # 主 Logo
ios/Runner/Assets.xcassets/AppIcon.appiconset/    # iOS 图标
macos/Runner/Assets.xcassets/AppIcon.appiconset/  # macOS 图标
android/app/src/main/res/mipmap-*/        # Android 图标
web/icons/                                # Web 图标

图标尺寸要求

  • iOS: 20x20, 29x29, 40x40, 58x58, 60x60, 76x76, 80x80, 87x87, 120x120, 152x152, 167x167, 180x180, 1024x1024
  • Android: 48x48, 72x72, 96x96, 144x144, 192x192, 512x512
  • macOS: 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024

5. 🌍 多语言配置

添加新语言

  1. assets/translations/ 目录下创建新的 JSON 文件
  2. 文件命名格式: strings_[语言代码].i18n.json
  3. lib/app/utils/ 中添加语言支持

修改现有翻译

// 文件: assets/translations/strings_zh.i18n.json
{
  "appName": "您的应用名称",
  "welcome": "欢迎使用",
  // ... 其他翻译
}

6. 🔧 构建配置

Android 构建配置

// 文件: /android/app/build.gradle
android {
    compileSdk 34                     // 编译 SDK 版本
    defaultConfig {
        applicationId "com.yourcompany.yourapp"
        minSdkVersion 21              // 最低支持版本
        targetSdkVersion 34           // 目标版本
        versionCode 1                 // 版本代码
        versionName "1.0.0"           // 版本名称
    }
}

iOS 构建配置

# 文件: /ios/Runner/Info.plist
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>               # 版本号
<key>CFBundleVersion</key>
<string>1</string>                   # 构建号

7. 🌐 网络配置

域名配置 重要

// 文件: lib/app/common/app_config.dart
class KRDomain {
  // 主域名列表 - 修改这里来更改API服务器域名
  static List<String> kr_baseDomains = [
    "apicn.bearvpn.top",      // 主域名1
    "apibear.nsdsox.com"      // 主域名2
  ];
  
  // 当前使用的域名
  static String kr_currentDomain = "apicn.bearvpn.top";
  
  // 备用域名获取地址列表
  static List<String> kr_backupDomainUrls = [
    "https://bear-1347601445.cos.ap-guangzhou.myqcloud.com/bear.txt",
    "https://getbr.oss-cn-shanghai.aliyuncs.com/bear.txt",
    "https://gitee.com/karelink/getbr/raw/master/README.en.md",
    "https://configfortrans.oss-cn-guangzhou.aliyuncs.com/bear/bear.txt",
  ];
  
  // 本地备用域名列表(当服务器获取的域名都不可用时使用)
  static List<String> kr_localBackupDomains = [
    "api.omntech.com",
    "api6.omntech.com", 
    "api7.omntech.com",
    "apicn.bearvpn.top",
    "apibear.nsdsox.com",
  ];
}

API 端点配置

// 文件: lib/app/services/api_service/api.dart
// API 路径定义,通常不需要修改
abstract class Api {
  static const String kr_isRegister = "/v1/app/auth/check";
  static const String kr_register = "/v1/app/auth/register";
  static const String kr_login = "/v1/app/auth/login";
  // ... 其他API路径
}

VPN 服务器配置

// 文件: lib/app/services/singbox_imp/kr_sing_box_imp.dart
// 修改服务器配置和连接参数

🚀 部署配置

1. iOS App Store 部署

# 1. 配置签名
source ios_signing_config.sh

# 2. 构建 App Store 版本
./build_ios_appstore.sh

# 3. 上传到 App Store Connect
xcrun altool --upload-app -f BearVPN.ipa -u $APPLE_ID -p $APPLE_PASSWORD

2. macOS 公证和分发

# 1. 配置签名
source macos_signing_config.sh

# 2. 构建和签名
./sign_and_package.sh

# 3. 公证
./notarize_only.sh

# 4. 装订票据
xcrun stapler staple BearVPN-1.0.0-macOS-Signed.dmg

3. Android 发布

# 1. 生成签名密钥
keytool -genkey -v -keystore android/app/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

# 2. 配置签名
# 编辑 android/key.properties
storePassword=your_store_password
keyPassword=your_key_password
keyAlias=upload
storeFile=upload-keystore.jks

# 3. 构建发布版本
flutter build apk --release

🔍 调试配置

1. 日志配置

// 文件: lib/app/utils/kr_log_util.dart
class KRLogUtil {
  static const bool DEBUG = true;  // 生产环境设为 false
  // ... 日志配置
}

2. 网络调试

# 使用调试脚本
./debug_connection.sh
./test_connection.sh

📱 平台特定配置

iOS 权限配置

<!-- 文件: /ios/Runner/Info.plist -->
<key>NSCameraUsageDescription</key>
<string>需要相机权限以支持拍照功能</string>
<key>NSMicrophoneUsageDescription</key>
<string>需要麦克风权限以支持语音消息功能</string>

Android 权限配置

<!-- 文件: /android/app/src/main/AndroidManifest.xml -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

macOS 权限配置

<!-- 文件: /macos/Runner/DebugProfile.entitlements -->
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>

⚠️ 重要注意事项

  1. 敏感信息: 所有敏感信息已替换为占位符,使用前必须修改
  2. 证书管理: 确保所有签名证书有效且未过期
  3. 版本同步: 更新版本时同步修改所有平台的版本号
  4. 测试: 在发布前在所有目标平台进行充分测试
  5. 备份: 修改配置前建议备份原始文件

🆘 常见问题

Q: 如何获取 Apple Developer 证书?

A: 登录 Apple Developer Portal,在 Certificates 部分创建新的证书。

Q: 如何获取 App 专用密码?

A: 登录 Apple ID 管理页面,在 App-Specific Passwords 部分生成。

Q: 如何修改应用图标?

A: 替换对应平台的图标文件,确保尺寸符合要求。

Q: 如何添加新的语言支持?

A: 在 assets/translations/ 目录下添加新的 JSON 文件,并在代码中添加语言支持。


配置完成后,请运行 flutter clean && flutter pub get 重新构建项目。