# 策展 · X (Twitter) 🔥

> 作者：Akring (@ddflj3310) · 平台：X (Twitter) · 日期：2026-05-05

> 原始來源：https://x.com/ddflj3310/status/2051152947309109478

## 中文摘要

DebugSwift 為 iOS 獨立開發者提供 App 內建開發者控制台，簡化除錯流程。

DebugSwift 是一個全面的 Swift 應用程式除錯工具組，將傳統除錯功能直接內嵌至 iOS App 中，讓開發者在真機上即時查看日誌、效能指標與資源狀態，避免切換 Xcode 或外部工具的麻煩。作者 @ddflj3310 特別推薦給獨立開發者，強調其如「開發者控制台」般的便利性，支持 iOS 14.0+、Swift 6.0+ 與 Xcode 16.0+。

**網路檢查器功能**
DebugSwift 的網路檢查器提供零配置的 HTTP 與 WebSocket 監控，捕捉所有請求/回應細節，包括狀態碼與格式化 JSON。
- HTTP 監控：記錄請求/回應日誌，支持過濾與 API 使用量閾值限制。
- WebSocket 檢查器：自動監控連線與資料框架。
- 智慧內容：自動格式化 JSON 並提供語法高亮。
- 加密支援：自動解密 AES-256/128 加密回應，或使用自訂解密器。
開發者可設定忽略特定 URL 如 "https://analytics.com"，或僅監控 "https://api.myapp.com"；支援清除網路歷史記錄，如切換環境時呼叫 `clearNetworkHistory()`。

**效能監控工具**
即時追蹤 CPU、記憶體與 FPS，幫助排查卡頓與記憶體洩漏。
- 即時指標：效能小工具疊加顯示即時統計。
- 記憶體洩漏偵測：自動偵測洩漏的 ViewController 與 View。
- 執行緒檢查器：偵測主執行緒違規並提供堆疊追蹤。
配置時可透過 `onLeakDetected` 回呼處理洩漏事件，例如 `print("🔴 Memory leak detected: \(leakData.message)")`。

**App 工具集**
涵蓋崩潰分析、裝置資訊與本地儲存檢視，讓開發者在 App 內一覽所有關鍵資料。
- 崩潰報告：包含螢幕截圖與堆疊追蹤。
- 控制台日誌：即時監控與過濾。
- 裝置資訊：App 版本、組建與硬體細節。
- APNS Token：輕鬆存取與複製推播通知 token，需在 AppDelegate 中呼叫 `DebugSwift.APNSToken.didRegister(deviceToken: deviceToken)`。
- 自訂動作：新增專屬除錯動作，如清除 UserData。

**介面除錯功能**
視覺化工具強化 UI 除錯，包括 SwiftUI 專屬追蹤（Beta）。
- 格線疊加：自訂顏色與透明度。
- 視圖階層：3D 互動檢視器，按住圓鈕顯示快照與階層樹，長按特定視圖揭露類別、子視圖、背景色等屬性。
- 觸摸指示器：視覺化觸摸回饋。
- 動畫控制：減速動畫以利除錯。
- 視圖邊框：顏色標記邊界。
- SwiftUI 重渲染追蹤（Beta）：偵測並視覺化重渲染，需 `enableBetaFeatures: [.swiftUIRenderTracking]` 啟用，支持持久疊加與計數邊框樣式。

**資源瀏覽器**
直接在 App 內瀏覽沙盒與共享容器，支持編輯與匯出。
- 檔案瀏覽器：導航 App 沙盒與 App Group 容器，如配置 "group.com.yourcompany.yourapp"。
- UserDefaults：即時檢視與修改偏好設定。
- Keychain：檢查金鑰環項目。
- 資料庫瀏覽器：SQLite 與 Realm 檢視。
- SwiftData 瀏覽器（iOS 17+）：檢查容器、模型、屬性與關係，支持編輯與 JSON 匯出，配置如 `DebugSwift.Resources.shared.configureSwiftData(contexts: [...])`。
- 推播通知模擬：啟用 `enableSimulation()` 後，使用 `simulate(title: "Test Notification", body: "This is a test notification")`。

**安裝與基本設定**
接入極簡，只需 Swift Package Manager 或 CocoaPods 引入，於 AppDelegate 呼叫 `debugSwift.setup()` 與 `debugSwift.show()`，產生懸浮球；搖晃裝置可切換。
- Swift Package Manager（推薦）：`Package.swift` 新增 `.package(url: "https://github.com/DebugSwift/DebugSwift.git", from: "1.0.0")`，或 Xcode 直接新增 "https://github.com/DebugSwift/DebugSwift"。
- CocoaPods：標準 `pod 'DebugSwift'`，或快速 XCFramework `pod 'DebugSwift', :http => 'https://github.com/DebugSwift/DebugSwift/releases/latest/download/DebugSwift.xcframework.zip'`，後者建置快 50%。
完全支援 Apple Silicon Mac 的 arm64 模擬器，移除舊版 `EXCLUDED_ARCHS[sdk=iphonesimulator*] = 'arm64'` 排除設定。
程式碼範例：
```swift
#if DEBUG
debugSwift.setup()
debugSwift.show()
#endif
```
SwiftUI 整合使用 `DebugViewControllerRepresentable` 包裝於 UINavigationController，支持全螢幕覆蓋。

**進階程式化存取**
無需懸浮球，可取得獨立 UIViewController 推入導航堆疊或模態呈現。
- `let debugVC = DebugSwift.debugViewController()` 後 `navigationController?.pushViewController(debugVC, animated: true)`。
SwiftUI 範例使用 `fullScreenCover` 與 `onDismiss` 還原懸浮球狀態。

**自訂擴展**
高度可客製化，新增自訂控制器、動作與資訊面板。
- 自訂 ViewController：`DebugSwift.App.shared.customControllers = { [controller1, controller2] }`。
- 自訂動作：如環境切換清空網路歷史 `DebugSwift.App.shared.customAction = { ... }`。
- 自訂資料：`DebugSwift.App.shared.customInfo = { ... }` 顯示標題與副標題。

**網路進階配置**
支援手動注入 URLSessionConfiguration 與加密解密。
- 注入範例：`DebugSwift.Network.shared.injectIntoConfiguration(config)`。
- 解密：`setDecryptionEnabled(true)` 後註冊金鑰 `registerDecryptionKey(for: "api.example.com", key: key)`，或自訂解密器。
過濾如 `ignoredURLs` 或 `onlyURLs`，清除歷史 `clearAllNetworkData()`。

**選擇性功能與 Beta**
透過 `setup(hideFeatures: [.performance, .interface], disable: [.leaksDetector, .console])` 隱藏或停用特定功能。
Beta 功能如 SwiftUI 渲染追蹤：`DebugSwift.SwiftUIRender.shared.isEnabled = true`，設定疊加持續時間 `overlayDuration = 1.0` 與清除 `clearPersistentOverlays()`。

**疑難排解指南**
針對 Apple Silicon 建置問題，提供明確解決方案。
- 更新至最新版如 `pod 'DebugSwift', '~> 1.8.1'`。
- 使用 XCFramework 避免架構錯誤。
- 移除舊排除設定，清潔 DerivedData：`rm -rf ~/Library/Developer/Xcode/DerivedData`。
XCFramework 建置快 50%，適合生產；來源版適合開發除錯。

**專案生態與支援**
DebugSwift 採用 MIT 授權，GitHub 星數持續成長，貢獻者眾多，歡迎 PR。作者呼籲點星支持，強調其對獨立開發者的實用性，如內建控制台排查 HTTP、效能與 UI 問題，提升除錯效率。

## 標籤

iOS, Xcode, 開源專案, DebugSwift, Apple
