すべてのオープンソースパッケージ
ツールSwift

iOSDevelopmentTools

アプリ内のコンソールで、ネットワークリクエスト・ログ・デバイスの状態を確認できます。secrets はマスクされます。

4スター数最新リリース: v2.0.0 · 更新日: 2026年10月15日
対応プラットフォーム:iOS 17macOS 14

ライセンス: MIT

iOS 17以降・macOS 14以降向けの依存関係のない Swift パッケージです。アプリが URLSession で行うリクエストを記録し、ログメッセージを保持し、デバイスレポートを収集し、この3つを SwiftUI のコンソールに表示します。コンソールは shake、ボタン、またはウィンドウで開きます。パスワード、トークン、cookie、API キーは保存前に置き換えられ、リクエストは cURL コマンドまたは HAR ファイルとして共有できます。debug ビルドと test ビルド向けに作られており、Swift 6 の strict concurrency 用に書かれています。

機能

  • 記録は1行で: NetworkCapture.start() が URLSession.shared と、それ以降に default または ephemeral の configuration から作られるすべての session を記録します。レスポンスは変更されずにアプリに届きます
  • 保存前のマスク処理: header、query、form、multipart、JSON の値のうち、名前に機密性があるものは表記にかかわらず置き換えられます。チェックできない構造化された body は保存されません
  • 容量制限: デフォルトで最大500件のリクエストと body あたり256KiB、ログメッセージは ring buffer に保持され、4MiBを超えるアップロードはコピーせずにストリーミングされます
  • 任意のリクエストをシェルセーフな curl コマンドとして、任意のリクエスト一覧を HTTP Archive (HAR 1.2) としてエクスポートできます
  • LogStore はレベルとカテゴリ付きのメッセージを保持し、統合ログシステムにも書き込みます。DeviceSnapshot はバージョン、OS、モデル、メモリ使用量、thermal state、デバッガの状態を報告します
  • Network・Logs・Device のタブ、検索、フィルタ、共有メニューを備えた SwiftUI コンソール。shake (iOS)、ボタン、または macOS のウィンドウから開きます
  • 148件の Swift Testing テスト。リクエストはアプリの session から capture を経由して stub サーバーに送られ、テストはサーバーが受け取った内容、アプリが受け取った内容、保存された内容をチェックします
  • 4本の記事からなる DocC カタログと、iOS・macOS 向けの DevToolsDemo サンプルアプリ

クイックスタート

swift
1@main
2struct MyApp: App {
3 init() {
4 #if DEBUG
5 NetworkCapture.start()
6 #endif
7 }
8 
9 var body: some Scene {
10 WindowGroup {
11 ContentView()
12 #if DEBUG
13 .devToolsConsoleOnShake()
14 #endif
15 }
16 }
17}

インストール

Xcode (File › Add Package Dependencies…)

text
1https://github.com/muhittincamdali/iOSDevelopmentTools.git

Swift Package Manager

swift
1.package(url: "https://github.com/muhittincamdali/iOSDevelopmentTools.git", from: "2.0.0")

スクリーンショット

サンプルアプリからの実際のリクエスト7件を一覧表示する Network タブ: 不明なホストへの失敗したリクエスト、503、404、そして所要時間とサイズ付きの成功したリクエスト4件
コンソールで開かれたサインインリクエスト: Authorization header と JSON body 内のパスワードが [REDACTED] と表示されています
サンプルアプリからの info、warning、error の各メッセージを、カテゴリ・時刻・ソース行付きで表示する Logs タブ
アプリのバージョン、iOS バージョン、シミュレートされたモデル、メモリ、アプリのメモリ、thermal state、低電力モード、デバッガの状態を表示する Device タブ

タイムライン

  1. network、storage、analytics、debug、utility の各モジュールでリポジトリが公開されました

  2. v1.0.0 がタグ付けされました: Alamofire 上に構築された network client と、storage・analytics・logging の各 manager を含む5つのモジュール

  3. 簡素化: 1.0.0 のモジュールが削除され、placeholder のコードに置き換えられました

  4. v2.0.0: アプリ内の network inspector、log console、device report としてゼロから作り直され、マスク処理、DocC、サンプルアプリを備えました

リンク

関連記事

記事を読む (English)