常见问题
DistroMate 使用过程中的常见问题解答
CLI 相关
登录失败怎么办?
如果登录失败,请检查:
- 用户名和密码是否正确
- API 服务器地址是否正确(使用
--api-base参数指定) - 网络连接是否正常
你可以指定自定义的 API 服务器:
distromate login --api-base https://api.example.com打包失败怎么办?
常见的打包失败原因:
- 可执行文件路径错误: 检查
distromate.yaml中的package.executable路径是否正确 - Inno Setup 编译器找不到: 使用
--compiler参数指定 ISCC.exe 的路径 - 图标文件格式错误: 确保图标文件是
.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 失败
可能的原因:
- 程序未通过 Launcher 启动: 确保调用了
restart_app_if_necessary()方法 - Pipe 名称错误: 检查 Pipe 名称是否正确,通常从环境变量
DISTROMATE_PIPE_PORT获取 - 超时时间过短: 尝试增加超时时间
# Python 示例
api.connect(r"\\.\pipe\distromate_pipe", timeout=10000) # 10秒超时许可证验证失败
验证失败的常见原因:
- 公钥不匹配: 确保使用的公钥与服务器配置的私钥匹配
- 签名验证失败: 响应数据可能被篡改
- 网络问题: Launcher 与服务器之间的通信出现问题
DLL 加载失败
Windows 上的 DLL 加载问题:
- 确保
dm_api.dll在程序运行目录或系统 PATH 中 - 检查 DLL 的架构是否匹配(x86 vs x64)
- 安装 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 支持离线激活模式:
- 在联网环境中获取激活码
- 在离线环境中使用
activate()方法激活 - 激活信息会缓存在本地
如何实现静默安装?
打包时生成的安装程序支持静默安装参数:
myapp-Setup-1.0.0.exe /SILENT或完全静默(无界面):
myapp-Setup-1.0.0.exe /VERYSILENT获取帮助
如果以上内容没有解决你的问题: