上周我发布了 Twenty-Four — 一款在帖子中运行的 24 游戏。四件事让我浪费了一个审查周期或一个调试下午。我把它们贴出来,以防能帮助到其他人同样的情况。

  1. Devvit Redis 对缺失的键返回 undefined,而不是 null。我的 KV 层是基于 null 编写的。单例的每日帖声明执行了 get(),将其与 null 比较,进入了“已存储”的分支,并在声明哈希中写入了 undefined。结果是没有每日帖,客户端看不到错误,只有平台日志显示了原因。在一个适配器中统一处理 — — get、hGetAll、hIncrBy、hLen — — 并在出现 undefined 时抛出异常,而不是直接传递。

  2. devvit upload 只有在创建 playtest 子reddit 时才会安装新版本。子reddit 创建后,upload 会创建版本,但安装仍停留在旧版本,导致你继续在测试上一个旧的构建。每次上传后运行 devvit install <sub> <app>@<version>。

  3. 应用内目录需要一个公开的社区。DevPortalPromotionalAssets.SaveChanges 会因私有的 playtest 子reddit而报错 Game subreddit must be public. — — 而且门户在你点击提交后才会提示。先创建公开的社区,并传递其 t5_... id。

  4. 每日帖的标题是大多数玩家唯一能看到的文案。Twenty-Four · Daily #15 · Nov 2 只说明了格式,除此之外没有别的内容。我将改为先以 hook 开头,因为在 feed 中标题就是全部的推销。

很乐意回答关于调度器、排行榜排序或分享流程的任何问题。

如果有用,App:https://www.reddit.com/r/twentyfour_game/