iPhone Simulator - Yavaş bir bağlantıyı simüle etmek mi?


125

Hücresel ağda yavaş bir noktada olduğunuzda Uygulamanın nasıl tepki verebileceğini taklit etmek için iPhone Simulator'a internet bağlantısını yavaşlatmanın bir yolu var mı?


Alan'ın cevabı kabul edilmelidir.
Stanislav Mayorov

@StanislavMayorov bu soru 9 yıl öncesinden. Alan daha sonra 4 yıl sonra güncellenmiş bir cevap verdi. Şimdi bundan 5 yıl sonra. Maalesef eski sorularımda kabul edilen yanıtları gözden geçirmiyorum ve yeniden düşünmüyorum.
Chris

Yanıtlar:



261

Apple'ın Network Link Conditioner'ı nasıl kurulur

Bu talimatlar Ekim 2019 itibarıyla geçerlidir.

Uyarı: macOS'in yeni sürümüne yeni yükselttiyseniz , en son Ağ Düzenleyiciyi ( Xcode için Ek Araçlar'da ) yüklediğinizden emin olun , aksi takdirde sessizce başarısız olabilir ; yani, onu açacaksınız ama hiçbir şeyi kısmayacak veya herhangi bir paketi düşürmeyecek.

Güncelleme: Xcode 11'den itibaren, bağlı cihazlarda ağ koşullarını simüle etmenin daha da basit bir yolu olabilir; bkz bu blog yazısı . Simüle edilen cihazların nasıl etkileneceği hakkında daha önce olduğu gibi aşağıdan devam edin.

  1. Elinizde yoksa Xcode'u yükleyin.

  2. Xcode'u açın ve Xcode'a gidin ›Geliştirici Aracını Aç› Diğer Geliştirici Araçları…

    Açıklandığı gibi menüde gezinmenin ekran görüntüsü

  3. Xcode için Ek Araçlar indirin (mevcut Xcode sürümünüzle eşleşen)

    Ek IO Araçları indirme bağlantısı

  4. İndirilen disk görüntüsünü açın ve yüklemek için "Donanım" altındaki Network Link Conditioner .prefpane öğesini çift tıklayın.

    DMG'de pref bölmesi

    kurulum istemini gösteren sistem tercihleri

  5. Oraya gidiyoruz!

    Tercih bölmesinin ekran görüntüsü

  6. Açtığınızdan emin olun. Bir profil seçmek gerekir ve Zaman Makinesi PrefPane gelen tanıdık gelecektir büyük geçiş ile ağ kremi sağlar.

    görüntü açıklamasını buraya girin

Uyarı

Bu, localhost'u etkilemeyecektir, bu nedenle, kendi çalıştırdığınız bir API'ye yavaş ağ bağlantılarını simüle etmek için bir hazırlama sunucusu veya iş arkadaşınızın bilgisayarı kullandığınızdan emin olun. Bu konuda https://ngrok.com/ yararlı bulabilirsiniz .


6
Xcode 8 için bu, "Xcode 8 için Ek Araçlar" a dahildir ("Xcode için Donanım GÇ Araçları" yerine)
Mohit Singh

1
@MohitSingh Teşekkürler. Yukarıdaki cevabı güncelledim.
Alan H.

1
İnanılmaz! Teşekkür ederim.
Thomás Calmon

1
Xcode 10.3 için Ek Araçlar yok gibi görünüyor?
Leo

1
@leo, sahip olduğunuz ana Xcode sürümü için mevcut Ek Araçları kullanın. Örneğin, kullanmak Xcode 11 Ek Araçlar varsa Xcode 11.1 yüklü.
Alan H.

81

"Bunun için bir uygulama var!" ;) Apple, işi oldukça iyi yapan "Network Link Conditioner" tercih bölmesini sağlar.

  • 4.3'ten önceki Xcode sürümleri için, bölme yükleyicisi Developerklasörünüzde bulunabilir, örneğin "/Developer/Applications/Utilities/Network Link Conditioner", kurulumdan sonra, arka plan programı başlatılamazsa ve makinenizi yeniden başlatmak istemiyorsanız, sadece şunu kullanın: sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • zaten Developerklasörle işiniz bittiyse , bölmeyi Mac Dev Center ek indirmeler bölümünde bulunan "Xcode için Donanım IO Araçları" paketinin bir parçası olarak yükleyebilirsiniz.

İndirme sayfasına bağlantı (Apple kimliğinizle giriş yapmalısınız): https://developer.apple.com/downloads/index.action
(@nverinaud kredisi)


2
İşte mevcut indirmelere göz atmak için bir bağlantı: developer.apple.com/downloads/index.action
nverinaud

2
Mountain Lion üzerinde çalışmıyor ... stackoverflow.com/questions/12414676/…
zack

uygulamaya özel olsaydı ve tüm bilgisayar için olmasaydı iyi olurdu
Charles John Thompson III

3
"Hardware IO Tools" u Apple'ın geliştirici araçları sitesinden şimdi indirebilirsiniz. Xcode'un yeni sürümleri (ve dolayısıyla OSX) için güncellerler: Xcode'da, Xcode-> Open Developer Tool-> öğesini tıklayın More Developer Tools..., en son arşivi bulun, indirin, dosyaları bir yere kopyalayın, Ağ Koşullandırıcı tercih bölmesine çift tıklayın, yükleyin .. . Yaşasın!
i_am_jorf

Sanırım Yosemite için çalışmıyor. Onu "kayıplı" olarak ayarladım ama aslında hiçbir fark görmedim
Injectios

2

Ayrıca Xcode'un simülatör değil cihazlar için yerleşik bir yolunun olduğunu da belirtmek gerekir .

  • "Cihazlar ve Simülatör" e gidin ( cmmd+shift+2)
  • Cihazını seç
  • 'Cihaz Koşulları'nı bulana kadar aşağı kaydırın
  • İstediğiniz profili ayarlayın
  • Başla

görüntü açıklamasını buraya girin

Bunun çalışması için 'Network Link Conditioner'ı yüklemeniz gerekir. Alan'ın yanıtında bahsedilen adımlara bakın


0

Böğürtlen geliştiricilerinin hoşlandığı güzel ağ bağlantısı öykünücüsünün aksine, yavaş bir bağlantıyı taklit etmenin doğrudan bir yolu yoktur. Bununla birlikte, simülatörünüzün bağlantısı bilgisayarınızdan geçtiği için, bilgisayarınızın bağlantısını yavaşlatmaya odaklanabilirsiniz.

İki şeye ulaşmak isteyeceksiniz (koşullarınıza bağlı olarak):

  • bant genişliğinizi kısın
  • gecikmenizi artırın

Belki bu sizi doğru yöne yönlendirir:

http://www.macosxhints.com/article.php?story=20080119112509736

Bazı iyi açık kaynaklı çözümler de var, ancak isimlerini hatırlayamıyorum.

Bu soru yardımcı olabilir: Ortam simülasyonu için ağ trafiği nasıl kısılır?


0

Yavaş bir bağlantının gerçek iş mobil veri ağı davranışını simüle etmek için yeterli olmadığını iddia ediyorum - çünkü çok daha fazla paket kaybı, daha yüksek gecikme süreleri ve daha fazla kesilen bağlantı da var.

İşte güvenlik duvarını bu parametreleri taklit edecek şekilde yapılandırmak için kullanışlı bir komut dosyası:

http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html


2
Network Link Conditioner (Apple'ın tercih bölmesi olarak yüklenen aracı) yavaş bağlantıları, paket kaybını ve gecikmeyi simüle eder.
n00neimp0rtant

OS X Lion'da eklenen (Temmuz 2011'de piyasaya sürülen) Network Link Conditioner, bu gibi komut dosyalarını gereksiz kılar.
Nick Dowell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.