iOSDevelopmentTools
Uygulamanın network isteklerini, loglarını ve cihaz durumunu uygulama içi bir konsolda incele; gizli değerler maskelenmiş olarak.
Lisans: MIT
iOS 17+ ve macOS 14+ için bağımlılıksız bir Swift paketi: uygulamanın URLSession ile yaptığı istekleri kaydeder, log mesajlarını tutar, bir cihaz raporu toplar ve üçünü de sallama, buton ya da pencereyle açılan bir SwiftUI konsolunda gösterir. Parolalar, token'lar, cookie'ler ve API anahtarları hiçbir şey saklanmadan önce maskelenir; istekler cURL komutu ya da HAR dosyası olarak paylaşılabilir. Debug ve test build'leri için tasarlandı, Swift 6 strict concurrency ile yazıldı.
Özellikler
- Tek satırla kayıt: NetworkCapture.start(), URLSession.shared'ı ve sonradan default ya da ephemeral configuration'dan oluşturulan her session'ı kaydeder; yanıtlar uygulamaya değişmeden ulaşır
- Saklamadan önce maskeleme: hassas adlı header, query, form, multipart ve JSON değerleri, ad nasıl yazılmış olursa olsun değiştirilir; kontrol edilemeyen yapılandırılmış gövde hiç saklanmaz
- Sınırlı bellek: varsayılan olarak en fazla 500 istek ve her gövdeden 256 KiB, log mesajları ring buffer'da, 4 MiB üstü upload'lar kopyalanmak yerine stream edilir
- Her isteği shell-güvenli bir curl komutu, istek listelerini HTTP Archive (HAR 1.2) olarak dışa aktarma
- LogStore seviyeli ve kategorili mesajları tutar, aynı zamanda unified logging sistemine yazar; DeviceSnapshot sürüm, OS, model, bellek kullanımı, ısıl durum ve debugger bilgisini raporlar
- Network, Logs ve Device sekmeli, arama, filtre ve paylaşım menülü SwiftUI konsolu; sallayınca (iOS), butondan ya da macOS penceresinde açılır
- 148 Swift Testing testi; istekler uygulama session'ından capture üzerinden bir stub sunucuya gider ve testler sunucunun ne aldığını, uygulamanın ne aldığını ve neyin saklandığını kontrol eder
- Dört makaleli DocC kataloğu ve iOS ile macOS için DevToolsDemo örnek uygulaması
Hızlı Başlangıç
1@main2struct MyApp: App {3 init() {4 #if DEBUG5 NetworkCapture.start()6 #endif7 }8 9 var body: some Scene {10 WindowGroup {11 ContentView()12 #if DEBUG13 .devToolsConsoleOnShake()14 #endif15 }16 }17}Kurulum
Xcode (File › Add Package Dependencies…)
1https://github.com/muhittincamdali/iOSDevelopmentTools.gitSwift Package Manager
1.package(url: "https://github.com/muhittincamdali/iOSDevelopmentTools.git", from: "2.0.0")Ekran Görüntüleri

![Konsolda açılmış bir giriş isteği: Authorization header'ı ve JSON gövdesindeki parola [REDACTED] olarak görünüyor](/_next/image/?url=%2Fopen-source%2Fiosdevelopmenttools%2Frequest-light.png&w=3840&q=75)


Zaman Çizelgesi
Repo; network, storage, analytics, debug ve utility modülleriyle açıldı
v1.0.0 etiketlendi: Alamofire üzerine kurulu bir network client ile storage, analytics ve logging yöneticileri, beş modülde
Sadeleştirme: 1.0.0 modülleri silindi, yerine yer tutucu kod kondu
v2.0.0: sıfırdan uygulama içi network inspector, log konsolu ve cihaz raporu olarak yeniden kuruldu; redaction, DocC ve örnek uygulamayla