You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
liwei1dao 27b508bd1f 上传服务代码 6 months ago
.gradle/wrapper/dists/gradle-8.11.1-all/2qik7nd48slq1ooc2496ixf4i fix(android): 进一步彻底移除自启动权限和接收器以符合隐私要求 9 months ago
.vercel 修改版定逻辑,待完善 1 year ago
SpeexKit.xcframework 加入ios通话翻译功能 1 year ago
android 提交端到端翻译逻辑 6 months ago
assets chore: 更新 Firebase 配置以使用新项目 8 months ago
doc docs: 删除旧版协议文件并更新隐私政策语言属性 7 months ago
ios chore(ios): 添加 ITSAppUsesNonExemptEncryption 配置项 9 months ago
lib 上传服务代码 6 months ago
linux 上传paypal支付代码 11 months ago
local_plugins 上传服务代码 6 months ago
macos 上传经典蓝牙列表返回 正在使用状态确认当前设备 1 year ago
shaders add 1 year ago
test feat(i18n): 完善多语言翻译并添加翻译测试 7 months ago
tools feat(i18n): 更新多语言翻译并添加文件头注释 7 months ago
web add 2 years ago
windows 上传paypal支付代码 11 months ago
.gitignore chore: 添加多渠道打包脚本并清理项目文件 7 months ago
.mcp.json add 1 year ago
.metadata 提交端到端翻译逻辑 6 months ago
GoogleService-Info.plist DeapSound--->Voitrans 1 year ago
I18N_PLACEHOLDER_REMEDIATION.md fix(i18n): remove English placeholders in es_ES 7 months ago
README.md 上传支付逻辑代码 11 months ago
analysis_options.yaml add 2 years ago
build_channels.sh chore: 添加多渠道打包脚本并清理项目文件 7 months ago
check_16kb.py feat: 添加检查AAB中so文件16KB对齐的脚本 9 months ago
clean_spm.sh add 1 year ago
devtools_options.yaml add 1 year ago
firebase.json chore: 更新 Firebase 配置以使用新项目 8 months ago
fix_ja_jp.py feat(i18n): 完善多语言翻译并添加翻译测试 7 months ago
flutter_01.log 上传iOS的qq音乐代码 1 year ago
pubspec.yaml 补充底层日志采集接口 7 months ago
test.json add 1 year ago
test2.json add 1 year ago

README.md

Deep Voice

Flutter 应用程序,使用 GetX 状态管理和依赖注入。

项目目录结构

lib/
├─ core/
│  ├─ bindings/          # 全局或通用的 Bindings
│  ├─ constants/         # 常量、枚举、Key、全局配置等
│  ├─ errors/            # 异常/错误处理相关
│  ├─ themes/            # 主题(Color, TextStyle 等)
│  ├─ translations/      # 国际化、语言相关
│  ├─ utils/             # 通用工具类、Helper、扩展函数等
│  └─ widgets/           # 通用的无业务逻辑的Widgets
│
├─ data/
│  ├─ models/            # 数据模型(可与后端DTO对应)
│  ├─ repositories/      # 数据仓库(实际操作数据 CRUD, 远程或本地)
│  ├─ services/          # 第三方或原生平台封装,如网络请求、缓存、数据库等
│  └─ providers/         # 适配器层,比如把网络、数据库等转换为 Repository 可调用的接口
│
├─ modules/
│  ├─ login/
│  │  ├─ controllers/    # GetX Controller
│  │  ├─ views/          # 页面、Widget
│  │  ├─ bindings/       # 该模块的 Bindings
│  │  └─ ...             # 其他文件
│  ├─ home/
│  │  ├─ controllers/
│  │  ├─ views/
│  │  ├─ bindings/
│  │  └─ ...
│  └─ ...
│
├─ routes/
│  ├─ app_pages.dart     # 定义所有页面的 Route 列表
│  └─ app_routes.dart    # 定义路由常量或路由字符串
│
└─ main.dart             # 程序入口

本地调试内购(IAP)流程

不需要真实购买即可在本地跑通前端内购流程:

  • 在项目根目录的环境变量文件(如 .env)里添加:
APP_IAP_MOCK=1
  • 作用:在 PayService 中启用“本地内购模拟”,调用 processGooglePayment 或 processApplePayment 会:

    • 立即触发“已发起内购(本地模拟)”;
    • 短暂延时后触发“支付处理中…(本地模拟)”;
    • 再触发“支付成功(本地模拟)”。
  • 注意:该模式不依赖 Google Play / App Store 安装来源,也不会进行服务器收据校验,仅用于前端 UI 与状态机验证。

  • 关闭模拟:将 APP_IAP_MOCK 移除或设为 0/false,恢复真实内购流程。