react-native run-ios can not find any simulator가 나타났을 때

react-native 개발을 함부로 덤볐다가 발생한 대참사 - native code를 건드려야 되는 상황이 되었을 때다. 필자는 ios, android개발을 해본적이 없는 생 초짜이기때문에, 네이티브 에러가 날 경우 시간소모가 굉장히 심한 편이다. 각오 하고 개발해야할듯 하다.. 이 에러는 해결했지만 정작 풀어야 하는 에러는 해결 못하여 아직 진행중이다..

<환경 체크>
react : 16.5.0
react-native : 0.59.5(https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz)
node : 11.12.0
yarn : 1.15.2


여튼,
react-native run-ios can not find any simulator 에러가 나타났을 경우에 처리법은 다음과 같습니다.

말 그대로 어떤 simulator을 찾지 못해서 나타난 에러인데, 하단에 에러메세지를 보게되면 

/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js

이 경로를 볼 수 있을 것입니다. 이 경로대로 들어가보면 아래와 같은 내용을 볼 수 있을 것입니다.


저 빨간줄이 문제입니다. if문에서 startWith하는데...  들어오는 device 목록들을 보면 'iOS'가 아닙니다..아니 근데 startWith로 해놓은거 실화냐..? 들어오는거 콘솔로 찍으면 아래처럼 나옵니다..

전혀 아니죰.. 흠 substring 처리를 하던가 해놨어야되는데 facebook 기술자가 매우 바쁜가 봅니다..(아님 정신차리고 하라고 일부로 해놨을수도 있음)

그래서 우리는 이걸.. 바꾸면 됩니다. 뭘로? includes로. 위 소스 주석에 보면 

Making sure the version of the simulator is an iOS or tvOS (Removes Apple Watch, etc)

라고 써져 있습니다. iOS인지 tvOS인지 확인해야된다는건데요.watch만 걸러내면 되니까 건드릴게 업죠, includes로 바꿔줍니다. 아래 사진처럼요




이렇게 하고 다시 실행시키면 에러가 사라집니다!!

facebook에서 에러를 처리해줄거라 생각하는데, 언제인지 모르니 우선 이렇게 해야합니다..

그리고 잊지 마셔야 하는게 만약 package.json변화가 생기는 경우 includes가 startWith로 다시 변하니 항상 체크해줘야 합니다. facebook이 처리해줄때까지..!

그럼 이 포스트는 여기서 마칩니닷. 기타 궁금한 사항은 댓글 주세요










댓글

이 블로그의 인기 게시물

mac 환경변수 설정에 대한 정보