아직 m1 mac, arm64 운영체제에서 기존 방법으로 Xcode기반 react-native 빌드 시 오류가 발생한다.

이에 대응하여 m1 mac에서도 react-native 앱을 빌드하기 위해 x86_64기반으로 우회하여 빌드하는 방법을 소개한다.

 

 

- cd ${RN Project}/ios

먼저 빌드하고자 하는 프로젝트의 ios폴더로 이동한다.

 

- sudo xcode-select --switch /Applications/Xcode.app

빌드를 진행할 XCode 버전을 명시한다.

 

- sudo gem uninstall cocoapods

- sudo gem uninstall ffi

- sudo arch -x86_64 gem install cocoapods

- sudo arch -x86_64 gem install ff

 

gem(rubygem): ruby에서 지원하는 패키지 관리 시스템(package manager)이다.

cocoapods: XCode에서 사용하는 ruby 기반 종속성 관리자다. (Spring Boot 프로젝트에서 gradle을 사용했던 것 처럼)

ffi(ruby-ffi): ruby에서 지원하는 외부 함수 인터페이스다. 동적으로 라이브러리를 로드하고, ruby기반의 함수를 바인딩하고 호출하는 기능을 제공한다.

 

cocoapods와 ffi는 ios/XCode 기반으로 react-native앱을 빌드할 때 필요한데, 문제는 아직 m1 mac arm64 운영체제와 완전한 호환이 되지 않는다는 것이다. 따라서 기존 cocoapods, ffi를 삭제하고 x86_64 운영체제 기반으로 재설치한다.

 

6. arch -x86_64 npm i --force

 

7. arch -x86_64 pod install

 

 

cd ..

 

XCode 앱의 Build Setting으로 들어가서

 

8. Build Active Architecture Only -> 전부 No

 

9. excluded architecture -> 전부 arm64 등록

 

node파일이 /usr/local/bin/node에 존재하지 않아 오류가 발생할 경우

(sudo ln -s /opt/homebrew/bin/node /usr/local/bin/node)

 

10. npx react-native run-ios

+ Recent posts