iOS 시뮬레이터에서 네트워크를 비활성화할 수 있습니까?
인터넷에서 기본 데이터를 가져오는 응용 프로그램에서 나타나는 일관성 없는 동작을 디버깅하려고 합니다.저는 시뮬레이터에서 문제가 보이지 않습니다. 기기에서만 문제가 발생합니다. 그래서 저는 시뮬레이터의 네트워크와 연결 환경을 재현하고 싶습니다.
시뮬레이터에서 네트워크를 비활성화할 수 있는 방법이 있습니까?
(저는 원격으로 Mac에 연결하여 코드를 작성하고 있으며, 지금은 다른 방법이 없기 때문에 OS 네트워크를 비활성화할 수 없습니다.)
간단한 패러데이 케이지를 사용하여 외부 RF 신호 레벨을 차단하거나 제한합니다.
알루미늄 호일로 직접 만들 수 있습니다.차단하려는 데이터 서비스의 파장보다 개구부가 더 작아야 합니다.
- 800MHz의 파장은 37cm(14")입니다.
- 1900MHz의 파장은 16cm(6")입니다.
이것은 패러데이 케이지 안에서 맥이 작업하기 어렵기 때문에 시뮬레이터보다 실제 장치에서 더 잘 작동합니다;-
예. Xcode에서 Open Developer Tools → More Developer Tools 메뉴로 이동하여 Network Link Conditioner가 포함된 "Additional Tools for Xcode"를 다운로드할 수 있습니다.
이 툴을 사용하면 다양한 네트워크 시나리오(예: 100% 손실, 3G, 지연 시간이 긴 DNS 등)를 시뮬레이션할 수 있으며 사용자 지정 시나리오도 만들 수 있습니다.
죄송합니다. 시뮬레이터는 OS가 사용하는 모든 네트워크 연결을 공유합니다.얼마 전에 네트워크 상태 시뮬레이션에 대한 Radar 버그 보고서를 제출했습니다. 당신도 그렇게 하는 것을 고려해 볼 수 있습니다.
제가 아는 iOS 시뮬레이터에서 네트워크를 비활성화하는 유일한 방법은 Little Snitch 또는 Hands Off와 같은 도구를 사용하는 것입니다.이를 통해 나가는 네트워크 연결과 들어오는 네트워크 연결을 거부/차단할 수 있습니다.
시뮬레이터 앱의 연결만 차단하도록 설정할 수 있습니다.방화벽처럼 작동합니다.
Mac OS X에서 Wi-Fi를 끄면 됩니다.이것은 아주 효과적입니다!
추가 도구 패키지 다운로드(네트워크 링크 컨디셔너)
시에라의 예:
Xcode는 이러한 기능을 제공하지 않으므로 타사 애플리케이션/도구를 사용해야 합니다.Mac 네트워크를 끄면 iOS Simulator 네트워크도 끄는데 도움이 됩니다.
시스템 기본 설정에서 Mac 인터넷 연결을 해제할 수 있습니다...네트워크를 연결하고 원하는 네트워크 소스를 끕니다.
Mac Wi-Fi 인터넷 소스를 끄려면(Mac이 Wi-Fi 인터넷 연결에 있는 경우):
4로 Xcode 4(?)에는 ./Applications/Utilities
라고 하는Network Link Conditioner
기존 프로파일 중 하나를 사용하거나 0kbit/s up/downlink를 사용하고 100% 삭제된 사용자 지정 프로파일을 생성합니다.
도메인에 되어 있는 해당 ./etc/hosts
로컬 네트워크의 존재하지 않는 IP 주소로 파일을 전송합니다.응용프로그램의 경우 인터넷 연결이 없거나 서버에 연결할 수 없는 경우와 동일합니다.
sudo nano /etc/hosts
다음 행을 추가합니다.
192.168.1.123 example.com
또는 사용127.0.0.1
로컬 컴퓨터에서 웹 서버를 실행하지 않는 경우.
Charles와 같은 타사 앱으로 인터넷 연결을 조절할 수 있습니다.
Mac에서 + +를 눌러 조절을 설정합니다.
iOS에서 네트워크 사용 안 함
맥에서 찰스 프록시 앱을 사용하는 것을 추천합니다.
네트워크 연결을 조정하기 위해 만들어진 대역폭 조절 기능을 사용할 수 있습니다.
조절 시작/중지 +
스로틀 설정...⌘ command + T + ⇧ shift
**을 통해 에는 프리셋을 생성합니다Add Preset
다운로드 및 업로드 대역폭 0 및 0을 사용하면 인터넷 연결을 시뮬레이션할 수 없습니다.또한 일부 특정 호스트에 대해서만 사용하도록 설정하면 매우 유용합니다.
또는 Simulator의 모든 트래픽이 컴퓨터를 통과하므로 Mac에서 연결을 사용하지 않도록 설정할 수 있습니다.
하나의 미친 아이디어 또는 패치:
네트워크 연결 가능성 플래그를 전환하기만 하면 됩니다.
이 코드는 '시뮬레이터 메모리 경고'를 트리거하여 실행 시 플래그를 전환하는 데 사용하며 완전히 안전합니다.코드가 디버그 모드에만 있어야 합니다.
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
Little Snitch를 사용하여 iOS 시뮬레이터에서 실행되는 프로세스를 포함한 모든 개별 프로세스에 대한 네트워크 트래픽을 차단할 수 있습니다.그렇게 하면 인터넷 연결을 유지하고 실행 중인 앱의 연결을 끊을 수 있습니다.
Xcode 8.3 및 iOS 10.3의 경우:
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off Wi-Fi")
XCUIDevice.shared().press(XCUIDeviceButton.home)
다을포함합니다야해를 포함해야 .@available(iOS 10.3, *)
테스트 스위트 파일의 맨 위에 있습니다.
원하는 경우 "비행기 모드 켜기"를 선택할 수도 있습니다.
시리가 와이파이를 끄거나 비행기 모드를 켜면 시리가 인터넷을 필요로 한다는 시리 대화를 해제해야 합니다.홈 버튼을 누르면 대화가 해제되고 앱으로 돌아갑니다.
당신은 OHTTPStubs를 사용하고 특정 URL에 대한 네트워크 요청을 스텁하여 실패할 수 있습니다.
iOS Simulator의 인터넷 연결을 비활성화하는 두 가지 방법이 있습니다.
- 네트워크 연결을 분리합니다.
- Wi-Fi 끄기
가장 간단한 방법입니다.
간단한 해결책은 Mac용 비행기 모드를 만드는 것입니다.이 작업을 수행하는 방법은 다음과 같습니다.
- 시스템 기본 설정에서 네트워크로 이동
- 위치 드롭다운 메뉴 클릭
- 더하기 아이콘을 클릭하여 새 위치를 추가합니다.
- 새 위치를 '비행기 모드' 또는 유사한 이름으로 지정하고 '완료'를 클릭합니다.
- 위치 드롭다운 메뉴에서 방금 만든 위치 선택
- 창 왼쪽의 목록에서 사용 가능한 각 네트워크 인터페이스를 차례로 클릭하여 각 인터페이스를 비활성화합니다.
- Configure iPv4(iPv4 구성) 메뉴를 클릭하고 Off(끄기)를 선택합니다.
- Wi-Fi의 경우, Wi-Fi 끄기 버튼을 클릭하십시오.
- 적용을 클릭하면 이 위치가 모든 네트워크 활동을 차단합니다.
네트워킹을 다시 설정하려면 위치 드롭다운 메뉴에서 자동을 선택하고 적용을 클릭합니다.
- 이 솔루션에 대한 크레딧: http://hints.macworld.com/article.php?story=20130325002258846
최소 두 개의 Wi-Fi 네트워크를 연결하는 것이 매우 간단한 방법이라면 iOS 시뮬레이터에서 버그를 사용하는 것입니다.
- 시뮬레이터(Cmd + )가 열려 있는 경우 종료
- Mac을 하나의 Wi-Fi 액세스 지점에 연결합니다(인터넷에 연결되어 있지 않을 수 있지만 상관 없음).
- 시뮬레이터(예: Xcode → Open Developer Tool → iOS Simulator)를 시작하고 로드되는 동안 기다립니다.
- Wi-Fi 네트워크를 다른 네트워크로 전환
- 이익
버그는 시뮬레이터가 아직 연결되지 않은 네트워크(IP?)를 사용하려고 한다는 것입니다.
시뮬레이터를 다시 시작하기 전까지는 인터넷에 연결되지 않으므로 (연결한 첫 번째 Wi-Fi 네트워크에 인터넷이 연결된 경우에도) (+) 프로젝트를 Cmd실행하고 Cmd(+) 프로젝트를 중지하여 연결 없이 시뮬레이터를 사용할 수 있지만 Mac은 연결됩니다.
그런 다음 연결된 시뮬레이터를 실행해야 할 경우 종료하고 실행하면 됩니다.
Mac에서 네트워크 링크 컨디셔너를 사용할 수 있습니다.Apple 개발자 웹 사이트에서 다운로드할 수 있습니다.이전 버전의 Xcode와 iOS를 구할 수 있는 곳에서 사용할 수 있어야 합니다.이 네트워크 컨디셔너를 사용하면 네트워크의 강도를 Wi-Fi에서 네트워크 없음으로 변경할 수 있습니다.
또한 네트워크 컨디셔너를 설치하면 시스템 기본 설정에 설치됩니다.
네트워크 연결을 중단해야 하는 경우 다음과 같은 이점을 살펴보십시오.
ipfw 또는 pfctl(FreeBSD/OSX) - 하위 수준 패킷 필터.localhost에서 포트에 대한 액세스 거부 예제 터미널에서 실행할 수 있는 네트워크를 사용하지 않도록 설정하려면 다음을(를) 참조하십시오.
pfctl -e
(echo "block all"; pfctl -sr) | pfctl -f -
필터링을 중지하려면:
pfctl -d
공유 무선 네트워크를 통한 시뮬레이션 3G 네트워크를 위한 스로틀(Mac)이 있었습니다.
대신 호스트의 네트워크를 사용하지 않도록 설정할 수 있습니다!
언급URL : https://stackoverflow.com/questions/4808433/is-it-possible-to-disable-the-network-in-ios-simulator
'source' 카테고리의 다른 글
OS X 매버릭스용 Eclipse Kepler 요청 Java SE 6 (0) | 2023.05.12 |
---|---|
IIS 7 AppPool ID를 SQL Server 로그온으로 추가 (0) | 2023.05.12 |
이클립스 ctrl+오른쪽은 아무 것도 하지 않습니다. (0) | 2023.05.12 |
코드에서 WPF 레이블에 텍스트를 추가하는 방법은 무엇입니까? (0) | 2023.05.12 |
Excel에서 날짜를 ISO 8601 형식으로 변환하는 방법 (0) | 2023.05.12 |