我是一名 iOS 开发者,每次调试前都要重复同样的设置(但说真的,我一点也不烦!)。

启动时设置特定的环境变量、切换语言、强制深色模式、找到正确的深度链接、发送匹配的推送负载。然后下一个构建版本再来一遍。

所以我开发了 CosmoKit,一个原生的 macOS 控制中心,用于 iOS 模拟器工作流。使用 SwiftUI 和 SwiftData 构建。

当前功能

  • 应用配置文件:按应用保存启动参数、环境变量、语言和外观,可从主面板或菜单栏切换
  • 深度链接推送负载位置路由,全部限定于当前活跃的配置文件
  • 直接从面板读取和写入应用的 UserDefaults
  • 授予和撤销权限,并清理钥匙串,无需擦除模拟器
  • 一次性在所有选中的模拟器上启动配置文件
  • 一个支持响应拦截的 HTTP/HTTPS 代理
  • 代理中的网络条件设置(4.7 版新功能)。预设如 Edge、3G 和 LTE,或自定义延迟、带宽和丢包率,按主机应用,对模拟器上任何应用都生效,且无需在应用中集成 SDK。离线模式是第一步,这是后续的完整实现。
  • 一个 CLI 和 MCP 服务器(brew install maththedev42/tap/cosmokit),因此脚本或像 Claude Code 这样的代理可以启动模拟器、捕获和录制屏幕、设置位置并通过终端(而非面板)打开深度链接。
  • 用于 App Store 截图和录制的捕获管道

4.8 版即将推出的功能

  • 应用配置文件上的诊断开关:僵尸对象、malloc 栈日志、主线程检查器、Core Data SQL 和并发调试、布局反馈循环和本地化检查,每一个都可通过开关控制,而无需在方案编辑器中念咒语
  • 可导出的复现包,这样仅在模拟器中出现的 bug 可以连同出现时的精确环境一起交给其他开发者,并在他们的 Mac 上应用
  • 会话日志,记录 CosmoKit 对模拟器所做的一切,这样当"出了问题"时可以有据可查
  • App Store 截图模板:设备边框、每种语言的标题和副标题,一次导出所有需要的尺寸
  • 以及你在这篇帖子中建议的任何新功能

为什么要再做一款工具

没错,市面上已经有很好的工具了。RocketSim 覆盖了模拟器端的很多功能,Proxyman 是代理端的标杆。我的问题是,为了覆盖一个工作流程的不同部分,我最终需要付费使用多款应用,费用很快就累积起来了。CosmoKit 将模拟器控制、代理和捕获管道集成在一款应用里,而且代理不需要在你调试的应用中集成 SDK。

所以我打造了自己想要的工具:一个地方搞定我每天使用的模拟器工作流,定价对独立开发者来说也合理。

我的目标是不断扩展它,把目前分散在不同 iOS 开发工具中的实用功能整合到一处。我不指望取代所有专业工具,但我希望 CosmoKit 能覆盖我在日常开发中越来越多需要的功能,而无需同时打开五个不同的应用。

这也是我在这里发帖的原因。我非常欢迎各种建议、批评和功能请求,尤其是如果你现在依赖某个工具或工作流,并且希望看到它被集成到 CosmoKit 中。

定价

基础工具免费。Pro 版免费试用后为 $2.99/月或 $19.99/年,或者一次性购买 $69.99。订阅会自动续费,除非取消。

链接