Xcode/iPhone SIM을 사용하여 여러 아이폰을 시뮬레이션하는 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/896487

  •  23-08-2019
  •  | 
  •  

문제

여러 사용자가 필요한 게임을 계획하고 있으며 iPhone 시뮬레이터의 여러 인스턴스를 발사 할 수있는 방법이 있는지 궁금합니다. 메뉴 나 Google 검색 결과에서는 아무것도 보지 못했지만 아무것도 놓치지 않았는지 확인하고 싶었습니다.

도움이 되었습니까?

해결책

내가 알 수있는 한, 시뮬레이터 실행의 여러 인스턴스를 가질 수있을뿐만 아니라 실제 장치 테스트를위한 시간이 오면 디버거의 여러 인스턴스를 실행할 수 없습니다.

이는 다중 장치 앱을 수행하는 것을 의미합니다. 앱을 실행하는 각각의 iPhone/Touch 장치 (또는 시뮬레이터 인스턴스)에 단일 Mac이 할당되어 있어야합니다.

VMware 또는 Parallels가 어떻게 든 이것에 가져올 수 있는지 여부를 조사하기 시작했지만 OS를 해킹하지 않고 할 수있는 일은 많지 않습니다.

기능 요청을 제출하는 것이 좋습니다 http://bugreporter.apple.com.

다른 팁

가능하지만 여러 사용자만으로 가능합니다.

이것을 읽으십시오 : http://www.coderebel.com/2010/08/31/iphone_simulator

동시에 디버그하려는 두 개의 프로젝트 (P1, P2)가 있다고 가정하면 다음과 같이 수행하십시오.

설정 단계 :

  1. Mac에서 새 사용자 (U2) 생성
  2. P2, 특히 빌드 폴더에 R/W에 액세스하십시오.
  3. 위 사이트에서 런처 앱을 다운로드하여 응용 프로그램에 복사하십시오.

디버깅 단계 :

  1. 실행중인 경우 Xcode 및 시뮬레이터를 닫습니다
  2. U1을 사용하여 iPhone Launcher.App을 시작하십시오.
  3. U1로 Xcode를 시작하고 P1을로드하고 디버깅을 시작하십시오.
  4. U2와 함께 iPhone 런처를 시작하십시오.
  5. U2로 Xcode를 시작하고 P2를로드하고 디버깅을 시작하십시오.

불행히도 지금은 사용자를 변경 해야하는 피타이지만 지금까지는 더 나은 솔루션을 찾지 못했습니다. 도움이 되었기를 바랍니다.

여러 사용자를 사용하지 않고 쉽게 수행 할 수있는 방법이 있습니다. 그래도 디버거에 연결되지 않음을 명심하십시오. 아래의 설명은 Xcode 6+. 이 설명을 건너 뛰고 아래의 랩핑 구간으로 스크롤하면 아래로 스크롤 할 수 있습니다.

대답에서 여기 명령 줄에서 모든 시뮬레이터를 시작할 수 있음을 알 수 있습니다.

Open -a "iOS 시뮬레이터" -Args -CurrentDeviceudid

실행하여 DeviceID (및 모든 시뮬레이터)를 찾을 수 있습니다. xcrun simctl list 콘솔에서 명령. 이와 같은 목록을 생성합니다. 장치 ID는 브레이스의 코드입니다.

== Runtimes ==
iOS 8.3 (8.3 - 12F69) (com.apple.CoreSimulator.SimRuntime.iOS-8-3)
== Devices ==
-- iOS 8.3 --
    iPhone 4s (99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8) (Shutdown)
    iPhone 5 (K262AF11-ADD2-4FDA-ACBA-8C80DD9D4AA1) (Shutdown)
    iPhone 5s (337KDC51-0A4B-47DB-8966-83562FD92C93) (Shutdown)
    iPhone 6 Plus (9GK714E2-F713-4F98-A96E-C72ACD6571A8) (Shutdown)
-- iOS 8.2 --
    etc continued....

따라서 위의 예를 사용하여 시뮬레이터를 실행하려면 콘솔 에서이 명령을 실행하십시오.

open -n /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

우리는 사용합니다 -n 대신 깃발 -a 플래그는 파일을 열기 위해 사용할 응용 프로그램을 지정하고 -n 플래그는 이미 실행중인 경우에도 응용 프로그램의 새 인스턴스를 엽니 다. 사용 man open 이 모든 것을 아는 명령.

또한 시뮬레이터에 대한 올바른 경로가 있는지 확인하십시오.

이와 같이 시뮬레이터를 실행하면 시뮬레이터가 제한되어있을 가능성이 있습니다. 그리고 제한된 이래로 이미 화면에있는 방해하지 않고 시작할 수 있습니다. 우리는이 답변에서 이것을 해결할 수 있습니다 여기 그가 당신에게 방법을 보여줍니다 create a new simulator and delete one.

그래서 모든 것을 감싸십시오. 여기에 당신이 그것을 시작하기 위해하는 일이 있습니다.

a) 먼저 시뮬레이터를 시작하기 전에 시뮬레이터를 만듭니다.

사용법 : simctl "이름" "장치 유형 ID" "런타임 ID"생성

xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"

명령에서 런타임 ID를 찾을 수 있습니다 xcrun simctl list 명령 나는 위에서 달렸다. 위의 명령을 실행하면 DeviceID가 콘솔 화면에 인쇄됩니다. 아래에 표시된 시뮬레이터를 시작하기 위해 마지막 인수로 필요한대로 주목하십시오. 이 ID라고 가정합시다 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

b) 시작하십시오

open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

c) 시뮬레이터가 완료되면 삭제

xcrun simctl delete 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

이 모든 것이 쉬운 실행을 위해 단일 .sh 파일에 배치 할 수 있습니다. 참고하십시오 wait 또는 sleep 이 모든 것을 sh 파일에 넣기로 결정한 경우 각 명령 후 명령.

편집 2017Xcode 9는 이제 여러 시뮬레이터를 지원할 것입니다. 그것이 어떻게 작동하는지 기다리고 있습니다.

Mac OS X 서버 라이센스가있는 경우 또 다른 옵션 (아마도 과잉)은 Mac OS X 서버의 인스턴스를 가상화하고 VM에서 두 번째 시뮬레이터를 실행하는 것입니다.

흠 ... 나는 당신이 여기서 아무것도 놓치고 있다고 생각하지 않습니다. 내가 아는 한 SDK 내에 여러 장치를 모방 할 수있는 기술이 없지만 유용한 기능이 될 것입니다. 유일한 옵션은 두 번째 iPhone OS 장치를 얻거나 iPhone OS 장치가있는 친구에게 테스트에 사용할 수있는 친구를 얻는 것입니다.

Xcode 4에서는 디버그 모드에있는 동안 여러 인스턴스를 실행할 수 있습니다.

내가 한 일은 내 목표의 복제본을 만들고 원본과 복제본을 모두 실행하는 것이 었습니다. 출력 창을 사용하는 경우보고있는 출력을 전환 할 수 있습니다.

다음 단계를 따라 앱을 테스트하십시오.

먼저 전체 프로세스를 위해 한 가지 작업을 수행해야합니다. 프로젝트로 이동 -> 프로젝트 설정 편집 -> 옵션의 진드기 - 독립 대상을 병렬로 빌드하십시오.

  1. 시뮬레이터에서 앱을 생성하는 디버그 코드는 예를 들어 앱 이름입니다.
  2. 시뮬레이터를 닫습니다
  3. Go to Project->New Target -> Instance2 Add "Bundle display name : Instance2" in Instance2.info.plist file Set Executable Name : Instance2 Select Instance2 Target -> Go to Project -> Set Active Target -> Instance2 Build with Instance2

참고 : 모든 것을 신중하게 수행하십시오. 그렇지 않으면 시뮬레이터를 재설정하려면 시뮬레이터 재설정 -> 실행 시뮬레이터 -> iPhone 시뮬레이터 -> 컨텐츠 및 설정을 재설정해야합니다 ...

이제 시뮬레이터에 두 개의 앱이 있으며 모든 인스턴스에서 앱을 테스트 할 수 있습니다.

그것이 당신을 도울 수 있기를 바랍니다 :)

답변을 결합하여 작동하게했습니다. IVSTY ~와 함께 이 하나.

기본적으로, 당신이하는 일은 두 사용자 (a와 b)를 생성하고, 각각에서 시뮬레이터를 실행하고, 사용자 B에서 VNC 서버를 실행 한 다음 사용자 A에서 사용자를 전환 할 필요없이 화면 B에 연결하는 것입니다.

Xcode 9 on에서 지원됩니다.

(출처 : WWDC 2017)

예, 이제 가능하고 매우 쉽습니다. 당신이 필요로하는 유일한 것은입니다 xctool, Facebook과 Ruby Gem의 빌드 도구. Ruby Gem은 테스트 중에 필요한 시뮬레이터를 생성/파괴하는 데 도움이됩니다.

이 링크에서 전체 문서를 읽을 수 있습니다.

https://github.com/plu/parallel_ios_tests

이 접근법을 사용하고 있으며 동시에 4 개의 iOS 시뮬레이터에서 테스트를 실행합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top