故障排除
最常见的问题及其解决方法。
代码注释和 API 名称保留英文,以便与 SDK 保持一致。
连接#
not_configured / NotConfigured
Unity:打开 Tools ▸ Majacloud ▸ Setup 并保存;该资源必须位于 Assets/Resources/MajacloudSettings.asset。Godot:填写 Project Settings ▸ Majacloud。Web:传入 baseUrl、projectId 和 clientKey。
https_required(HTTP 426)
只有 localhost 可以使用 http://。请使用 HTTPS;或者仅在开发时,在 config.local.php 中设置 ALLOW_INSECURE_HTTP。
在浏览器或 WebGL 中所有请求都失败
游戏本身也要通过 HTTPS 提供:浏览器会阻止 https:// 页面发出的 http:// 调用。API 已经发送了 CORS 头。
查找失败的请求
每个错误都有请求 ID。在项目的日志页面中搜索它即可。
登录#
每次调用都返回 unauthorized
在 API 密钥页面核对项目 ID 和客户端密钥。如果你轮换过客户端密钥,旧构建将无法继续使用。
玩家意外退出登录
30 天未使用的会话会过期。如果游戏的两个副本共享同一个会话并且都去刷新它,重用保护机制会让该会话退出登录:请只让一个 SDK 实例管理该会话。
账号关联页面打不开
浏览器会阻止不是由点击打开的标签页。请在按钮处理函数中开始关联。
远程配置#
signature_invalid / SignatureInvalid
保存的公钥与服务器不匹配,通常发生在迁移到新服务器或丢失 storage/keys/ 之后。请重新运行 Test connection(或更新 configPublicKey),然后发布更新。
配置更改没有生效
SDK 会在启动时拉取配置。要在会话期间获取更改,请再次调用 fetch(例如返回菜单时)。
限制#
plan_limit
已达到套餐上限。不会删除任何数据;请升级套餐,或在控制台中移除不再使用的内容。
rate_limited / quota_exceeded
等待 Retry-After 秒。避免在 Update() 或游戏循环中拉取数据,改为缓存结果。
Godot 和 Web#
Godot:Identifier "Majacloud" not declared
在 Project Settings ▸ Plugins 中启用插件,它会添加自动加载。检查文件夹是否正好是 res://addons/majacloud。
Godot:TLS handshake failed
服务器的 HTTPS 证书不受信任(通常是自签名证书)。请使用由公共证书颁发机构(例如 Let's Encrypt)签发的证书。
Web:“Web Crypto is unavailable”
页面是从其他主机通过纯 HTTP 提供的。请通过 HTTPS 提供页面(开发期间使用 localhost 也可以)。