Distromate Docs

常见问题

DistroMate 使用过程中的常见问题解答

CLI 相关

登录失败怎么办?

如果登录失败,请检查:

  1. 用户名和密码是否正确
  2. API 服务器地址是否正确(使用 --api-base 参数指定)
  3. 网络连接是否正常

你可以指定自定义的 API 服务器:

distromate login --api-base https://api.example.com

打包失败怎么办?

常见的打包失败原因:

  1. 可执行文件路径错误: 检查 distromate.yaml 中的 package.executable 路径是否正确
  2. Inno Setup 编译器找不到: 使用 --compiler 参数指定 ISCC.exe 的路径
  3. 图标文件格式错误: 确保图标文件是 .ico 格式

示例:

distromate package --version 1.0.0 \
  --compiler "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"

如何指定自定义输出目录?

使用 --output 参数:

distromate package --version 1.0.0 --output dist/packages

上传速度慢怎么办?

DistroMate CLI 支持分块上传和秒传功能:

  • 文件会自动分成 5MB 的块进行上传
  • 如果文件已存在(MD5 相同),会自动跳过上传
  • 支持断点续传,中断后可以继续上传

SDK 相关

连接到 Launcher 失败

可能的原因:

  1. 程序未通过 Launcher 启动: 确保调用了 restart_app_if_necessary() 方法
  2. Pipe 名称错误: 检查 Pipe 名称是否正确,通常从环境变量 DISTROMATE_PIPE_PORT 获取
  3. 超时时间过短: 尝试增加超时时间
# Python 示例
api.connect(r"\\.\pipe\distromate_pipe", timeout=10000)  # 10秒超时

许可证验证失败

验证失败的常见原因:

  1. 公钥不匹配: 确保使用的公钥与服务器配置的私钥匹配
  2. 签名验证失败: 响应数据可能被篡改
  3. 网络问题: Launcher 与服务器之间的通信出现问题

DLL 加载失败

Windows 上的 DLL 加载问题:

  1. 确保 dm_api.dll 在程序运行目录或系统 PATH 中
  2. 检查 DLL 的架构是否匹配(x86 vs x64)
  3. 安装 Visual C++ 运行时库

Python 中指定 DLL 路径:

import os
dll_path = os.path.join(os.path.dirname(__file__), 'dm_api.dll')
api = DmApi(PUBLIC_KEY, dll_path)

如何处理许可证过期?

验证返回的数据中包含 expires_at 字段,你可以检查这个时间:

from datetime import datetime

data = api.verify()
if data:
    expires_at = data.get('expires_at')
    if expires_at:
        expiry_date = datetime.fromisoformat(expires_at)
        if expiry_date < datetime.now():
            print("许可证已过期")

多语言 SDK 选择建议

应用类型推荐 SDK
Windows 原生应用C++
.NET 应用C#
Unity 游戏C#
Electron 应用JavaScript
Python 脚本/应用Python
Go 后端服务Go

部署相关

如何在没有网络的环境中使用?

DistroMate 支持离线激活模式:

  1. 在联网环境中获取激活码
  2. 在离线环境中使用 activate() 方法激活
  3. 激活信息会缓存在本地

如何实现静默安装?

打包时生成的安装程序支持静默安装参数:

myapp-Setup-1.0.0.exe /SILENT

或完全静默(无界面):

myapp-Setup-1.0.0.exe /VERYSILENT

获取帮助

如果以上内容没有解决你的问题:

  1. 查看 命令参考 了解详细的命令用法
  2. 查看 SDK 接入指南 了解各语言的详细接入方式
  3. 查看 配置文件说明 了解配置选项

On this page