M1 의 기본적인 개발환경 세팅은 끝마친 상태입니다(Rosetta, iterm, homebrew)
맥으로 개발을 한다면 위의 3가지는 기본적으로 세팅이 완료되어 있어야 합니다~!
노마드 코더(니콜라스) 의 영상이 제일 정확하고 따라하기 쉽기 때문에 해당 영상을 참고해서 세팅해주세요
https://www.youtube.com/watch?v=B26yiuC5zPM
2024/06/17 기준으로 작성된 버전이며, react-native의 업데이트에 따라 설정 방법이 바뀔 수 있기 때문에 정확한 설정은 react-native의 공식 문서를 참조하시길 바랍니다.
https://reactnative.dev/docs/set-up-your-environment
Set Up Your Environment · React Native
In this guide, you'll learn how to set up your environment, so that you can run your project with Android Studio and Xcode. This will allow you to develop with Android emulators and iOS simulators, build your app locally, and more.
reactnative.dev
MacBook Air (M1)
macOs : Sonoma 14.5
Xcode : 15.4
node : v20.14.0
nvm : 10.7.0
npm : 0.39.3
ruby : 3.3.2
rbenv : 1.2.0
watchman : 2024.05.06.00
cocoapods : 1.15.2
zava : openjdk 17.0.11
공통 세팅
1. Node.js, watchman 설치
watchman은 파일 변화를 감지 해주는 툴입니다.
brew install node
brew install watchman
2. ruby 설치
brew install ruby
3. cocodpods설치
sudo gem install cocoapods
pod --version
정상적으로 설치가 완료되면 pod --version 으로 설치된 버전을 확인할 수 있습니다.
brew install이 rosetta2 어쩌고 안되면 : arch -arm64 brew install [package] (터미널에 나온 에러메세지 그대로 해주시면 됩니다)
iOS 세팅
1. Xcode설치
https://developer.apple.com/download/all/?q=Xcode
예전 기억에 따르면 Xcode는 앱스토어보다 사이트에서 설치하는게 훨씬 시간이 단축돼서 이번에도 사이트에서 다운로드 해줍니다.
사이트에서 본인 macOs 에 맞는 버전을 설치하시면 됩니다.
(한동안 os 업데이트 안한 상태에서 최신버전인 Xcode 15.4 설치 했다가 os 버전 안맞다고 해서 업데이트부터 했네여..)
압축파일 푼 다음, app파일을 Applications 로 이동시켜주면 됩니다.
(기존에 xcode가 깔려있는 경우 replace!)
설치 후 Settings -> Locations 에서 Command Line Tools 에 문제 없이 선택 되어있는지 확인!
2. Simulator 추가
Xcode 설치가 끝났다면 Simulator을 추가해줘야 합니다.
Window -> Devices and Simulators 탭으로 이동 후 하단의 + 버튼을 클릭하여 원하는 simulator을 추가해주면 되는데 (react-native를 실행할때 기본적으로 iPhon 13이 지정되어 있는건지.. iPhone 13이 없으면 실행이 잘 안돼서 iPhone 13은 필수적으로 추가해줬습니다)
Android 세팅
1. java 17 설치
최신 reactive-native에서는 java17을 권장하기 때문에 해당 버전을 설치해줍니다.
brew install --cask zulu@17
# Get path to where cask was installed to double-click installer
brew info --cask zulu@17
java 경로 설정
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
java 가 정상적으로 설치되면 java --version 을 통해 버전 확인이 가능해야 합니다.
저는 openjdk@17을 설치했습니다 (julu, openjdk 둘 중 아무거나 설치해도 됩니다 17이기만 하면)
arch -arm64 brew install openjdk@17
// 권한 에러 나오면
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexe/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
// 컴파일 환경 설정 (선택사항)
export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"
//환경변수
echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
//버전 확인
java -version
2. Android Studio 설치
https://developer.android.com/studio?hl=ko
Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android Developers
Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today.
developer.android.com
저는Apple chip을 사용하고 있기 때문에 Mac with Apple chip 용 android studio를 설치해줍니다.
3. Android SDK
SDK Manager에서 sdk 경로 설정 및 추가적으로 필요한 tool들을 설치해줍니다.
1. More Actions -> SDK Manager
2. Open 옆의 .. -> SDK Manager
3. Settings -> Languages & Frameworks -> Android SDK
SDK Location을 지정 후 확인 해주시고
SDK Platforms(Show Package Details 클릭) : Android SDK Platform 34, Google APIs ARM 64 v8a System Image
SDK Tools : Android SDK Build-Toos (34가 설치되어 있어야함), Android SDK Command-line Tools (latest)
는 기본적으로 설치를 해줘야하고 저는 그냥 필요해 보이는거 추가적으로 더 설치했는데 필수인지는 모르겠네요..ㅎㅎ
4. Virtual Device 생성
Virtual Device Manager에서 가상머신을 등록해줍니다.
+ 버튼을 클릭해서 원하는 사이즈를 선택해주고(저는 Pixel 4 를 선택했습니다), system imageSMS 제 API Level 인 34에 맞게 UpsideDownCake로 지정해줬습니다.
5. ANDROID_HOME 환경변수 설정
설치가 완료되면 .zshrc 파일(또는 .zprofile 또는 .bash_profile, 또는 .bashrc 본인이 사용하는 config 파일에 맞게) 에서 환경변수 설정을 해줍니다.
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
제대로 설정되면 아래 명령어를 입력시 설정한 경로가 나와야합니다.
echo $ANDROID_HOME
6. local.properties android sdk 설정
android 폴더 밑에 local.properties 파일을 생성해 준 뒤 sdk 경로를 적어줍니다.
여기까지 진행해주시면 안드로이드를 위한 개발 환경 세팅도 갖춰졌습니다!
프로젝트 생성 및 실행
저는 기존에 expo cli를 설치했었는데 이게 react-native cli 를 설치할 때 충돌이 발생할 수 있기 때문에 전역으로 설치했던 npm 을 삭제 후 프로젝트 단위로 설치해주도록 하겠습니다.
npm uninstall -g react-native-cli @react-native-community/cli
npx react-native init [PROJECT_NAME]
// npx react-native init MyApp
CocoaPods now? y
여기서 설치를 하지 못했다면? 생성한 프로젝트 root에서
cd ios
pod install
iOS 프로젝트 실행
npx react-native run-ios
해당 코드를 입력하면 새로운 터미널이 열리고, 저는 ios를 구동시킬거라 i 를 입력해줍니다
시뮬레이터가 뜨고, 빌드가 오래걸려도 참고 기다리시면..!
success 가 뜨고 메인 화면이 나오게 됩니다.
난 13 말고 다른 시뮬레이터를 사용하고 싶다..?! 그럼 지정해주면 됩니다.(아니면 시뮬레이터를 먼저 구동 후 프로젝트를 실행하면 됩니다)
npx react-native run-ios --simulator='iPhone 15'
+ cocoapods 할때 ruby 와 gem 버전이 어쩌고 저쩌고 한다면
프로젝트만 생성하고
폴더 내의 Gemfile 에 명시되어있는 ruby version 을 본인이 사용하는 version 으로 변경 후 sudo gem install cocoapods 해주기
Android 프로젝트 실행
프로젝트를 실행하기 전에
Android Studio의 Device Manager에 들어가서 미리 등록해둔 가상디바이스를 먼저 구동시켜줍니다.
그 후 프로젝트를 실행해주시면 (경로는 프로젝트 root 입니다.)
npx react-native run-android
ios와 동일하게 새로운 터미널이 열리는데 여기서 안드로이드는 a를 입력해주면 됩니다.
build가 끝난 후 메인페이지가 뜬다면 구동 성공~!
분명 정리하면 간단한데 생각보다 작은 에러들을 맛봤던 react-native cli 세팅 과정..!
이상.. m1에서 react native 프로젝트 생성 완료입니다
궁금하신 점이 있다면 댓글로 남겨주세요~! (도움되는 답변을 드릴 수 있을지는 미지수지만..ㅎㅎ)
'React Native' 카테고리의 다른 글
[React Native] 카카오톡 로그인 연동 (0) | 2024.06.12 |
---|---|
[React Native] npx react-native run-ios 에러 (0) | 2023.05.19 |
[React Native] Xcode 에러 (0) | 2023.05.19 |
[React Native] TypeError: cli.init is not a function (0) | 2023.05.19 |