Czy istnieje sposób na spowolnienie połączenia internetowego z symulatorem iPhone'a, aby naśladować reakcję aplikacji, gdy znajdujesz się w wolnym miejscu w sieci komórkowej?
Czy istnieje sposób na spowolnienie połączenia internetowego z symulatorem iPhone'a, aby naśladować reakcję aplikacji, gdy znajdujesz się w wolnym miejscu w sieci komórkowej?
Odpowiedzi:
Failed to set speed limit
Niniejsza instrukcja jest aktualna na październik 2019 r.
Ostrzeżenie: Jeśli właśnie zaktualizowałeś system macOS do nowej wersji, upewnij się, że zainstalowałeś najnowszą wersję Network Conditioner ( w Dodatkowych narzędziach dla Xcode ). W przeciwnym razie może po cichu zawieść ; to znaczy, że włączysz go, ale niczego nie dusi ani nie upuszcza pakietów.
Aktualizacja: od Xcode 11 może istnieć jeszcze prostszy sposób symulacji warunków sieciowych na urządzeniach podłączonych do sieci; zobacz ten wpis na blogu . Aby dowiedzieć się, jak wpłynąć na symulowane urządzenia, kontynuuj poniżej, jak poprzednio.
Zainstaluj Xcode, jeśli go nie masz.
Otwórz Xcode i przejdź do Xcode ›Otwórz narzędzie programistyczne› Więcej narzędzi programistycznych…
Pobierz dodatkowe narzędzia dla Xcode (pasujące do Twojej bieżącej wersji Xcode)
Otwórz pobrany obraz dysku i kliknij dwukrotnie panel Network Link Conditioner .pref w sekcji „Sprzęt”, aby go zainstalować.
No to jedziemy!
Pamiętaj, aby go włączyć. Musisz wybrać profil i włączyć kondycjoner sieciowy za pomocą dużego przełącznika, który powinien być znany z panelu wstępnego Time Machine.
Nie wpłynie to na localhost, więc pamiętaj, aby użyć serwera przejściowego lub komputera współpracownika do symulacji wolnych połączeń sieciowych z interfejsem API, który sam uruchamiasz. W tym względzie pomocne może być https://ngrok.com/ .
„Jest do tego aplikacja!” ;) Apple udostępnia panel preferencji „Network Link Conditioner”, który całkiem dobrze wykonuje to zadanie.
Developer
folderze, np. "/Developer/Applications/Utilities/Network Link Conditioner"
po instalacji, jeśli demon nie uruchamia się i nie chcesz ponownie uruchamiać komputera, użyj sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
Developer
folderem, możesz zainstalować panel jako część pakietu „Sprzętowe narzędzia we / wy dla Xcode” dostępnego w sekcji dodatkowych plików do pobrania Mac Dev Center.Link do strony pobierania (musisz zalogować się za pomocą swojego Apple ID): https://developer.apple.com/downloads/index.action
(kredyty do @nverinaud)
Xcode
-> Open Developer Tool
-> More Developer Tools...
, zaloguj się, znajdź najnowsze archiwum, pobierz, skopiuj pliki gdzieś, kliknij dwukrotnie w panel preferencji Network Conditioner, zainstaluj go. . yay!
Warto również wspomnieć, że Xcode ma również wbudowaną drogę dla urządzeń , a nie symulatora.
cmmd+shift+2
)Aby to działało, musisz zainstalować „Network Link Conditioner”. Zobacz kroki wymienione w odpowiedzi Alana
Nie ma bezpośredniego sposobu na emulację wolnego połączenia, w przeciwieństwie do, powiedzmy, fajnego emulatora połączenia sieciowego, z którego korzystają programiści blackberry. Ponieważ jednak połączenie symulatora przechodzi przez komputer - możesz po prostu skupić się na spowolnieniu połączenia komputera.
Będziesz chciał osiągnąć dwie rzeczy (w zależności od okoliczności):
Może to wskaże ci właściwy kierunek:
http://www.macosxhints.com/article.php?story=20080119112509736
Jest też kilka dobrych rozwiązań open source, ale nie pamiętam ich nazw.
Może pomóc to pytanie: jak ograniczyć ruch sieciowy na potrzeby symulacji środowiska?
Twierdziłbym, że wolne połączenie nie wystarczy, aby zasymulować zachowanie w rzeczywistej sieci danych mobilnych - ponieważ jest też znacznie więcej utraty pakietów, większe opóźnienia i więcej zerwanych połączeń.
Oto przydatny skrypt do skonfigurowania zapory ogniowej do emulacji tych parametrów:
http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html