iPhone Simulator - Mô phỏng kết nối chậm?


125

Có cách nào để làm chậm kết nối internet với Trình mô phỏng iPhone, để bắt chước cách Ứng dụng có thể phản ứng khi bạn ở một vị trí chậm trên mạng di động?


Câu trả lời của Alan nên được chấp nhận.
Stanislav Mayorov

@StanislavMayorov câu hỏi này có từ 9 năm trước. Alan sau đó đã đưa ra một câu trả lời cập nhật 4 năm sau đó. Bây giờ là 5 năm sau đó. Xin lỗi tôi không trải qua và xem xét lại câu trả lời được chấp nhận cho câu hỏi cũ của tôi.
Chris

Câu trả lời:


67

Một ứng dụng có tên SpeedLimit

https://github.com/mschrag/speedlimit

Công trình tuyệt vời.

chris.


tuyệt vời chỉ cần thử nó ra và nó làm kinh doanh. Cảm ơn!
Max MacLeod

Yosemite: thất bại trong việc đặt giới hạn tốc độ
Tiêm chích vào

2
Bị hỏng, nó nóiFailed to set speed limit
vintagexav

1
Đúng cách để làm điều này được giải thích bởi Alan H. câu trả lời .
lifeisfoo

"Tôi không còn có thể duy trì dự án này. Xin vui lòng rẽ nhánh và sở hữu."
catanore

260

Cách cài đặt Bộ điều hòa liên kết mạng của Apple

Các hướng dẫn hiện hành kể từ tháng 10 năm 2019.

Cảnh báo: Nếu bạn vừa nâng cấp lên phiên bản macOS mới, hãy đảm bảo bạn đã cài đặt Bộ điều hòa mạng mới nhất ( trong Công cụ bổ sung cho Xcode ) hoặc nó có thể bị lỗi âm thầm ; nghĩa là, bạn sẽ bật nó lên nhưng nó sẽ không điều tiết bất cứ thứ gì hoặc làm rơi bất kỳ gói tin nào.

Cập nhật: Kể từ Xcode 11, có thể có một cách thậm chí đơn giản hơn để mô phỏng các điều kiện mạng trên các thiết bị được kết nối; thấy bài blog này . Để biết cách ảnh hưởng đến các thiết bị mô phỏng , hãy tiếp tục bên dưới, như trước đây.

  1. Cài đặt Xcode nếu bạn không có nó.

  2. Mở Xcode và truy cập Xcode xông vào Công cụ dành cho nhà phát triển mở Thêm công cụ dành cho nhà phát triển khác

    Ảnh chụp màn hình điều hướng menu như mô tả

  3. Tải xuống Công cụ bổ sung cho Xcode (khớp với phiên bản Xcode hiện tại của bạn)

    Liên kết tải xuống công cụ IO bổ sung

  4. Mở hình ảnh đĩa đã tải xuống và nhấp đúp vào Điều hòa liên kết mạng .prefpane trong mục Phần cứng cứng để cài đặt nó.

    khung pref trong DMG

    tùy chọn hệ thống hiển thị nhắc nhở cài đặt

  5. Chúng ta đi đây!

    Ảnh chụp màn hình của khung ưu tiên

  6. Hãy chắc chắn để bật nó lên. Bạn cần chọn một cấu hình kích hoạt bộ điều hòa mạng với nút chuyển đổi lớn quen thuộc từ bộ tiền thời gian của cỗ máy thời gian.

    nhập mô tả hình ảnh ở đây

Hãy cẩn thận

Điều này sẽ không ảnh hưởng đến localhost, vì vậy hãy chắc chắn sử dụng máy chủ dàn hoặc máy tính của đồng nghiệp để mô phỏng các kết nối mạng chậm với API mà bạn đang tự chạy. Bạn có thể thấy https://ngrok.com/ hữu ích trong vấn đề này.


6
đối với Xcode 8, điều này được bao gồm trong "Công cụ bổ sung cho Xcode 8" (thay vì "Công cụ IO phần cứng cho Xcode")
Mohit Singh

1
@MohitSingh Cảm ơn. Tôi đã cập nhật câu trả lời ở trên.
Alan H.

1
Kinh ngạc! Cảm ơn bạn.
Thomás Calmon

1
Dường như không có Công cụ bổ sung nào cho Xcode 10.3?
Leo

1
@leo, chỉ cần sử dụng Công cụ bổ sung hiện tại cho phiên bản chính của Xcode mà bạn có. Ví dụ: sử dụng Công cụ bổ sung cho Xcode 11 nếu bạn đã cài đặt Xcode 11.1 .
Alan H.

81

"Có một ứng dụng cho điều đó!" ;) Apple cung cấp ngăn tùy chọn "Network Link conditioner" thực hiện công việc khá tốt.

  • đối với các phiên bản Xcode trước 4.3, trình cài đặt khung có thể được tìm thấy trong Developerthư mục của bạn , ví dụ: "/Developer/Applications/Utilities/Network Link Conditioner"sau khi cài đặt, nếu trình nền không khởi động được và bạn không muốn khởi động lại máy, chỉ cần sử dụng sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • nếu bạn đã hoàn tất với Developerthư mục, bạn có thể cài đặt ngăn như một phần của gói "Công cụ IO phần cứng cho Xcode" có sẵn thông qua phần tải xuống bổ sung của Mac Dev Center.

Liên kết đến trang tải xuống (bạn phải đăng nhập bằng ID Apple của mình): https://developer.apple.com/doads/index.action
(tín dụng cho @nverinaud)


2
Đây là đường dẫn để duyệt các bản tải xuống có sẵn: developer.apple.com/doads/index.action
nverinaud

2
không hoạt động trên Mountain Lion ... stackoverflow.com/questions/12414676/ từ
zack

sẽ rất tuyệt nếu nó là ứng dụng cụ thể và không phải cho toàn bộ máy tính
Charles John Thompson III

3
Bạn có thể tải xuống "Công cụ IO phần cứng" từ trang công cụ dành cho nhà phát triển của Apple ngay bây giờ. Họ cập nhật nó cho các bản phát hành mới của Xcode (và do đó là OSX): Trong Xcode, nhấp Xcode-> Open Developer Tool-> More Developer Tools..., đăng nhập, tìm tệp lưu trữ mới nhất, tải xuống, sao chép các tệp ở đâu đó, nhấp đúp vào ngăn tùy chọn Điều hòa mạng, cài đặt nó .. vâng
i_am_jorf

Tôi đoán không làm việc cho Yosemite. Tôi đặt nó thành "lossy" nhưng thực sự không có sự khác biệt nào
Tiêm chích vào

2

Điều đáng nói là Xcode cũng được tích hợp sẵn cho các thiết bị , không phải giả lập.

  • Chỉ cần đi 'Thiết bị và Trình mô phỏng' ( cmmd+shift+2)
  • Chọn thiết bị của bạn
  • Cuộn xuống cho đến khi bạn tìm thấy 'Điều kiện thiết bị'
  • Đặt hồ sơ mong muốn của bạn
  • Nhấn Bắt đầu

nhập mô tả hình ảnh ở đây

Để làm việc này, bạn cần cài đặt 'Điều hòa liên kết mạng'. Xem các bước đề cập trong câu trả lời của Alan


0

Không có cách trực tiếp nào để giả lập kết nối chậm, không giống như, trình giả lập kết nối mạng đẹp mà các nhà phát triển blackberry thích. Tuy nhiên, vì kết nối của trình giả lập của bạn đi qua máy tính của bạn - bạn chỉ cần tập trung vào việc làm chậm kết nối máy tính của mình.

Bạn sẽ muốn đạt được hai điều (tùy thuộc vào hoàn cảnh của bạn):

  • điều tiết băng thông của bạn
  • tăng độ trễ của bạn

Có lẽ điều này sẽ chỉ cho bạn đi đúng hướng:

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

Cũng có một số giải pháp nguồn mở tốt, nhưng tôi không thể nhớ tên của chúng.

Câu hỏi này có thể giúp: Làm thế nào để điều tiết lưu lượng mạng cho mô phỏng môi trường?


0

Tôi sẽ lập luận rằng một kết nối chậm không đủ để mô phỏng hành vi mạng dữ liệu di động thực tế - vì cũng mất nhiều gói hơn, độ trễ cao hơn và nhiều kết nối bị mất hơn.

Đây là một kịch bản tiện dụng để cấu hình tường lửa để mô phỏng các tham số này:

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


2
Điều hòa liên kết mạng (công cụ từ Apple cài đặt dưới dạng khung ưu tiên) mô phỏng các kết nối chậm, mất gói và độ trễ.
n00neimp0rtant

Điều kiện liên kết mạng, được thêm vào trong OS X Lion (phát hành vào tháng 7 năm 2011), làm cho các tập lệnh như thế này không cần thiết.
Nick Dowell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.