iPhone Simulator - จำลองการเชื่อมต่อที่ช้า?


125

มีวิธีชะลอการเชื่อมต่ออินเทอร์เน็ตกับ iPhone Simulator หรือไม่เพื่อเลียนแบบว่าแอปอาจตอบสนองอย่างไรเมื่อคุณอยู่ในจุดที่ช้าบนเครือข่ายเซลลูลาร์


คำตอบของอลันควรได้รับการยอมรับ
Stanislav Mayorov

@StanislavMayorov คำถามนี้มาจากเมื่อ 9 ปีที่แล้ว จากนั้นอลันก็ให้คำตอบที่อัปเดตในอีก 4 ปีต่อมา ตอนนี้เป็นเวลา 5 ปีหลังจากนั้น ขออภัยฉันไม่ผ่านและพิจารณาคำตอบที่ยอมรับสำหรับคำถามเก่าของฉันอีกครั้ง
คริส

คำตอบ:


67

แอปที่ชื่อว่า SpeedLimit

https://github.com/mschrag/speedlimit

ใช้งานได้ดี

คริส


เจ๋งแค่ลองใช้แล้วก็ทำธุรกิจได้ ขอบคุณ!
Max MacLeod

Yosemite: ไม่สามารถกำหนดขีด จำกัด ความเร็ว
Injectios

2
พังก็บอกFailed to set speed limit
vintagexav

1
วิธีที่เหมาะสมในการทำเช่นนี้จะอธิบายโดยคำตอบที่อลันเอช
lifeisfoo

"ฉันไม่สามารถดูแลโครงการนี้ได้อีกต่อไปโปรดอย่าลังเลที่จะแยกและเป็นเจ้าของ"
catanore

262

วิธีติดตั้ง Network Link Conditioner ของ Apple

คำแนะนำเหล่านี้เป็นข้อมูล ณ เดือนตุลาคม 2019

คำเตือน: หากคุณเพียงแค่การปรับรุ่นเป็นรุ่นใหม่ของ MacOS, ให้แน่ใจว่าคุณติดตั้งแอร์เครือข่ายมากล่าสุด ( เครื่องมือเพิ่มเติมสำหรับ Xcode ) หรือมันอาจเงียบล้มเหลว ; นั่นคือคุณจะเปิดใช้งาน แต่จะไม่เร่งอะไรหรือปล่อยแพ็กเก็ตใด ๆ

อัปเดต: ใน Xcode 11 อาจมีวิธีที่ง่ายกว่าในการจำลองสภาพเครือข่ายบนอุปกรณ์เชื่อมต่อ ดูโพสต์บล็อกนี้ สำหรับวิธีส่งผลต่ออุปกรณ์จำลองให้ดำเนินการต่อด้านล่างเช่นเดิม

  1. ติดตั้ง Xcode หากคุณไม่มี

  2. เปิด Xcode แล้วไปที่ Xcode› เปิดเครื่องมือสำหรับนักพัฒนา› เครื่องมือสำหรับนักพัฒนาเพิ่มเติม ...

    ภาพหน้าจอของการนำทางเมนูตามที่อธิบายไว้

  3. ดาวน์โหลดเครื่องมือเพิ่มเติมสำหรับ Xcode (ตรงกับ Xcode เวอร์ชันปัจจุบันของคุณ)

    ลิงค์ดาวน์โหลด IO Tools เพิ่มเติม

  4. เปิดภาพดิสก์ที่ดาวน์โหลดมาและดับเบิลคลิกที่ Network Link Conditioner .prefpane ภายใต้“ Hardware” เพื่อติดตั้ง

    บานหน้าต่าง pref ใน DMG

    การตั้งค่าระบบแสดงพร้อมต์การติดตั้ง

  5. เราจะไปที่นั่น!

    ภาพหน้าจอของบานหน้าต่างการตั้งค่า

  6. อย่าลืมเปิดเครื่อง คุณต้องเลือกโปรไฟล์และเปิดใช้งานตัวปรับสภาพเครือข่ายด้วยการสลับขนาดใหญ่ที่ควรคุ้นเคยจาก Time Machine prefpane

    ใส่คำอธิบายภาพที่นี่

ข้อแม้

สิ่งนี้จะไม่ส่งผลกระทบต่อ localhost ดังนั้นอย่าลืมใช้เซิร์ฟเวอร์การจัดเตรียมหรือคอมพิวเตอร์ของเพื่อนร่วมงานเพื่อจำลองการเชื่อมต่อเครือข่ายที่ช้าไปยัง API ที่คุณใช้งานเอง คุณอาจพบว่าhttps://ngrok.com/ มีประโยชน์ในเรื่องนี้


6
สำหรับ Xcode 8 จะรวมอยู่ใน "เครื่องมือเพิ่มเติมสำหรับ Xcode 8" (แทน "Hardware IO Tools for Xcode")
Mohit Singh

1
@MohitSingh ขอบคุณ ฉันได้อัปเดตคำตอบด้านบนแล้ว
Alan H.

1
! ที่น่าตื่นตาตื่นใจ ขอบคุณ.
Thomás Calmon

1
ดูเหมือนจะไม่มีเครื่องมือเพิ่มเติมสำหรับ Xcode 10.3?
ลีโอ

1
@leo เพียงใช้เครื่องมือเพิ่มเติมปัจจุบันสำหรับ Xcode เวอร์ชันหลักที่คุณมี ตัวอย่างเช่นใช้เครื่องมือเพิ่มเติมสำหรับ Xcode 11หากคุณติดตั้งXcode 11.1
Alan H.

81

"มีแอพนี้!" ;) Apple มีบานหน้าต่างการตั้งค่า "Network Link Conditioner" ที่ทำงานได้ดีทีเดียว

  • สำหรับ Xcode เวอร์ชันก่อน 4.3 คุณสามารถพบตัวติดตั้งบานหน้าต่างได้ในDeveloperโฟลเดอร์ของคุณเช่น"/Developer/Applications/Utilities/Network Link Conditioner"หลังการติดตั้งหาก daemon ไม่สามารถเริ่มต้นได้และคุณไม่ต้องการรีบูตเครื่องของคุณให้ใช้ sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • หากคุณใช้Developerโฟลเดอร์เสร็จแล้วคุณสามารถติดตั้งบานหน้าต่างเป็นส่วนหนึ่งของแพ็คเกจ "Hardware IO Tools for Xcode" ที่มีอยู่ในส่วนดาวน์โหลดเพิ่มเติมของ Mac Dev Center

ลิงก์ไปยังหน้าดาวน์โหลด (คุณต้องเข้าสู่ระบบด้วย Apple ID ของคุณ): https://developer.apple.com/downloads/index.action
(เครดิตไปที่ @nverinaud)


2
นี่คือลิงค์สำหรับเรียกดูการดาวน์โหลดที่มีอยู่: developer.apple.com/downloads/index.action
nverinaud

2
ไม่ทำงานกับ Mountain Lion ... stackoverflow.com/questions/12414676/…
zack

จะดีถ้าเป็นแอปเฉพาะไม่ใช่สำหรับคอมพิวเตอร์ทั้งเครื่อง
Charles John Thompson III

3
คุณสามารถดาวน์โหลด "Hardware IO Tools" จากไซต์เครื่องมือสำหรับนักพัฒนาของ Apple ได้แล้ว พวกเขาอัปเดตสำหรับ Xcode รุ่นใหม่ (และ OSX): ใน Xcode คลิกXcode-> Open Developer Tool-> More Developer Tools...เข้าสู่ระบบค้นหาที่เก็บถาวรล่าสุดดาวน์โหลดคัดลอกไฟล์ที่ใดที่หนึ่งคลิกสองครั้งที่บานหน้าต่างการตั้งค่า Network Conditioner ติดตั้ง .. . เย้!
i_am_jorf

ฉันเดาว่าใช้ไม่ได้กับ Yosemite ฉันตั้งค่าเป็น "lossy" แต่จริงๆแล้วไม่ได้รับความแตกต่างเลย
Injectios

2

นอกจากนี้ยังควรค่าแก่การกล่าวถึงด้วยว่า Xcode มีวิธีการสร้างขึ้นสำหรับอุปกรณ์ไม่ใช่โปรแกรมจำลอง

  • ไปที่ 'อุปกรณ์และโปรแกรมจำลอง' ( cmmd+shift+2)
  • เลือกอุปกรณ์ของคุณ
  • เลื่อนลงจนพบ 'Device Conditions'
  • ตั้งค่าโปรไฟล์ที่คุณต้องการ
  • กดเริ่ม

ใส่คำอธิบายภาพที่นี่

เพื่อให้ทำงานได้คุณต้องติดตั้ง 'Network Link Conditioner' ดูขั้นตอนที่กล่าวถึงในคำตอบของ Alan


0

ไม่มีวิธีโดยตรงในการเลียนแบบการเชื่อมต่อที่ช้าซึ่งแตกต่างจากตัวจำลองการเชื่อมต่อเครือข่ายที่ดีที่นักพัฒนา blackberry ชอบ อย่างไรก็ตามเนื่องจากการเชื่อมต่อของโปรแกรมจำลองของคุณผ่านคอมพิวเตอร์คุณจึงสามารถมุ่งเน้นไปที่การชะลอการเชื่อมต่อคอมพิวเตอร์ของคุณได้

คุณจะต้องบรรลุสองสิ่ง (ขึ้นอยู่กับสถานการณ์ของคุณ):

  • เร่งแบนด์วิดท์ของคุณ
  • เพิ่มเวลาในการตอบสนองของคุณ

บางทีนี่อาจจะชี้ให้คุณไปในทิศทางที่ถูกต้อง:

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

มีโซลูชันโอเพ่นซอร์สที่ดีเช่นกัน แต่ฉันจำชื่อไม่ได้

คำถามนี้อาจช่วยได้: จะเร่งปริมาณการใช้งานเครือข่ายสำหรับการจำลองสภาพแวดล้อมได้อย่างไร


0

ฉันขอยืนยันว่าการเชื่อมต่อที่ช้านั้นไม่เพียงพอที่จะจำลองพฤติกรรมเครือข่ายข้อมูลมือถือที่ใช้งานได้จริง - เนื่องจากยังมีการสูญเสียแพ็กเก็ตมากขึ้นเวลาแฝงที่สูงขึ้นและการเชื่อมต่อที่ลดลงมากขึ้นด้วย

นี่คือสคริปต์ที่มีประโยชน์ในการกำหนดค่าไฟร์วอลล์เพื่อจำลองพารามิเตอร์เหล่านี้:

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


2
Network Link Conditioner (เครื่องมือจาก Apple ที่ติดตั้งเป็นบานหน้าต่างกำหนดค่าตามความชอบ) จำลองการเชื่อมต่อที่ช้าการสูญเสียแพ็กเก็ตและเวลาแฝง
n00neimp0rtant

Network Link Conditioner ซึ่งเพิ่มใน OS X Lion (เปิดตัวในเดือนกรกฎาคม 2554) ทำให้สคริปต์เช่นนี้ไม่จำเป็น
Nick Dowell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.