iPhone'u Windows'tan USB ile Ayıklamak: Python ile Ekran Görüntüsü ve Günlük
Nesim Razon, bağımsız Android geliştiricisi · 2026-11-14
Android'de adb, masandaki bir telefondan ekran görüntüsü almayı ya da günlük okumayı kolaylaştırır. Windows'ta bir iPhone için buna benzer bir şey beklemiyordum ama bir yolu var: Apple'ın kendi sürücü paketi ve açık kaynaklı bir Python aracı. İşte iOS 15.8 çalıştıran bir iPhone 7'de işe yarayan kurulum, tuzaklar karşılaştığım sırayla ve onunla çözdüğüm gerçek bir hata.
Ne lazım
- Microsoft Store'dan Apple Devices uygulaması. iPhone'lar için USB sürücüsünü getirir ve winget ile kurulabilir.
- Python 3 ve pymobiledevice3 paketi.
- Kablolu bir telefon, kilidi açık ekran ve telefonda kabul edilmiş Güven (Trust) isteği.
Kurulum sırası önemli
Apple Devices kurulduktan sonra iPhone Aygıt Yöneticisi'nde hâlâ hata durumuyla görünüyordu ve araç usbmux soketine bağlanamadığını söylüyordu. Çözüm, telefon bağlı ve kilidi açıkken Apple Devices uygulamasını bir kez açmak, Güven isteğini kabul etmek ve sürücü kurulumunu bitirmesini beklemekti. Telefon ancak ondan sonra doğru listelendi.
Python tuzağı
Benim makinemde yoldaki ilk python eski bir Python 2.7'ydi; bu yüzden düz pip komutu işe yarar bir şey kurmadı. Windows'ta py başlatıcısı doğrusunu seçer: py -3 -m pip install pymobiledevice3 ile kur ve aracı her zaman py -3 -m pymobiledevice3 olarak çalıştır, çünkü oluşturduğu çalıştırılabilir dosya yolda değil.
Sürekli kullandığım dört komut
- usbmux list, bağlı telefonu modeli ve iOS sürümüyle gösterir.
- mounter auto-mount, geliştirici disk imajını bir kez indirir ve bağlar. iOS 15'te herhangi bir Geliştirici Modu açmam gerekmedi.
- developer dvt launch ve ardından paket kimliği, uygulamayı başlatır.
- developer screenshot ve ardından bir dosya adı, ekranın o an gösterdiğini kaydeder.
Boğulmadan günlük okumak
syslog live, telefonun günlüğe yazdığı her şeyi basar; bu fazlasıyla çok. Süreç adına göre süzmek yalnızca uygulamanı bırakır. Yine de uygulamam otuz saniyede bir megabaytın üstünde günlük üretti; bu yüzden çıktıyı bir dosyaya yazıp akmasını izlemek yerine sonradan arıyorum.
En kolay bulunanlar kendi mesajların. Swift'te bir NSLog çağrısı bu günlükte görünür; ben satırlarımı uygulama adıyla etiketliyorum ve o etiketi arıyorum.
Gerçek bir örnek: banner neden boştu?
Oyunum, Google'ın demo reklam biriminden gerçeğine geçince reklam banner'ı göstermedi. Telefon görünür bir hata vermedi. Banner görünümüne, reklam isteğinin sonucunu NSLog ile yazan küçük bir temsilci ekledim, derledim, TestFlight ile kurdum ve günlüğü USB'den okudum.
Cevap tek satırdı: gösterilecek reklam yok. Bu, reklam sunucusunun dolduracak bir şeyi olmadığı anlamına gelir; henüz mağazada olmayan bir uygulamada yepyeni bir reklam birimi için normaldir. Günlük olmasa kodumda hata aramaya devam ederdim.
Sınırlar ve gizlilik
Ekran görüntüsü ekranda ne varsa onu yakalar ve süzülmemiş bir günlük başka uygulamaların satırlarını içerir. Telefon paylaşılıyorsa, benimki başka bir projeyle ortak, önce yalnızca kendi uygulamamı başlatıyorum ve günlüğü süreç adına göre süzüyorum. Araç, bilgisayara verdiğin güven üzerinden çalışır; Güven isteğini yalnızca sahip olduğun makinelerde kabul et.
Sık sorulan sorular
Windows'ta bir iPhone'dan ekran görüntüsü alabilir miyim?
Evet. Apple Devices sürücüsü ve pymobiledevice3 aracıyla geliştirici disk imajını bir kez bağlayıp sonra komut satırından ekran görüntüsü kaydedebilirsin.
Bunun için Mac ya da Xcode gerekir mi?
Hayır. Sürücü Apple Devices uygulamasından, araç bir Python paketi; Windows dizüstü yeterli.
Araç neden usbmux'a bağlanamadığını söylüyor?
Apple USB sürücüsü henüz çalışmıyordu. Telefon bağlı ve güvenilir iken Apple Devices uygulamasını bir kez aç, sonra tekrar dene.
Yalnızca kendi uygulamamın günlüğünü nasıl okurum?
syslog live'ı süreç adı seçeneğiyle kullan, çıktıyı bir dosyaya yaz ve kendi etiketlediğin mesajları ara.
Diğer yazılar
- App Store Bağlantım Neden 404 Verdi ve Sayfa 2018 Ekran Görüntülerini Gösterdi
- App Store İnceleme Kuralı 2.1 "Bilgi Gerekli": Ne Gönderdim
- Telefonsuz App Store Ekran Görüntüleri: Robolectric, Sahte Görsel Yükleyici ve Başsız Tarayıcı
- İki Mağaza İçin Tek QR Kodu: Küçük Bir Yönlendirme Sayfası
- Davranışı Değiştirmeden Kotlin Multiplatform'a Geçiş: Eski Kodu Test Kâhini Olarak Tutmak
- "Diğer Oyunlarım" İçin Sunucusuz Uzak Liste: GitHub Pages'te Tek JSON Dosyası