Xcode 시뮬레이터 팁 모음

2023년 9월 18일 수정

이 글은 Xcode 팁 중 시뮬레이터와 관련된 부분만을 별도로 정리한 글이다. 이 외의 팁은 Xcode 팁 모음 글을 참고하자.

터미널에서 시뮬레이터 열기

터미널 등에서 CLI로 시뮬레이터를 열 때는 디바이스 UUID를 명확히 알아야 한다.

우선 아래 명령으로 시뮬레이터 리스트를 확보하자.

xcrun simctl list

목록에는 다양한 정보가 나타나는데, Devices라고 표시되는 항목에서 원하는 시뮬레이터를 찾아서 UUID를 복사해 놓자.

그 다음 이 UUID로 시뮬레이터를 기동해야 한다.

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUUID UUID

명령어가 좀 길다. 필요하다면 초기화 스크립트에 alias를 만들어두면 편하다.

이 명령은 포그라운드에서 돌아가기 때문에 Control C 키를 누르면 창이 꺼지면서 종료되어 버린다. 그런데 눈에 보이지 않는 시뮬레이터 GUI 프로세스는 별도이기 때문에 죽지 않고 살아 남아 있다. 완벽하게 종료하려면 시뮬레이터 창에서 Command Q 키나 메뉴에서 종료를 선택해 확실하게 종료 시켜 주는 편이 좋다.

오래된 시뮬레이터 삭제하기

Xcode 메뉴바에서 Window 를 눌러보면 Devices and Simulators 메뉴를 찾을 수 있다. 이걸 눌러보면 장치 관리 윈도우가 뜬다. 여기서 Simulators 탭을 선택해서 원하는 시뮬레이터를 삭제할 수 있다.

오래된 시뮬레이터 런타임 삭제하기

Xcode의 Preferences를 통해 특정 버전의 콤포넌트(components)를 설치한 경우 시뮬레이터 삭제만으로 제거할 수 없는 경우가 있는데 이 콤포넌트들은 공유 런타임이라 그렇다. 이걸 지우려면 터미널에서 아래 커맨드를 통해 런타임 디렉토리로 먼저 들어가보자.

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

여기 안에 각 버전에 해당하는 디렉터리들이 보인다. 이 디렉터리들을 루트 권한을 줘서 삭제하면 된다. 즉 아래와 같은 방식으로 삭제할 수 있다.

sudo rm -rf iOS\ xx.yy.simruntime

최신 버전 런타임은 여기에 위치하지 않으므로 최신 버전의 시뮬레이터에서만 테스트 하겠다면 다 지워도 무관한 것 같다.

시뮬레이터에서 이상한 배경색이 보일 때

메뉴에서 File - GPU Selection - Prefer Integrated GPU 항목을 선택하고 시뮬레이터를 재시작해보자. 잘 되면 원래대로 돌려도 무방한데 얼마 지난 뒤 다시 문제가 생겨서 또 같은 짓을 반복했다. 좀 더 상세한 내용은 iOS 시뮬레이터의 이상한 노란색(?) 문제 글을 참고하자.

시뮬레이터에서 커스텀 스킴 열기

커스텀 스킴을 테스트하기 위해서 기존에는 시뮬레이터 안에서 사파리의 주소줄에 URL을 입력하는 형태를 사용했었는데 이제는 터미널에서 xcrun 커맨드를 사용할 수 있다.

xcrun simctl openurl booted foo://bar

물론 이 방법이 좀 더 편하다.

기타 외부 링크