iPhone Simulator - Mensimulasikan koneksi yang lambat?

125

Apakah ada cara untuk memperlambat koneksi internet ke iPhone Simulator, sehingga dapat meniru bagaimana aplikasi akan bereaksi ketika Anda berada di tempat yang lambat di jaringan seluler?

Chris
sumber
Jawaban Alan harus diterima.
Stanislav Mayorov
@StanislavMayorov pertanyaan ini berasal dari 9 tahun yang lalu. Alan kemudian memberikan jawaban yang diperbarui 4 tahun kemudian. Sekarang 5 tahun setelah itu. Maaf saya tidak membahas dan mempertimbangkan kembali jawaban yang diterima pada pertanyaan lama saya.
Chris

Jawaban:

67

Aplikasi bernama SpeedLimit

https://github.com/mschrag/speedlimit

Bagus sekali.

chris

PyjamaSam
sumber
luar biasa baru saja mencobanya dan berhasil. Terima kasih!
Max MacLeod
Yosemite: gagal mengatur batas kecepatan
Injectios
2
Patah, katanyaFailed to set speed limit
vintagexav
1
Cara yang tepat untuk melakukan ini dijelaskan oleh Alan H. answer .
lifeisfoo
"Aku tidak lagi bisa mempertahankan proyek ini. Jangan ragu untuk mengambil dan mengambil kepemilikan."
catanore
261

Bagaimana cara menginstal Network Link Conditioner Apple

Instruksi ini berlaku mulai Oktober 2019.

Peringatan: Jika Anda baru saja memutakhirkan ke versi baru macOS, pastikan Anda menginstal Network Conditioner terbaru ( di Alat Tambahan untuk Xcode ) atau mungkin gagal ; yaitu, Anda akan menyalakannya tetapi tidak akan mencekik apa pun atau menjatuhkan paket apa pun.

Pembaruan: Pada Xcode 11, mungkin ada cara yang lebih sederhana untuk mensimulasikan kondisi jaringan pada perangkat tertambat; lihat posting blog ini . Untuk cara memengaruhi perangkat yang disimulasikan , lanjutkan di bawah, seperti sebelumnya.

  1. Instal Xcode jika Anda tidak memilikinya.

  2. Buka Xcode dan buka Xcode ›Buka Alat Pengembang› Alat Pengembang Lainnya…

    Cuplikan layar navigasi menu seperti yang dijelaskan

  3. Unduh Alat Tambahan untuk Xcode (cocok dengan versi Xcode Anda saat ini)

    Tautan pengunduhan IO Tools tambahan

  4. Buka gambar disk yang diunduh dan klik dua kali Network Link Conditioner .prefpane di bawah "Hardware" untuk menginstalnya.

    panel preferensi dalam DMG

    preferensi sistem menampilkan permintaan instalasi

  5. Itu dia!

    Cuplikan layar dari panel preferensi

  6. Pastikan untuk menyalakannya. Anda harus memilih profil dan mengaktifkan kondisioner jaringan dengan toggle besar yang seharusnya tidak asing lagi dari Prepane Time Machine.

    masukkan deskripsi gambar di sini

Peringatan

Ini tidak akan memengaruhi localhost, jadi pastikan untuk menggunakan server pentas atau komputer rekan kerja untuk mensimulasikan koneksi jaringan yang lambat ke API yang Anda jalankan sendiri. Anda mungkin menemukan https://ngrok.com/ membantu dalam hal ini.

Alan H.
sumber
6
untuk Xcode 8, ini termasuk dalam "Alat Tambahan untuk Xcode 8" (bukan "Alat Perangkat Keras IO untuk Xcode")
Mohit Singh
1
@MohitSingh Terima kasih. Saya telah memperbarui jawaban di atas.
Alan H.
1
Luar biasa! Terima kasih.
Thomás Calmon
1
Tampaknya tidak ada Alat Tambahan untuk Xcode 10.3?
Leo
1
@leo, cukup gunakan Alat Tambahan saat ini untuk versi utama Xcode yang Anda miliki. Misalnya, gunakan Alat Tambahan untuk Xcode 11 jika Anda memiliki Xcode 11.1 diinstal.
Alan H.
81

"Ada aplikasi untuk itu!" ;) Apple menyediakan panel preferensi "Network Link Conditioner" yang melakukan pekerjaan dengan cukup baik.

  • untuk versi Xcode sebelum 4.3, penginstal panel dapat ditemukan di Developerfolder Anda , misalnya "/Developer/Applications/Utilities/Network Link Conditioner", setelah instalasi, jika daemon gagal memulai dan Anda tidak ingin mem-boot ulang mesin Anda, cukup gunakan sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • jika Anda sudah selesai dengan Developerfolder, Anda dapat menginstal panel sebagai bagian dari paket "Hardware IO Tools for Xcode" yang tersedia melalui bagian unduhan tambahan Mac Dev Center.

Tautan ke halaman unduh (Anda harus masuk dengan ID Apple Anda): https://developer.apple.com/downloads/index.action
(kredit ke @nverinaud)

matm
sumber
2
Berikut ini tautan untuk menelusuri unduhan yang tersedia: developer.apple.com/downloads/index.action
nverinaud
2
tidak bekerja di Mountain Lion ... stackoverflow.com/questions/12414676/…
zack
akan lebih baik jika itu spesifik aplikasi, dan tidak untuk seluruh komputer
Charles John Thompson III
3
Anda dapat mengunduh "Perangkat Keras IO" dari situs alat pengembang Apple sekarang. Mereka memperbaruinya untuk rilis baru Xcode (dan dengan demikian OSX): Di Xcode, klik Xcode-> Open Developer Tool-> More Developer Tools..., masuk, temukan arsip terbaru, unduh, salin file di suatu tempat, klik dua kali panel preferensi Network Conditioner thingy, instal .. yay!
i_am_jorf
Saya kira tidak bekerja untuk Yosemite. Saya mengaturnya menjadi "lossy" tetapi sebenarnya tidak mendapatkan perbedaan
Injectios
2

Perlu juga disebutkan bahwa Xcode juga memiliki cara bawaan untuk perangkat , bukan simulator.

  • Cukup buka 'Perangkat dan Simulator' (cmmd+shift+2 )
  • Pilih perangkat Anda
  • Gulir ke bawah sampai Anda menemukan 'Kondisi Perangkat'
  • Tetapkan profil yang Anda inginkan
  • Tekan Mulai

masukkan deskripsi gambar di sini

Agar ini berfungsi, Anda perlu menginstal 'Network Link Conditioner'. Lihat langkah-langkah yang disebutkan dalam jawaban Alan

Madu
sumber
0

Tidak ada cara langsung untuk meniru koneksi yang lambat, tidak seperti, katakanlah, emulator koneksi jaringan yang bagus yang dinikmati pengembang blackberry. Namun, karena koneksi simulator Anda melewati komputer Anda - Anda bisa fokus pada memperlambat koneksi komputer Anda.

Anda ingin mencapai dua hal (tergantung pada keadaan Anda):

  • throttle bandwidth Anda
  • tingkatkan latensi Anda

Mungkin ini akan mengarahkan Anda ke arah yang benar:

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

Ada beberapa solusi open source yang bagus juga, tetapi saya tidak dapat mengingat nama mereka.

Pertanyaan ini mungkin membantu: Bagaimana cara membatasi lalu lintas jaringan untuk simulasi lingkungan?

JJ Rohrer
sumber
0

Saya berpendapat bahwa koneksi yang lambat tidak cukup untuk mensimulasikan perilaku jaringan data seluler yang sebenarnya - karena ada juga lebih banyak kehilangan paket, latensi yang lebih tinggi, dan lebih banyak koneksi yang terputus juga.

Berikut ini adalah skrip praktis untuk mengkonfigurasi firewall untuk meniru parameter ini:

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

Nick Dowell
sumber
2
Network Link Conditioner (alat dari Apple yang menginstal sebagai panel preferensi) mensimulasikan koneksi lambat, kehilangan paket, dan latensi.
n00neimp0rtant
Network Link Conditioner, ditambahkan di OS X Lion (dirilis pada Juli 2011), membuat skrip seperti ini tidak perlu.
Nick Dowell