다음의 단축키를 사용하면 매번 폰을 손에 들고 미친 듯이 흔들어서(Shake) 개발자 메뉴를 띄울 필요가 전혀 없다.
iOS 시뮬레이터 (Mac)
Android 에뮬레이터
# 연결된 디바이스 목록 확인
adb devices
# Metro 프로세스 좀비 처리
lsof -ti:8081 | xargs kill
안드로이드 실기기에 긴 텍스트/토큰 복붙하기
PC에서 복사한 아주 긴 테스트용 토큰이나 비밀번호를 안드로이드 실기기 화면에 쳐야 할 때, 카톡으로 보내서 복사할 필요 없다. 터미널에 아래와 같이 치면 기기 화면의 인풋창에 글씨가 타이핑된다.
adb shell input text "여기에_원하는_긴_영어_텍스트"
딥링크(Deep Link) 테스트
myapp://details?id=123 같은 딥링크를 테스트할 때, 매번 기기의 메모장 앱을 켜서 타이핑하고 누를 필요 없다. 터미널에서 쏘면 기기에서 앱이 바로 켜진다.
xcrun simctl openurl booted "myapp://details?id=123"adb shell am start -W -a android.intent.action.VIEW -d "myapp://details?id=123"좀비 프로세스 종료하기 (킬)
# 패키지명으로 킬
adb shell am force-stop com.[패키지명]
# 패키지명 모를 때 확인
adb shell pm list packages | grep [패키지명]
adb emu kill
# 여러 대 중 특정 것만
adb -s emulator-5554 emu kill
xcrun simctl terminate booted com.woka_app
# 현재 켜진 것 전부
xcrun simctl shutdown all
# 특정 UDID만
xcrun simctl shutdown [UDID]

ios, android 를 왔다갔다하며 시뮬레이터 / 에뮬레이터 / 실기기 등 여러 테스트를 하기 위해 기기를 왔다갔다하며 개발을 하곤 한다. 이때, 효율적인 CPU 사용을 위해, 사용하지 않는 이전 실행 프로세스들을 제거하는게 좋을 것이다. 어떤 것을 어떻게 종료해야할까?
ios 시뮬레이터
cmd + q 를 누르면 완벽종료된다. Simulator 앱 자체를 끄는 거라 PC 메모리에서 깔끔하게 해제되며 걱정 안 해도 된다.
android 에뮬레이터
창의 x버튼을 누르면 된다. 얘도 PC의 메모리에 해제된다.
usb에 연결한 실기기
pc 입장에서는 아무런 영향이 없다. USB는 그냥 통신 채널이라, 뽑아도 앱은 기기에서 살아있어. 기기 메모리를 잡아먹는 건 맞는데, 어차피 개발 중엔 앱 켜져 있어야 하니까 실질적으로 문제는 없다.
단, 시뮬레이터 / 에뮬레이터를 종료해도, usb를 뽑아도, metro는 별개 프로세스라 계속 살아있다. 터미널에서 ctrl + c 눌러야 메트로까지 정리하면 되고, 이렇게 되면 완벽 종료된다.