我为 macOS 构建了一个 iOS Simulator 工具包——它的功能如下

发布: (2026年2月8日 GMT+8 18:49)
5 分钟阅读
原文: Dev.to

Source: Dev.to

如果你开发 iOS 应用,你每天都会在 Xcode Simulator 中花费数小时。而且每天,你都会遇到相同的痛点:

  • 需要检查 WebSocket 消息吗?没有内置的检查器。
  • 需要检查 API 响应吗?需要使用 SSL 证书来设置 Charles Proxy。
  • 需要带设备框架的截图吗?需要切换到其他工具。
  • 需要测试推送通知吗?打开终端,编写 JSON,使用 simctl push
  • 需要在慢速网络下测试吗?Simulator 本身不支持。
  • 需要验证可访问性吗?在 Simulator 的 Settings 应用中逐一切换设置。

我构建了 SimKit,在一个 macOS 应用中解决所有这些问题。

Mac App Store 下载 SimKit。

SimKit demo GIF

什么是 SimKit?

SimKit 是一个 macOS 应用程序,运行在 iOS Simulator 旁边,提供 Xcode 没有的专业工具。它采用免费增值模式(核心功能免费,Pro 版提供高级工具),使用 100 % SwiftSwiftUI 编写,且没有任何第三方依赖。

GitHub:

Source:

功能概览

屏幕录制与截图

  • 录制带有设备边框和触摸指示的模拟器画面,可导出为 MP4 或 GIF。
  • 截取带自定义状态栏和设备框架的截图——可直接用于 App Store 营销或 Pull‑Request 文档。

网络调试(零配置)

在你的 iOS 应用中添加一行代码:

import SimKitSDK

SimKitSDK.shared.enable()

即可获得:

  • WebSocket 检查 – 实时监控帧、消息和连接生命周期。
  • 实时 HTTP 流量监控 – 查看每个请求、响应、头部和正文。
  • 网络限速 – 模拟 Wi‑Fi、LTE、4G、3G、2G/Edge、自定义速度或离线模式。
  • Mock 端点 – 为任意 URL 模式返回自定义 JSON,无需搭建 Mock 服务器。
  • 导出 – HAR 格式供 Chrome DevTools 使用,或导出为 cURL 以在终端重放。

无需代理设置、证书或 Charles Proxy 许可证。底层使用 URLProtocol 拦截实现。

推送通知测试

可视化的推送通知测试工具取代了 simctl push 的终端流程:

  • 带语法高亮的 JSON 编辑器。
  • 内置模板(消息、警报、徽章、静默推送、富媒体通知)。
  • 徽章数字控制。
  • 负载历史记录——可复用之前的通知。
  • 一键发送至任意运行中的模拟器。

深度链接测试

通过可视化界面测试 URL Scheme 和 Universal Link。保存常用链接模板,无需再手动输入 xcrun simctl openurl booted …

位置模拟

  • 8 个预设城市位置。
  • 自定义 GPS 坐标输入。
  • GPX 路线文件回放——模拟在路径上的移动,适用于导航、健身或共享出行类应用的测试。

辅助功能测试 — 一面板 11 项设置

可随意组合切换:

  • 动态文字(7 种尺寸:XS 到 XXXL)
  • 暗/亮模式
  • 减少动画
  • 减少透明度
  • 粗体文字
  • 按钮形状
  • 灰度
  • 颜色反转
  • 增强对比度
  • 开/关标签
  • 区分无色彩

无需在模拟器的 Settings 应用中逐项查找,即可测试应用的辅助功能支持。

开发者工具

  • UserDefaults 编辑器 – 查看并编辑应用的 UserDefaults,无需修改代码。
  • 应用容器浏览器 – 浏览应用沙盒目录。
  • 权限管理器 – 授予或撤销权限(相机、照片、位置等)。
  • 生物识别模拟 – 触发 Face ID / Touch ID 成功或失败事件。

入门

Mac App Store 下载 SimKit,或访问官网。

若需网络功能,请通过 Swift 包管理器将 SimKit SDK 添加到您的 iOS 项目中:

import SimKitSDK

@main
struct MyApp: App {
    init() {
        SimKitSDK.shared.enable()
    }
    var body: some Scene {
        WindowGroup { ContentView() }
    }
}

反馈与支持

  • 错误报告:
  • 功能请求: 在 issue 中提出你的想法。
  • 给仓库加星: 如果 SimKit 对你有帮助,给个星星意义重大。
  • GitHub:

你希望接下来看到哪些功能?在评论中告诉我吧。

0 浏览
Back to Blog

相关文章

阅读更多 »

[SUI] 侧边栏 (Sidebar)

描述 在 iPadOS 和 macOS 上可以通过修改 TabView 将标签呈现在侧边栏中 https://developer.apple.com/documentation/swiftui/tab...