# ์ค์น
brew install watchman
sudo gem install cocoapods
# pod ๋ฒ์ ์
๋ฐ์ดํธํ๊ธฐ
# sudo gem update cocoapods
# ํ๋ก์ ํธ ์์ฑ
npx react-native@latest init ํด๋์ด๋ฆ
ruby ๋ฒ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด
# Ruby ๋ฒ์ ๋ง์ถฐ์ฃผ๊ธฐ
# 1. rbenv ์ค์น
brew install rbenv ruby-build
# 2. ruby ์ค์น
rbenv install 2.x.x
# 3. ruby ๋ฒ์ ๋ฒ๊ฒฝ
rbenv global 2.x.x
# 4. ruby path ์์
vi ~/.zshrc
# i๋ฅผ ๋๋ฌ ์
๋ ฅ๋ชจ๋๋ก => ์๋ ์ฝ๋๋ฅผ ๋งจ ์๋์ ๋ถ์ฌ๋ฃ๊ธฐ => :wq๋ก ์ ์ฅ ํ ๋ซ๊ธฐ
eval "$(rbenv init - zsh)"
Metro ๋ฒ๋ค๋ฌ ์์ํ๊ธฐ
yarn start
# ๋๋
# npx react-native start
# port ๋ฒํธ ๋ค๋ฅด๊ฒ ์์
# npx react-native start --port=8082
# ์บ์ ๋ฆฌ์
# npx react-native start --reset-cache
pod ์ค์น
cd ios
pod install
ios/.xcode.env ํ์ผ
// ios/.xcode.env ํ์ผ์์
// export NODE_BINARY=$(command -v node) ๋ฅผ
// export NODE_BINARY=your_node_path ๋ก ๋ฐ๊ฟ์ผ ํจ
export NODE_BINARY=/Users/myuser/.nvm/versions/node/v20.12.2/bin/node
ios ์คํ
npm run ios
# ๋๋
# npx react-native run-ios
# ํน์ ๊ธฐ๊ธฐ๋ก ์คํ
# npx react-native run-ios --simulator=\"iPhone 15 Pro\"
# ๊ธฐ๊ธฐ ํ์ธ
# xcrun simctl list devices
# ์ค์น
brew tap homebrew/cask-versions
brew install --cask zulu11
โ ๋ชจ๋ฐ์ผ ์๋ฎฌ๋ ์ด์ Android Studio ์ค์น
# ์ค์น
brew install --cask android-studio
(Android SDK
Android SDK Platform
Android Virtual Device
๊ฐ ์ฒดํฌ๋์ด ์๋์ง ํ์ธ ํ ์ค์นํ๊ธฐ)
โ Android Studio์ SDK Manager์ ๋ค์ด๊ฐ ๊ณต์๋ฌธ์๋ฅผ ๋ณด๋ฉฐ ์ค์ ํด์ฃผ๊ธฐ
โ Android Studio์ ์ค์ ์์ ๊ฒฝ๋ก ํ์ธ
# 1. ์์ ํ๋ฌ ๊ฐ๊ธฐ
vi ~/.zprofile
# 2. i๋ฅผ ๋๋ฌ ์
๋ ฅ๋ชจ๋๋ก => ์๋ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ => :wq๋ก ์ ์ฅ ํ ๋ซ๊ธฐ
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
# ํ๊ฒฝ ์ค์ ํ์ผ์ด ๋ก๋
source $HOME/.zprofile
# ๊ฒฝ๋ก ํ์ธํ๊ธฐ
echo $PATH
โ Metro ๋ฒ๋ค๋ฌ ์์ํ๊ธฐ
npm start
# ๋๋
# npx react-native start
โ android ์คํ
npm run android
# ๋๋
# npx react-native run-android
# ๋๋ฐ์ด์ค๋ค ํ์ธ
# emulator -list-avds
# ํน์ ๋๋ฐ์ด์ค ์คํ
# emulator -avd Pixel_8_Pro_API_33 & npx react-native run-android
# ios ์บ์ ์ ๊ฑฐ
cd ios
rm -rf Podfile.lock Pods
pod install
yarn ios
# android ์บ์ ์ ๊ฑฐ
cd android
./gradlew clean
./gradlew build
# ios
yarn cache clean
rm -rf ios/build ios/Pods node_modules
yarn install
cd ios && pod install && cd ..
yarn ios
# xcworkspace์์ ๋น๋ํ๊ธฐ
Shift + Command + K # ๋น๋ ์บ์ ์ด๊ธฐํ
Command + R # ๋ค์ ์คํ
npm start๋ก ์คํํ์ ๋
'watchman warging: Recrawled this...'์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด
# ์ฐจ๋ก๋๋ก ์
๋ ฅ
watchman watch-del-all
watchman shutdown-server
๊ทธ๋ผ์๋ ๊ณ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด ์ฌ์ค์น
watchman shutdown-server
brew update
brew reinstall watchman
watchman
a
์
๋ ฅ์ผ๋ก android๋ฅผ ์คํ์ํฌ ๋
'...AdbCommandRejectedException: closed'์ค๋ฅ๊ฐ ๋ฌ๋ค๋ฉด
# ์ฐจ๋ก๋๋ก ์
๋ ฅ
adb kill-server
adb start-server
'Task :app:compileDebugJavaWithJavac FAILED w: Detected multiple Kotlin daemon sessions at build/kotlin/sessi'
์๋๋ก์ด๋ ๋น๋ ์ค ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
android/build.gradleํ์ผ์ ์ด์ด์ kotlin์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
/* android/build.gradle */
buildscript {
ext {
buildToolsVersion = "33.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
kotlin_version = '1.6.10' // ์ถ๊ฐโญ๏ธ
ndkVersion = "23.1.7779620"
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") // ์ถ๊ฐโญ๏ธ
}
}
yarn react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'
์ ๋ง ์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค!