[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:runtimeviewer:zh":3,"releases:stats:cask:runtimeviewer:zh":291},{"artifacts":4,"autoUpdates":32,"categories":33,"conflictsWith":40,"dependsOn":43,"deprecated":36,"description":54,"descriptionEn":55,"disabled":36,"displayName":56,"downloadSha256":57,"downloadSize":58,"downloadUrl":59,"editorChoice":36,"formulaeUrl":60,"homepage":61,"installCommand":62,"installs":63,"installs30d":64,"isFont":36,"isLibrary":36,"kegOnly":36,"kind":67,"latestRelease":68,"machineTranslated":36,"minMacos":53,"name":56,"names":97,"platforms":99,"primaryCategory":264,"rank30d":265,"releaseCount":66,"releaseStats":266,"repoUrl":61,"screenshots":271,"sourceLocale":91,"sourceUrl":279,"summary":280,"summaryTranslation":281,"supports":282,"tags":284,"tap":289,"token":98,"version":96,"versionChangedAt":290},{"apps":5,"binaries":7,"entries":8,"pkgs":31},[6],"RuntimeViewer.app",[],[9,16],{"declaration":10,"phase":13,"sources":14,"target":12,"type":15},{"app":11,"target":12},[6],"\u002FApplications\u002FRuntimeViewer.app","install",[6],"app",{"declaration":17,"phase":28,"sources":29,"type":30},{"zap":18},[19],{"trash":20},[21,22,23,24,25,26,27],"\u002FLibrary\u002FLaunchDaemons\u002Fcom.JH.RuntimeViewerService.plist","~\u002FLibrary\u002FApplication Support\u002Fcom.apple.sharedfilelist\u002Fcom.apple.LSSharedFileList.ApplicationRecentDocuments\u002Fcom.jh.runtimeviewer.sfl*","~\u002FLibrary\u002FApplication Support\u002FRuntimeViewer","~\u002FLibrary\u002FCaches\u002Fcom.JH.RuntimeViewer","~\u002FLibrary\u002FHTTPStorages\u002Fcom.JH.RuntimeViewer","~\u002FLibrary\u002FPreferences\u002Fcom.JH.RuntimeViewer.plist","~\u002FLibrary\u002FSaved Application State\u002Fcom.JH.RuntimeViewerCatalystHelper~iosmac.savedState","cleanup",[],"zap",[],true,[34],{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},"lucide:code-xml",false,"开发工具","developer-tools","zh-CN",{"casks":41,"formulae":42},[],[],{"arch":44,"casks":47,"formulae":48,"macos":49,"requirements":50},[45,46],"arm64","x86_64",[],[],">= 15",{"macos":51},{">=":52},[53],"15","RuntimeViewer 是一款 macOS 应用，可检查 Mach-O 二进制文件中的 Objective-C 和 Swift 运行时接口。它可以生成 Objective-C 头文件和 Swift 类型接口，包括类型与枚举布局以及 VTable 偏移。\n\n- 浏览运行时类、协议和成员，并通过模糊搜索查找内容，或为运行时对象添加书签。\n- 检查本地运行时和框架来源，浏览 macOS 与 iOSSupport 框架，或加载自定义 Mach-O 二进制文件和框架。\n- 以 Xcode 风格的语法高亮查看重建的接口；使用多步骤导出向导将接口导出到一个或多个文件。\n- 通过 Bonjour 发现本地网络上的其他 RuntimeViewer 实例。应用还为 macOS 15 及更高版本上的 LLM 客户端提供 MCP 集成。\n\n安装时，从 [GitHub Releases](https:\u002F\u002Fgithub.com\u002FMxIris-Reverse-Engineering\u002FRuntimeViewer\u002Freleases\u002Flatest) 下载 macOS 发布压缩包，解压后将 RuntimeViewer.app 移至 Applications 文件夹。项目说明其不发布 Homebrew cask；任何第三方 cask 都属非官方且不受支持。主应用要求 macOS 15 或更高版本。RuntimeViewer 不会自动列出 Mac 上的所有应用；请自行选择运行时来源或附加到进程。附加进程要求关闭 System Integrity Protection (SIP)。代码注入也要求关闭 SIP；向系统应用注入时需使用辅助服务，该服务需在 Settings 中单独安装。\n\n[官方项目](https:\u002F\u002Fgithub.com\u002FMxIris-Reverse-Engineering\u002FRuntimeViewer)","Inspect Objective-C and Swift runtime interfaces","RuntimeViewer","0cca9b3844135f8de175cf22c3fceebc668984b022b81565fede8aa976e325d2",56838153,"https:\u002F\u002Fgithub.com\u002FMxIris-Reverse-Engineering\u002FRuntimeViewer\u002Freleases\u002Fdownload\u002Fv2.1.2\u002FRuntimeViewer-macOS.zip","https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fruntimeviewer","https:\u002F\u002Fgithub.com\u002FMxIris-Reverse-Engineering\u002FRuntimeViewer","brew install --cask runtimeviewer",{"d30":64,"d365":65,"d90":66},1,25,3,"cask",{"bodyMarkdown":69,"brewCommittedAt":70,"hasNotes":32,"id":71,"isLatest":32,"isPrerelease":36,"machineTranslated":36,"publishedAt":72,"sections":73,"source":90,"sourceLocale":91,"summary":92,"title":93,"translation":94,"version":96},"RuntimeViewer 2.1.2 是针对 v2.1.1 的双缺陷热修复。在 arm64e 上，启用 **Print Enum Layout** 后检查注入式应用不再导致崩溃。此前，读取枚举运行时布局时，未先剥除 Swift 值见证表指针上的指针认证位。该问题已在 MachOSwiftSection 0.15.2 中修复。\n\n**Strip Synthesized Methods** 现在能匹配并移除 setter 选择器；setter 选择器末尾带有冒号，因此也能与 getter 区分。此前 setter 会被漏掉，而名称相同的无参数方法则可能被误删。\n\n本版更新了多个依赖项。MachOKit 0.52.101 在读取拆分的 dyld 共享缓存时，会针对正确的子缓存解析 ObjC 头文件信息。新增的 MachOKitExtensions 包含对没有 chained fixups 的旧版二进制文件进行绑定解析，以及对 dyld 缓存映像匹配结果排序的功能。打包结构也进行了调整，将共享 MachOKit 基础代码和注释模板模块移至独立包。\n\n从 v2.1.1 升级无需迁移步骤或重新安装 helper；特权 helper 协议保持不变。从 v2.0.x 升级则需遵循 v2.1.0 的步骤，包括首次启动时一次性重新安装 helper。\n\n[官方发行说明](https:\u002F\u002Fgithub.com\u002FMxIris-Reverse-Engineering\u002FRuntimeViewer\u002Freleases\u002Ftag\u002Fv2.1.2)","2026-08-15T07:30:52Z",10250,"2026-08-15T07:20:20Z",[74,79,85],{"area":75,"items":76},"缺陷修复",[77,78],"修复检查注入式 arm64e 应用时发生的崩溃。","“Strip Synthesized Methods”现会同时移除 setter 和 getter。",{"area":80,"items":81},"依赖项",[82,83,84],"MachOSwiftSection 更新至 0.15.2，MachOObjCSection 更新至 0.8.104。","MachOKit 更新至 0.52.101；新增 MachOKitExtensions 0.1.1。","更新 swift-semantic-string、swift-collections 和 swift-fileio。",{"area":86,"items":87},"升级",[88,89],"从 v2.1.1 升级：无需迁移，也无需重新安装 helper。","从 v2.0.x 升级：需遵循 v2.1.0 步骤，包括重新安装 helper。","editorial","en-US","针对 v2.1.1 的双缺陷热修复：修复检查注入式 arm64e 应用时的崩溃，并正确剥除合成 setter。","RuntimeViewer 2.1.2",{"locale":39,"machineTranslated":36,"sourceLocale":91,"status":95},"manual","2.1.2",[56,98],"runtimeviewer",[100,128,155,183,210,237],{"arch":46,"artifacts":101,"conflictsWith":116,"dependsOn":119,"downloadSha256":57,"downloadUrl":59,"macos":126,"minMacos":53,"requiresRosetta":36,"tag":127,"version":96},{"apps":102,"binaries":103,"entries":104,"pkgs":115},[6],[],[105,109],{"declaration":106,"phase":13,"sources":108,"target":12,"type":15},{"app":107,"target":12},[6],[6],{"declaration":110,"phase":28,"sources":114,"type":30},{"zap":111},[112],{"trash":113},[21,22,23,24,25,26,27],[],[],{"casks":117,"formulae":118},[],[],{"arch":120,"casks":121,"formulae":122,"macos":49,"requirements":123},[46],[],[],{"macos":124},{">=":125},[53],"27","golden_gate",{"arch":45,"artifacts":129,"conflictsWith":144,"dependsOn":147,"downloadSha256":57,"downloadUrl":59,"macos":126,"minMacos":53,"requiresRosetta":36,"tag":154,"version":96},{"apps":130,"binaries":131,"entries":132,"pkgs":143},[6],[],[133,137],{"declaration":134,"phase":13,"sources":136,"target":12,"type":15},{"app":135,"target":12},[6],[6],{"declaration":138,"phase":28,"sources":142,"type":30},{"zap":139},[140],{"trash":141},[21,22,23,24,25,26,27],[],[],{"casks":145,"formulae":146},[],[],{"arch":148,"casks":149,"formulae":150,"macos":49,"requirements":151},[45],[],[],{"macos":152},{">=":153},[53],"arm64_golden_gate",{"arch":46,"artifacts":156,"conflictsWith":171,"dependsOn":174,"downloadSha256":57,"downloadUrl":59,"macos":181,"minMacos":53,"requiresRosetta":36,"tag":182,"version":96},{"apps":157,"binaries":158,"entries":159,"pkgs":170},[6],[],[160,164],{"declaration":161,"phase":13,"sources":163,"target":12,"type":15},{"app":162,"target":12},[6],[6],{"declaration":165,"phase":28,"sources":169,"type":30},{"zap":166},[167],{"trash":168},[21,22,23,24,25,26,27],[],[],{"casks":172,"formulae":173},[],[],{"arch":175,"casks":176,"formulae":177,"macos":49,"requirements":178},[46],[],[],{"macos":179},{">=":180},[53],"26","tahoe",{"arch":45,"artifacts":184,"conflictsWith":199,"dependsOn":202,"downloadSha256":57,"downloadUrl":59,"macos":181,"minMacos":53,"requiresRosetta":36,"tag":209,"version":96},{"apps":185,"binaries":186,"entries":187,"pkgs":198},[6],[],[188,192],{"declaration":189,"phase":13,"sources":191,"target":12,"type":15},{"app":190,"target":12},[6],[6],{"declaration":193,"phase":28,"sources":197,"type":30},{"zap":194},[195],{"trash":196},[21,22,23,24,25,26,27],[],[],{"casks":200,"formulae":201},[],[],{"arch":203,"casks":204,"formulae":205,"macos":49,"requirements":206},[45],[],[],{"macos":207},{">=":208},[53],"arm64_tahoe",{"arch":46,"artifacts":211,"conflictsWith":226,"dependsOn":229,"downloadSha256":57,"downloadUrl":59,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":236,"version":96},{"apps":212,"binaries":213,"entries":214,"pkgs":225},[6],[],[215,219],{"declaration":216,"phase":13,"sources":218,"target":12,"type":15},{"app":217,"target":12},[6],[6],{"declaration":220,"phase":28,"sources":224,"type":30},{"zap":221},[222],{"trash":223},[21,22,23,24,25,26,27],[],[],{"casks":227,"formulae":228},[],[],{"arch":230,"casks":231,"formulae":232,"macos":49,"requirements":233},[46],[],[],{"macos":234},{">=":235},[53],"sequoia",{"arch":45,"artifacts":238,"conflictsWith":253,"dependsOn":256,"downloadSha256":57,"downloadUrl":59,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":263,"version":96},{"apps":239,"binaries":240,"entries":241,"pkgs":252},[6],[],[242,246],{"declaration":243,"phase":13,"sources":245,"target":12,"type":15},{"app":244,"target":12},[6],[6],{"declaration":247,"phase":28,"sources":251,"type":30},{"zap":248},[249],{"trash":250},[21,22,23,24,25,26,27],[],[],{"casks":254,"formulae":255},[],[],{"arch":257,"casks":258,"formulae":259,"macos":49,"requirements":260},[45],[],[],{"macos":261},{">=":262},[53],"arm64_sequoia",{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},3840,{"brewLag":267,"cadence":269,"count30d":270},{"compared":66,"earlierCount":64,"medianMinutes":268},10,"daily",0,[272],{"caption":273,"height":274,"machineTranslated":36,"sourceLocale":91,"theme":275,"thumbUrl":276,"url":277,"width":278},"Official application interface",752,"dark","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F423303bc2884\u002F6feb65466d3d-640.png","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F423303bc2884\u002F6feb65466d3d-1280.png",1280,"https:\u002F\u002Fgithub.com\u002Fhomebrew\u002Fhomebrew-cask\u002Fblob\u002FHEAD\u002FCasks\u002Fr\u002Fruntimeviewer.rb","一款用于检查 Mach-O 二进制文件中 Objective-C 和 Swift 运行时接口的 macOS 应用。",{"locale":39,"machineTranslated":36,"sourceLocale":91,"status":95},{"arm64":32,"requiresRosetta":36,"status":283,"x86_64":32},"known",[285,286,287,288],"runtime inspection","Mach-O","interface export","fuzzy search","homebrew\u002Fcask","2026-10-07T09:38:41.545736Z",null]