์๋ ํ์ธ์,
React Native Environment Info:
System OS: macOS High Sierra 10.13.6
Binaries:
Node: 8.11.3 - /usr/local/bin/node
npm: 5.6.0 - /usr/local/bin/npm
IDEs:
Xcode: 10 Beta 3
npmPackages:
react: 16.4.1
react-native: 0.56.0
๊ฐ๋จํ RN 0.56 ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๋ ค๊ณ ํ ๋ ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
warning: Skipping duplicate build file in Compile Sources build phase: <PATH_TO_PROJECT>/node_modules/react-native/React/Modules/RCTRedBoxExtraDataViewController.m (in target 'React-tvOS')
...
warning: duplicate output file '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h' on task: PBXCp <PATH_TO_PROJECT>/node_modules/react-native/Libraries/Image/RCTResizeMode.h <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h (in target 'React')
...
error: Multiple commands produce '<PbxCp <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h>':
1) Target 'React-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
2) Target 'React' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
error: Multiple commands produce '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h':
1) Target 'double-conversion-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
2) Target 'double-conversion' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
...
xcodebuild -project <PATH_TO_PROJECT>/ios/ReactNativeSimple.xcodeproj -scheme ReactNativeSimple archive -sdk iphoneos -archivePath <PATH_TO_PROJECT>/output/build/archive/ReactNativeSimple CODE_SIGN_STYLE=Automatic
" react-native init "๋ช
๋ น์ผ๋ก ์์ฑ ๋ ๊ฐ๋จํ RN ์ ํ๋ฆฌ์ผ์ด์
์์ ํ
์คํธํ์ต๋๋ค.
Xcode 10 GUI๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น๋ํ๋ ค๊ณ ํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋น๋๋ฉ๋๋ค.
ํ์ง๋ง xcodebuild ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋น๋ํ๋ ค๊ณ ํฉ๋๋ค. ์์ ์ค๋ฅ๋ก ์ธํด ์คํจํ์ต๋๋ค.
Xcode 9.4.1์ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์
(RN 0.56)์์ ๋์ผํ ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋น๋๋ฉ๋๋ค.
xcodebuild ๋ช
๋ น์ -sdk
param์ ์ง์ ํ์ง ์์ผ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋น๋๋ฉ๋๋ค.
์ฐธ๊ณ : _Xcode 10 ๋ฒ ํ ๋ฒ์ ์ ๋ฐ๋ผ ์ค๋ฅ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค ._
RN 0.56์ Xcode 10 Beta๋ฅผ ์ง์ํฉ๋๊น?
์ด๋ป๊ฒ ๊ณ ์น ์ ์์ต๋๊น?
Xcode 10 Beta๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋น๋ ์์คํ
์ Legacy๋ก ๋ณ๊ฒฝํด ๋ณผ ์ ์์ต๋๋ค.
ํ์ผ> ์์
๊ณต๊ฐ ์ค์ > ๋น๋ ์์คํ
> ๋ ๊ฑฐ์ ๋น๋ ์์คํ
.
์๋ก์ด ๋น๋ ์์คํ ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
์ ๋น๋ ์์คํ ์ด ์ง์๋์ด์ผํฉ๋๋ค. ์ด ์์ ์์ ์ฌ๋๋ค์ด Xcode 10 ๋๋ ์๋ก์ด ๋น๋ ์์คํ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ณ ์์ต๋๋ค : https://github.com/facebook/react-native/issues/19573
์ธ๋ป๋ณด๊ธฐ์ ๊ทํ์ ๋ฌธ์ ๊ฐ ์ง๊ธ๊น์ง master์์ ์์ ํ ์ฌํญ์ผ๋ก ํด๊ฒฐ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ชฉ๋ก์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
๋ํ libReact.a
& libyoga.a
์์ Multiple commands produce
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ์ฌ์ฉํ๊ณ ์๋ค :
0.57.0
์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด Podfile
์ ์ด๊ฒ์ ์ถ๊ฐํ์ต๋๋ค.
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ฌ์ฉํ์ฌ Pod ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋น๋ํ์ญ์์ค.
$ pod install
์ ์ฒด ํ๊ฒฝ ์ธ๋ถ ์ ๋ณด :
React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Memory: 4.10 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
IDEs:
Xcode: 10.0/10A255 - /usr/bin/xcodebuild
npmPackages:
react: 16.5.0 => 16.5.0
react-native: 0.57.0 => 0.57.0
npmGlobalPackages:
create-react-native-app: 1.0.0
react-native-cli: 2.0.1
@PaulMest ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํ๋์ง ํ์ธ Pods
ํ๋ก์ ํธ์ Targets์์ Xcode์์ Yoga๋ฅผ ์๋์ผ๋ก ์ญ์ ํ๋ฉด RN 0.57 ์ด์ ์ ์ค๋ณต ๋์ ๋น๋ ์ค๋ฅ๋ ๋ฐ์์ํจ React๋ก ์์
ํ๋ฏ์ด ์๋ํฉ๋๋ค.
xcodebuild
๊ฒฝ์ฐ์ด -UseModernBuildSystem=NO
์ ์ถ๊ฐํ์ฌ ์ด์ ๋ ๊ฑฐ์ ๋น๋ ์์คํ
์ ์ ํํ์ญ์์ค.
@PaulMest ๊ฐ์ฌํฉ๋๋ค.
์ ์ํฉ์ด ๋ฌธ์ ํด๊ฒฐ์ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ค์์ ์ ์ฒด ์ถ๋ ฅ์ ๋๋ค.
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/src/Resources/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
๊ธฐ๋ณธ์ ์ผ๋ก react-native-vector-icons
๋ฐ native-base
๋ชจ๋ ๋์ผํ ๊ธ๊ผด ํ์ผ์ ๋ฒ๋ค๋ก ์ ๊ณตํฉ๋๋ค. (๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ด์ ์์๋ ์ฐ๋ฆฌ๋ ๊ทธ๋ค ์ค ํ๋๋ฅผ ๋ฒ๋ค๋ก ๋ฌถ์ด ๋์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ ๊ฑฐ ํ ๊ฒ์
๋๋ค.) Xcode 10 / Mojave๋ก ์
๋ฐ์ดํธํ๊ธฐ ์ ์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ ์ผํ ๋ณ๊ฒฝ ์ฌํญ์ Xcode 9์์ Xcode 10์ผ๋ก ์
๋ฐ์ดํธํ๋ ๊ฒ์
๋๋ค.
@ntomallen react-native-vector-icons
๋ฐ native-base
์ค๋ณต ๊ธ๊ผด๊ณผ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ๊ฒฐ๊ตญ ๋์ ์ฑ์ Copy Resources To Bundle
์น์
์์ ์ค๋ณต ๋ ๊ธ๊ผด์ ์ ๊ฑฐํ์ต๋๋ค. ๊ทธ ํ, ๋ด ํ๋ก์ ํธ๊ฐ ๋ค์ ์๋ํ์ต๋๋ค (๊ธ์์, ์ฌ๊ธฐ์ ์ค๋ช
๋ ๋ ๊ฐ์ง ์ค๋ฅ๋ก ์ด๋ํ์ต๋๋ค .libfishhook.a๋ฅผ ์ฐพ์ ์ ์์-์์ ๋ฐ ์ฌ๋ฌ ๋ช
๋ น์ผ๋ก libReact.a ๋ฐ libyoga.a ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ง๊ธ๊น์ง ๋ด ์ฑ์ด ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์์ผ๋ฉฐ XCode 10์ ์๋ก์ด ๋น๋ ์์คํ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ํ ์ ์์ต๋๋ค.
_ ๋ฉด์ฑ ์กฐํญ : ์ ๋ ๊ฒฝํ ๋ง์ iOS ๊ฐ๋ฐ์๊ฐ ์๋๋ฉฐ ์ด๋ฌํ ์๋ฃจ์ ์ ํจ๊ป ํดํนํ์ต๋๋ค. ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ์ ์๋ง์ผ๋ก ๋ง๋ค ์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค ._
๊ทธ๊ฒ์ ๋์๊ฒ๋ ํจ๊ณผ๊ฐ ์์๋ ๊ฒ์
๋๋ค! ์ง๊ธ์ ์ ๊ฐ์๊ธฐ ์ค๋ฅ๊ฐ ๋ฌ์ง๋ง ์ด์ ์๋ ๊ทธ๋ ์ง ์์์ง ์ฌ์ ํ ๊ถ๊ธํฉ๋๋ค.
2018 ๋
9 ์ 26 ์ผ ์คํ 2:49 -0400, Niels Bokmans [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@ntomallen ๋๋ react-native-vector-icons ๋ฐ native-base์ ์ค๋ณต ๊ธ๊ผด๊ณผ ๋๊ฐ์ ๋ฌธ์ ์
์ง๊ธ๊น์ง ๋ด ์ฑ์ด ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์์ผ๋ฉฐ XCode 10์ ์๋ก์ด ๋น๋ ์์คํ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ํ ์ ์์ต๋๋ค.
๋ฉด์ฑ ์กฐํญ : ์ ๋ ๊ฒฝํ ๋ง์ iOS ๊ฐ๋ฐ์๊ฐ ์๋๋ฉฐ ์ด๋ฌํ ์๋ฃจ์ ์ ํจ๊ป ํดํนํ์ต๋๋ค. ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ์ ์๋ง์ผ๋ก ๋ง๋ค ์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ๋ณด๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐํ์ญ์์ค.
@ntomallen ๊ธฐ๋ณธ์ ์ผ๋ก ์๋กญ๊ณ "๋ ์๊ฒฉํ"๋น๋ ์์คํ ์ด ์๊ณ XCode 10์ด ๊ธฐ๋ณธ์ ์ผ๋ก์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ฉด XCode 9์์๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ฌ์ฉํด์จ "๋ ๊ฑฐ์"๋น๋ ์์คํ ๋ณด๋ค ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ์ ํํด์ผํ์ต๋๋ค. ์ง๊ธ๊น์ง.
ํ์ธ. ์ด๊ฒ์ ๋ฏธ์น ์ง์ ๋๋ค. ๋ ๊ฑฐ์ ๋น๋ ์์คํ ์ผ๋ก ์ ํํ์ต๋๋ค. ์ด์ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
/Users/michaelstelly/Documents/projects/mobile_gtm/node_modules/react-native/React/../third-party/glog-0.3.4/src/base/mutex.h:105:10: fatal error: 'config.h' file not found
#include "config.h" // to figure out pthreads support
๋๋ ์ด๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ช ๋ฐฑํ ๊ฒ ์ธ์๋ ํ์ผ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ Xcode 10 ์ด์ ์๋ ๋น๋ ๋ฌธ์ ๊ฐ ์ ํ ์์์ต๋๋ค.
@mjstelly ๋น์ ์ 0.57์ ์์ต๋๊น? ์ค๋ฅ ๋ฉ์์ง์ glog-0.3.4
๊ฐ ์ธ๊ธ๋์ด ์์ง๋ง 0.57์ glog-0.3.5
ํฉ๋๋ค. ์ต์ ๋ฆด๋ฆฌ์ค์์ ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ณ ์๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค.
@PaulMest ๋ด ์์ ! ๊ฐ์ฌํฉ๋๋ค!
์๋ ํ์ธ์ @mjstelly
ํ์ฌ์ ์ ์ฌํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๊น .....
๋๋ xcode 10์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค
Xcode 10.1์ ๋ ์์คํ ๋ชจ๋์์ ์ ๋น๋๋๋ ๊ฒ ๊ฐ์ง๋ง ๋ ์ค ํ๋์์ ๋ง์ ๋น๋ ์ค๋ฅ๋ฅผ ๋ณด๊ดํ ์ ์์ต๋๋ค. ์ด์ ๋ฌด์์ํด์ผํฉ๋๊น?
์ข ๋ ๊ตฌ์ฒด์ ์ด์ด์ผํฉ๋๋ค. Xcode 10์ MacOS 10.12.6 ๋ฐ RN 0.57.0์์ ์ ๋น๋ ๋ฐ ์์นด์ด๋ธ๋ฉ๋๋ค (์ง๊ธ ๊ธฐ์ตํ์ง ์๋ ์ผ๋ถ ์ค๋ฅ๋ฅผ ํด๊ฒฐ ํ ํ).
๋ด Podfile post_install์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-google-maps'
target.build_configurations.each do |config|
config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
end
end
if target.name == "React"
target.remove_from_project
end
if target.name == 'yoga'
target.remove_from_project
target.build_configurations.each do |config|
config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO'
config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
end
end
end
end
@PaulMest ์ ์ ์์ ๋ฐ๋ผ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
@njbmartin ๊ฐ์ฌํฉ๋๋ค!
๋น์ ์ ์์ ๋ง์ด ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค
-UseModernBuildSystem = ์๋์
์ด๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ์ด๊ฑธ ์ฐพ๋ ๋ฐ ๋๋ฌด ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค. ๊ฐ์ฌ.
๋ ๊ฑฐ์ ๋น๋ ์์คํ ์ผ๋ก ์ ํํ๋ฉด ๋ง์ ๋น๋ ์ค๋ฅ๊ฐ ์์ ๋์ง๋ง ํฅํ ์ต์ ์์คํ ์ ์ฌ์ฉํ ์ ์์ด์ผํฉ๋๋ค.
๋ํ ์ถํ ํด์ฃผ์ ๋ถ๋ค๊ป ์ฆ๊ฑฐ์ด ๊ฐ์ฌ๋ฅผ๋๋ฆฝ๋๋ค!
์, ์ ๋ฒ์ ์ ๋ฌผ๋ก ์ข์ง๋ง ๊ทธ๋ ๊ฒ ๋ถ๋๋ฝ์ง๋ ์์ต๋๋ค.
์ํ์ผ๋ก ์
๊ทธ๋ ์ด๋ํ์ญ์์ค.
@PaulMest ๊ฐ์ฌํฉ๋๋ค. ํดํน์ด ์๋ํฉ๋๋ค :)
@PaulMest ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ํ๋์ง ํ์ธ
Pods
ํ๋ก์ ํธ์ Targets์์ Xcode์์ Yoga๋ฅผ ์๋์ผ๋ก ์ญ์ ํ๋ฉด RN 0.57 ์ด์ ์ ์ค๋ณต ๋์ ๋น๋ ์ค๋ฅ๋ ๋ฐ์์ํจ React๋ก ์์ ํ๋ฏ์ด ์๋ํฉ๋๋ค.
์ ํํ @fungilation ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ด๊ฒ์ # 19573์ ๋จ์์๋ ์ ์ผํ ์๋ ค์ง ์ฐจ๋จ์ ์ ๋๋ค. ์ฌ๋๋ค์ด ์ฌ์ ํ 0.57.8์์์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๊น?
0.57.8 ์ดํ๋ก ์ผ๋ฐ์ ์ผ๋ก Xcode์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@hramos ๋ถํํ๋ ์๋๋๋ค. ๋๋ฅผ ์ํด Xcode ๋ ๊ฑฐ์ ๋น๋ ์ต์ ์ 0.57.8๊ณผ ์๋ก์ด 0.58.0-rc.3 (ํธ์ง : 0.58.3๋ ํฌํจ)์์๋ ์ฌ์ ํ ํ์ํฉ๋๋ค.
์ด๋ฅผ ์ฌํ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ๋ก์ปฌ์์ ํธ๋๋น์ค CI๋ก ํ ์คํธํฉ๋๋ค. ์๋์ ์๋ ํ๋ก์ ํธ (ํ์ง๋ง react-native init๋ก ๋ฐฉ๊ธ ์์ฑ๋จ)์ travis์์ ์ฑ๊ณต์ ์ด๊ณ ๊นจ์ง ๋น๋๋ฅผ ์ฐ๊ฒฐํ์ต๋๋ค. ๋์์ด ๋ ๊น์? ์ต์ํ ์ ๋ฒ์ ์ด ์์ผ๋ฉด์ด ์คํ์ ๋ค์ ์คํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ Xcode 10 ์์๋ ๋น๋๊ฐ ์คํจํฉ๋๋ค.
travis.yml diff๋ฅผ ๋ณด์ฌ์ฃผ๋ PR
"์ฌ๋ฌ ๋ช
๋ น์ผ๋ก ๋น๋ํ์ฌ"์ค๋ฅ ๋ฐ์
๋ ๊ฑฐ์ ๋น๋ ์์คํ
์์ Xcode 10์ ์ฌ์ฉํ๋ฉด ๋ค์ ์๋ํฉ๋๋ค.
travis.yml diff๋ฅผ ๋ณด์ฌ์ฃผ๋ PR
์ฑ๊ณต์ ์ธ ํธ๋๋น์ค ๋น๋
@hramos yarn ios
์๋ detox ๋ก ๋น๋๋ฅผ ์คํํ ๋ ์คํ ์ค์
๋๋ค. ๋ด iOS ์๋ฎฌ๋ ์ดํฐ์ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/reactipay.app",
"build": "xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 6"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "emulator-5554"
}
},
"test-runner": "jest"
}
ํนํ ์ด๊ฒ์ ์คํํ๋ฉด xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build
์๋ ์ค๋ฅ๋ก ์คํจํฉ๋๋ค.
๋ํ
libReact.a
&libyoga.a
์์Multiple commands produce
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ์ฌ์ฉํ๊ณ ์๋ค :
- Xcode 10
- ๋ฐ์ ๋ค์ดํฐ๋ธ
0.57.0
- CocoaPods
์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด
Podfile
์ ์ด๊ฒ์ ์ถ๊ฐํ์ต๋๋ค.post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ฌ์ฉํ์ฌ Pod ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋น๋ํ์ญ์์ค.
$ pod install
์ ์ฒด ํ๊ฒฝ ์ธ๋ถ ์ ๋ณด :
thnx ๋จ์!
์ผ๊ด์ฑ์ด ์์ด ๋ณด์ด๋ฏ๋ก์ด ์ค๋ฅ์ ๋งค์ฐ ํผ๋ํ์ต๋๋ค. ๋น๋ ๋ช
๋ น์ 10 ๋ฒ ์คํํ๋ฉด ๊ฒฐ๊ตญ ์๋์ ์์ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด mu e2e ์คํฌ๋ฆฝํธ์ ๋ชจ์ต์
๋๋ค.
detox build -c ios.sim.releas ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release
ํด๋ ๋น๋๋ ์ด๋์ ์์ต๋๊น?
xcodebuild -project ios/deliverypoc.xcodeproj -scheme deliverypoc -configuration Release -sdk iphonesimulator -derivedDataPath ios/build
๋ฆฌ ์กํธ ๋น๋์ ๋งค๋ฌ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ ๊ฑฐ์ ๋น๋ ์์คํ
์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ Cocoa Pod๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ค๋ฅธ ํด๊ฒฐ์ฑ
์ ๋ฌด์์ผ๊น์?
iOS๋ฅผ Cocoa๋ก ๋ง์ด๊ทธ๋ ์ด์
ํด์ผํฉ๋๊น? ๊ทธ๊ฒ์ด ๊ฐ์ ธ์ฌ ์๋ฏธ๋ ๋ฌด์์
๋๊น?
@ pavlof01 ํนํ ๋ฒ์ 0.57.8 ์ด์์์ ์ฌ์ ํ ๋ฐ์ํ๋ ๋ณด๊ณ ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
@hramos 0.57.8 ๋ฐ 0.58.3์ Xcode 10.1์ ์ฌ์ ํ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ ๊ฑฐ์ ๋น๋ ์์คํ
์ ์ฌ์ฉํ์ฌ ์คํ์ ์๋ํ์ง ์์์ต๋๋ค (์ง๊ธ์ ๊ณต์์ ์ธ ์์ ์ฌํญ์
๋๊น?). ๋์ name == "React"
๋๋ name == "yoga"
name == "React"
๋ target.remove_from_project
Podfile์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. name == "yoga"
. @jerolimov ๊ฐ ์์ ๊ฐ์ด Xcode 9 ๋ฑ์ ์๋ํ์ง ์์์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ฐจ๋จ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ๋ด๊ฐ ์ฐจ์ ํ ์ง๋ผ๋! ๋ ๋์์ด๋๋ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์๋ค๋ฉด Lmk.
RN 0.57.8์์ ๋ ์ด์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํ์ ๋ Podfile์์๋์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
post_install do |installer|
installer.pods_project.targets.each do |target|
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
์์ด ๋ฒ๋ ธ์ด์ ๐
@hramos 0.57.8 (๋์ผํ ์ค๋ฅ)์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ถ๊ฐ ์ ๋ณด๊ฐ ํ์ํ๋ฉด ์๋ ค์ฃผ์ธ์.
๋๋ ํด๋
์ผ๋ก ์ด๊ฒ๋ ๋ง๋ฌ์ต๋๋ค. sdk ๋์ xcodebuild์ ๋์์ ์ง์ ํ์ฌ ์์ ํ์ต๋๋ค. -destination 'platform=iOS Simulator,name=iPhone 7'
์์นด์ด๋ธ ๋จ๊ณ์์ 0.58.3์์ ๋ฐ์ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. ๋ด podfile์ remove_from_project
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. react-native info
:
$ $(npm bin)/react-native info
React Native Environment Info:
System:
OS: macOS 10.14
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Memory: 1.13 GB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.0.0 - /usr/local/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 19, 21, 22, 23, 24, 25, 26, 27, 28
Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.1, 26.0.3, 27.0.3, 28.0.1, 28.0.2, 28.0.3
System Images: android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom_64, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom_64, android-24 | Google APIs Intel x86 Atom_64, android-24 | Google Play Intel x86 Atom, android-25 | Google APIs Intel x86 Atom, android-25 | Google APIs Intel x86 Atom_64, android-25 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom_64, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom_64
IDEs:
Android Studio: 3.2 AI-181.5540.7.32.5056338
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmGlobalPackages:
react-native-cli: 2.0.1
๊ฐ์ฌํฉ๋๋ค @aaronjensen ์ด ์ด๊ฒ์ ๋ง์ ์๊ฐ์ ๊ณ ์ํ์ต๋๋ค ...
์ ๋ 58 ๋ ๋ถํฐ ๋ฌธ์ ์์ด ์๋ก์ด ๋น๋ ์์คํ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์์ ๊ฐ์ Multiple commands produce *
๋ฌธ์ ๊ฐ ์์์ง๋ง ์ด๊ฒ์ Pod๋ก ์ ํํ๊ธฐ ์ ์ ์์ฌ ๋ฌผ ๋๋ฌธ์ด์์ต๋๋ค (๋งํฌ). ์ด์ Pod๋ฅผ ์ฌ์ฉ์ค์ธ ๊ฒฝ์ฐ Xcode ํ๋ก์ ํธ (์์ฑ ๋ ์์
๊ณต๊ฐ ์๋)์์ ๋ชจ๋ React Native ๊ด๋ จ Linked Frameworks and Libraries
์ ๊ฑฐํด์ผํฉ๋๋ค.
์ ๋ฆฌํ๊ณ ํฌ๋๋ฅผ ํตํ RN ์ฌ์ฉ์ผ๋ก ์ ํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒํ์ง :
์ด์ ๋น๋ ์์คํ ์ ์ฐ๊ฒฐ ๋ฐ ํฌ๋๋ฅผ ํจ๊ป ์ฌ์ฉํ์ฌ RN์ ์ฌ์ฉํ๋ ค๋ ์๋์์ ์ด๋ฌํ ์ค๋ณต์ ๋ฌด์ํ์ต๋๋ค. ์๋ก์ด ๋น๋ ์์คํ ์ ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ๋์ ๋น์ ์ ์ด๊ฒ๋ค์ ์ผ๋ง ๋์ ๊ฐ์ง๊ณ ์์์ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด Detox๋ฅผ ์ํด xcodebuild
๋น๋ํ๋ ๊ฒฝ์ฐ ์์ @aaronjensen ์ ์์ ๋น๋ ๋ช
๋ น์ ์ ์ฉํ์ญ์์ค.
@salakar Ive๋ ๋ฌธ์ ์์ด ๋๊ฐ์ดํ๊ณ ์์ต๋๋ค. ํ ๊ฐ์ง์ฃผ์ ํ ์ ์ pod์์ด ํ์ฌ Libray๋ฅผ ์๋์ผ๋ก ์ฐ๊ฒฐํ๋ฉด React Native๋ฅผ ์ฐพ๋ ๋ฐ ๋ฌธ์ ๊ฐ์์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ Pod๋ก ์ ํํ์ญ์์ค.
@Salakar ์ ์๊ฒฌ์ ๋ฐ๋ผ
@cpojer IMHO react-native init
์ผ๋ก ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ ํ ์๋ฃจ์
์ ์๋ ๋จ๊ณ๊ฐ ํ์ํ ๊ฒฝ์ฐ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค. ์ด๊ฒ์ ์๋ก์ด ์ฌ์ฉ์๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ธฐ๋ณธ๊ฐ์ Xcode๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ CocoaPods์์ด ์๋ํด์ผํฉ๋๋ค. (CocoaPods๋ ํ๋ฅญํ๊ณ RN ๐๊ณผ ์ ์๋ํ์ง๋ง)
์์์ ์ค๋ช
ํ ๊ฒ์ฒ๋ผ react-native init
๋ก ์ํ ์ฑ์ ๋ง๋ค๊ณ Travis CI์์ ์คํํฉ๋๋ค. ์ด๊ฒ์ ๋น๋๊ฐ ๋ ๊ฑฐ์ ๋น๋ ์์คํ
์ Xcode 9 ๋ฐ Xcode 10์์ ์ ์๋ ํจ์ ์ ๋ณด์ฌ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ Xcode 10 ์๋ก์ด ๋น๋ ์์คํ
์์๋ ์๋ํ์ง ์์ต๋๋ค.
์ฌ๊ธฐ GitHub ์์ ๋น๋ ๊ธฐ๋ก์ ๋ณผ ์ ์์ต๋๋ค. ๋ง์คํฐ๋ ์ด๋ฏธ 0.59.0-rc.1์ด๋ฉฐ ์ฌ์ ํ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ค๋ฅธ ๋ธ๋์น์ ๋น๋ ๊ธฐ๋ก์ Travis CI (๋ง์คํฐ๋ Xcode 9์ด๊ณ Xcode 10์๋ ๋ ๊ฐ์ ๋ธ๋์น๊ฐ ์์)์ GitHub Pull Request์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋งํ๋ฏ์ด. IMHO. ๐
@jerolimov ๋น๋๊ฐ destination์ ์ง์ ํ์ง ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด tvOS ๋ฐ iOS ๋ชจ๋์ ๋ํ ์ํฐํฉํธ ๋น๋๋ฅผ ์๋ํ๋ฏ๋ก ํ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ํ์๋ก ๋ณด์ ๋๋ค.
๋ช ํํ์ง ์์ ๊ฒ์ RN์ด ์ํ ํ ์์๋ ์์ ์ด์์ด โโ์ ๋น๋ ์์คํ ์ด ์ํ๋ ๊ฒ์ ์์ ์ ์ผ๋ก ์ ์ ์๋์ง ๋๋ ์ด๊ฒ์ด ์ค์ ๋ก xcode์ ๋ฒ๊ทธ์ธ์ง (์ด ๊ฒฝ์ฐ ๋ฌธ์ ์ ๋ํ ์๋ชป๋ ์ ์ฅ์)์ ๋๋ค. .
@Salakar ์ ์๊ฒฌ์ ๊ฐ์ํ ๋
ํฌ๋ ์ฌ์ฉ์ ์์ํ๋๋ก ์ ํํ์ ๋ ๋งํฌ ๋ ํ๋ ์ ์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ฆฌํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋๊ตฌ๋ ์ง ์ฌ๋ฐ๋ฅธ ํ๋ก์ธ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ ๊ณตํ์ฌ ํด๋น ๋งํฌ๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๊น?
Xcode์์ React Native๋ฅผ ์ฐธ์กฐํ๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ (์ผ๋ฐ์ ์ผ๋ก ์ฌ์ด๋ ๋ฐ์ ํ๋ ์ ์ํฌ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋) "์ฐธ์กฐ ์ ๊ฑฐ"๋ฅผ ์ ํํฉ๋๋ค. ํ๋ก์ธ์ค๊ฐ ๋๋๋ฉด Linked Libraries and Frameworks ์น์ ์ React Native์ ๋ํ ์ฐธ์กฐ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ด๋ ๊ฒํ๋ฉด React Native์ ์์กดํ๋ ๋ค๋ฅธ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Pod๋ฅผ ํตํด ์ฐ๊ฒฐ๋์ด์ผํฉ๋๋ค. (๋๋ถ๋ถ์ ์ฃผ์ ์ ํ์ด์ด๋ฅผ ์ง์ํ๋ฏ๋ก ์ข์ต๋๋ค.)
๋๋ ํด๋ ์ผ๋ก ์ด๊ฒ๋ ๋ง๋ฌ์ต๋๋ค. sdk ๋์ xcodebuild์ ๋์์ ์ง์ ํ์ฌ ์์ ํ์ต๋๋ค.
-destination 'platform=iOS Simulator,name=iPhone 7'
@aaronjensen ์ ์ฒด ์ฝ๋๋ฅผ ์ํ๋ก ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น?
"xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -derivedDataPath ios/build -destination 'platform=iOS Simulator, name=iPhone 7'"
?
๋ฌผ๋ก , ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋น์ทํด ๋ณด์ ๋๋ค.
xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 7' -derivedDataPath ios/build
๋ํ
libReact.a
&libyoga.a
์์Multiple commands produce
์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ์ฌ์ฉํ๊ณ ์๋ค :
- Xcode 10
- ๋ฐ์ ๋ค์ดํฐ๋ธ
0.57.0
- CocoaPods
์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด
Podfile
์ ์ด๊ฒ์ ์ถ๊ฐํ์ต๋๋ค.post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
๊ทธ๋ฐ ๋ค์ ๋ค์์ ์ฌ์ฉํ์ฌ Pod ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋น๋ํ์ญ์์ค.
$ pod install
์ ์ฒด ํ๊ฒฝ ์ธ๋ถ ์ ๋ณด :
React Native Environment Info: System: OS: macOS High Sierra 10.13.6 CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz Memory: 4.10 GB / 32.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node Yarn: 1.9.4 - /usr/local/bin/yarn npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0 IDEs: Xcode: 10.0/10A255 - /usr/bin/xcodebuild npmPackages: react: 16.5.0 => 16.5.0 react-native: 0.57.0 => 0.57.0 npmGlobalPackages: create-react-native-app: 1.0.0 react-native-cli: 2.0.1
ํ๋ฅญํ ์ผ
rm -rf Pods; pod install
์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
@Salakar Xcode ํ๋ก์ ํธ์ Linked Frameworks and Libraries
์์ ๋ชจ๋ RCT * ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๋ฉด iOS์์ ์ฑ๊ณต์ ์ผ๋ก ๋น๋๋์ง๋ง Native module cannot be null
์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ libReact.a
๋ฐ ๊ธฐํ libRCT*.a
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐ ํ ํ์ ๋ง โโ๋น๋๊ฐ ์๋ํฉ๋๋ค. Pods
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ข
์์ฑ์ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค.
์๋๋ Podfile์ ๋ชจ์ต์ ๋๋ค.
```source ' https://github.com/CocoaPods/Specs.git '
ํ๋ซํผ : ios, '9.0'
inhibit_all_warnings!
ํ๋ฌ๊ทธ์ธ 'cocoapods-fix-react-native'
ํ๊ฒ 'RNMobile'do
# Swift๋ฅผ ์ฌ์ฉ ์ค์ด๊ฑฐ๋ ๋์ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ์ค์ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ์ ๊ฑฐํ์ญ์์ค.
# use_frameworks!
# RNMobile ์ฉ ๊ธฐ๋ณธ ํฌ๋
pod 'React', : path => '../node_modules/react-native', : subspecs => [
'ํต์ฌ',
'CxxBridge',
'DevSupport',
# ๋ค์์ Xcode์ "Libraries"์์ ๊ฐ์ ธ์จ ๊ฒ์
๋๋ค.
'RCTAnimation',
'RCTActionSheet',
'RCTBlob',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCT ์ค์ ',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
# ๋ค์ ์์กด์ฑ์ React native ์์ฒด์ ์์กด์ฑ์
๋๋ค.
pod 'yoga', : path => '../node_modules/react-native/ReactCommon/yoga/Yoga.podspec'
pod 'DoubleConversion', : podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'Folly', : podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'glog', : podspec => '../node_modules/react-native/third-party-podspecs/GLog.podspec'
# WahedMobile ์ฉ ์ถ๊ฐ ํฌ๋
ํฌ๋ 'AppCenter / Crashes', '~> 1.13.0'
ํฌ๋ 'AppCenter / Analytics', '~> 1.13.0'
ํฌ๋ 'AppCenterReactNativeShared', '~> 1.12.0'
pod 'RNVectorIcons', : path => '../node_modules/react-native-vector-icons'
ํฌ๋ 'lottie-react-native', : path => '../node_modules/lottie-react-native'
ํฌ๋ 'lottie-ios', : path => '../node_modules/lottie-ios'
ํฌ๋ 'RNAWSCognito', : โโpath => '../node_modules/amazon-cognito-identity-js'
pod 'TouchID', : path => '../node_modules/react-native-touch-id'
pod 'BVLinearGradient', : path => '../node_modules/react-native-linear-gradient'
pod 'RNGestureHandler', : path => '../node_modules/react-native-gesture-handler'
ํฌ๋ 'RNSVG', : path => '../node_modules/react-native-svg'
pod 'react-native-camera', : path => '../node_modules/react-native-camera'
ํฌ๋ 'CodePush', : path => '../node_modules/react-native-code-push'
ํฌ๋ 'RNAnalytics', : path => '../node_modules/@segment/analytics-react-native'
# Firebase ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํฌ๋ 'Firebase / Core', '~> 5.15.0'
ํฌ๋ 'Firebase / Messaging', '~> 5.15.0'
# Onfido Libs
pod 'Onfido', '10 .3.0 ', : configurations => ['Debug ']
pod 'Onfido-Release', '10 .3.0 ', : configurations => ['Release ']
ํฌ๋ 'RNKeychain', : path => '../node_modules/react-native-keychain'
์ข
๋ฃ
```
๋ํ Linked Frameworks and Libraries
libs๋ฅผ ์ถ๊ฐํ๋ฉด AppCenter์์ ์ค๋ณต ๊ธฐํธ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
59๋ก ์
๊ทธ๋ ์ด๋ํ๊ณ ํฌ๋๊ฐ์๋ React ๋ค์ดํฐ๋ธ ์ฌ์ฉ์๋ฅผ์ํ ์ฐธ๊ณ ์๋ฃ :
์์ @anandwahed ์๋ฃจ์
์์ ๋๋ ๊ฒฐ๊ตญ 1 XCode์์ ํ๋ก์ ํธ๋ฅผ ๋ถ์ํ๊ณ 2๋ tvOS ๊ฐ์๋ ๋ชจ๋ ๋์์ ์๋์ผ๋ก ์ ๊ฑฐํ์ต๋๋ค.
๋ด Podfile post_install์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'react-native-google-maps' target.build_configurations.each do |config| config.build_settings['CLANG_ENABLE_MODULES'] = 'No' end end if target.name == "React" target.remove_from_project end if target.name == 'yoga' target.remove_from_project target.build_configurations.each do |config| config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO' config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO' end end end end
@PaulMest ์ ์ ์์ ๋ฐ๋ผ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
๋น์ ์ ์๋ฃจ์ ์ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
https://github.com/facebook/react-native/issues/20492#issuecomment -464343895
๊ทธ๊ฒ๊ณผ ๋ฉํธ๋ก ํจํค์ ์ ์ค๋๋ ์ธ์คํด์ค๋ฅผ ์ฃฝ์ด๋ ๊ฒ์ด ๋๋ฅผ ๋์์ต๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์๊ณ ์ฝ์ฝ์ ํฌ๋๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. react-native-navigation์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก cocoapods๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ @MakhouT ๋ฐ์ - ๋ค์ดํฐ๋ธ ํ์ cocoapods๋ฅผ ์ฌ์ฉ์์ ๋น์ ์ ์ ํํ์ง ์์ต๋๋ค
@AngefloMusic React-native-navigation
@MakhouT ๊ทธ๋ค์ ์ถฉ๋ํ์ง ์์ต๋๋ค. ์ค์ ๋ก react-native-navigation
์ ์ฅ์๋ฅผ ๋ณด๋ฉด podspec ํ์ผ์ด ์์์ ์ ์ ์์ต๋๋ค. ์ง๊ธ ํ๋ก์ ํธ์์ ์ฝ์ฝ์ ํฌ๋์ ํจ๊ป RNN์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ด ํ์ผ์ ๋ค์ ์ด์ด์ผํ์ง๋ง ๊ฐ์ฅ ์ ํธ๋๋ ์๋ฃจ์ (์๋ Podfile ์ฐธ์กฐ)์ ์์นด์ด๋ธ๋ฅผ ์์ฑํ๋ ค๊ณ ํ ๋์ด ๊ณ ํต์ค๋ฌ์ด ์ค๋ฅ๋ฅผ ๋ฐ์์ํต๋๋ค.
์ด๊ฒ์ ๋ด podfile์ ๋๋ค
# Uncomment the next line to define a global platform for your project
platform :ios, '10.1'
target 'TVTips' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
#use_frameworks!
# Pods for TVTips
pod 'Firebase/Core', '~> 5.20.1'
pod 'Firebase/Analytics', '~> 5.20.1'
pod 'Firebase/Auth'
pod 'GoogleSignIn', '~> 4.4.0'
pod 'TwitterKit', '~> 3.3.0'
pod 'React', :path => '../node_modules/react-native', :modular_headers => true
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'react-native-twitter-signin', :path => '../node_modules/react-native-twitter-signin'
target 'TVTips-tvOSTests' do
inherit! :search_paths
# Pods for testing
pod 'YouTubeSdk', :path => '../node_modules/react-native-youtube-sdk'
pod 'ReactNativeLocalization', :path => '../node_modules/react-native-localization'
pod 'RNShare', :path => '../node_modules/react-native-share'
end
target 'TVTipsTests' do
inherit! :search_paths
# Pods for testing
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
end
Link Binary with ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Linked Frameworks ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์์ React๋ฅผ ๊ฐ์ ธ ์์ต๋๋ค.
๋์๋ง :)
๋๋ฅผ ์ํด ๋ด๋ถ์์ ์ค๋ณต ๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ๋ ์์
๋น๋ ๋จ๊ณ
์๋ฅผ ๋ค์ด, Fonts์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ด RN์ Pod๋ก ์ฎ๊ธด ์ฌ๋๋ค ๋๋ RN> 0.60.x๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ํด๊ฒฐ ๋ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์์ง ์ค๋น๊ฐ๋์ง ์์๊ฑฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒฝ์ฐ ์ด๊ฒ์ด ์ฐ๋ฆฌ์ ์์ ์๋ฃจ์ ์ ๋๋ค (๊ธฐ๋ณธ์ ์ผ๋ก React Native pbxproj ํ์ผ์์ tvOS ๊ตฌ์ฑ์ ์ ๊ฑฐํ์ต๋๋ค. ์ฌ๋ฌ ๋์์ ์ ๋ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค.)
์ค์น ํ ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํฉ๋๋ค.
const xcode = require('xcode');
const fs = require('fs');
const path = require('path');
const reactNativeProjectPath = path.resolve(__dirname, '../node_modules/react-native/React/React.xcodeproj/project.pbxproj');
const myProj = xcode.project(reactNativeProjectPath);
myProj.parse(err => {
if (err) {
throw err;
}
const nativeTargets = myProj.hash.project.objects.PBXNativeTarget;
Object.keys(nativeTargets).forEach(nativeTargetKey => {
const target = nativeTargets[nativeTargetKey];
if (target.name && target.name.indexOf('-tvOS') !== -1) {
console.log(`Removing ${target.name}:${nativeTargetKey} in React pbxproj`);
delete nativeTargets[nativeTargetKey];
}
});
fs.writeFileSync(reactNativeProjectPath, myProj.writeSync());
console.log(`All mentioned of tvOS removed in React pbxproj`);
});
Fastlane์ ์ฌ์ฉํ๊ณ ์ด ๋ฌธ์ ์ ์ง๋ฉด ํ ์ฌ์ฉ์์ ๊ฒฝ์ฐ @PaulMest ์๋ฃจ์
์ด ์๋ํฉ๋๋ค. ๋ชจ๋ ํ์ ๋์์ targets_to_ignore์ ์ถ๊ฐ ํ ๋ค์ Fastlane์ ์คํํ๊ธฐ ์ ์ rm -rf ios/Pods && pod install
์คํ
๋๋ฅผ ์ํด ๋ด๋ถ์์ ์ค๋ณต ๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ๋ ์์
๋น๋ ๋จ๊ณ
์๋ฅผ ๋ค์ด, Fonts์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
@aerda ์ ๋ต๋ณ์ ์ถ๊ฐํ์ฌ Build Phases> Copy Bundle Resources์์ react-native-vector-icons์ ์ฌ์ฉ๋๋ ๋ชจ๋ ๊ธ๊ผด (.tff ํ์ผ)์ ์ ๊ฑฐํ์ผ๋ฉฐ ํ๋ก์ ํธ๊ฐ ํ์ฌ ๋น๋ ์ค์ ๋๋ค.
๋ด ๊ฒฝ์ฐ์ด ์ค๋ฅ๋ XCode 11๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ๋ง์ง๋ง ๋ถ๋ถ์ ๋ํด์๋ ๊ธ์ ์ ์ด์ง ์์ต๋๋ค.
์ค๋ ์์ ๋ Xcode 11 (Mac 10.14.6)๋ก ์
๊ทธ๋ ์ด๋ ํ ํ์ ๋ง โโ์ค๋ณต๋๋ ๊ธ๊ผด์ ๋ํด์๋ ๋์ผํ๊ฒ ํ์ธํฉ๋๋ค. Xcode ๋น๋ ๋จ๊ณ์ [CP] Copy Pods Resources
์น์
์์ ๊ธ๊ผด์ ์ ๊ฑฐํ๊ณ ๋น๋๊ฐ ๋ค์ ์๋ํฉ๋๋ค.
์ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. RN 0.60.5์์.
@fungilation ์ ๋์ ๋์ผํฉ๋๋ค (Xcode 11-์ค๋ ์
๊ทธ๋ ์ด๋, ์๋ก์ด ๋น๋ ์์คํ
๋ฐ RN 0.60.5). Copy Bundle Resources
์๋์ ๋ชจ๋ ๊ธ๊ผด์ ์ ๊ฑฐํด์ผํ๊ณ ์๋ํฉ๋๋ค.
ํ์ง๋ง ๋ค์์ pod install
๋ช
๋ น์ ์คํํ๋ฉด์ด ํญ๋ชฉ์ด ๋ค์ ๋ํ๋ฉ๋๋ค ๐๏ธ
0.61.0-rc.3 ๋ฐ xcode 11 11A420a mojave 10.14.6๊ณผ ๋์ผํฉ๋๋ค.
react-native-vector-icons tff ๋ง ์ ๊ฑฐํ์ผ๋ฉฐ ์๋ํฉ๋๋ค. ๋ชจ๋ tff๋ฅผ ์ญ์ ํ ํ์๊ฐ ์์ต๋๋ค.
์ด์ ํฌ๋ ์ค์น ํฌ๋๋ฅผ ์ญ์ ํ๊ณ ์ ๋ฐ์ดํธ ํฌ๋๋ฅผ ์คํํ๋ฉด ์๋ํฉ๋๋ค.
์ด๊ฒ์ ๋ด podfile์ ์ถ๊ฐ ํ ๊ฒ์ ๋๋ค.
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
if target.name == "yoga"
target.remove_from_project
end
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
end
end
end
์ด๊ฒ์ ๋ด podfile์ ์ถ๊ฐ ํ ๊ฒ์ ๋๋ค.
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == "React" target.remove_from_project end if target.name == "yoga" target.remove_from_project end end installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf' end end end
์ด ๋ช ๋ น (fastlane ์ฌ์ฉ)์ ์๋ํ์ง๋ง ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํฉ๋๋ค. ๐ข
error: Multiple commands produce '.../UninstalledProducts/iphoneos/libRNGestureHandler.a':
๋ด๊ฐ ์ค์น ํ 4 ๊ฐ์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์ ์ฌํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
RNKeyChain, RNAsyncStorage, RNDeviceInfo ๋ฐ BVLinearGradient
์ฌ๊ธฐ ๋ด ํ๊ฒฝ์ด ์์ต๋๋ค.
System:
OS: macOS 10.15.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 1.54 GB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.10.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 23, 26, 27, 28, 29
Build Tools: 27.0.3, 28.0.3, 29.0.1
System Images: android-19 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5977832
Xcode: 11.2/11B52 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: ^0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
์์นจ๋ถํฐ ํด๊ฒฐ์ฑ
์ ์ฐพ์ผ๋ ค๊ณ ๋
ธ๋ ฅํ์ง๋ง ์ง๊ธ๊น์ง ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๐
์๋ฎฌ๋ ์ดํฐ์์ ์คํํ ๋๋ ์ ์๋ํฉ๋๋ค.
์ค๋ ์์ ๋ Xcode 11 (Mac 10.14.6)๋ก ์ ๊ทธ๋ ์ด๋ ํ ํ์ ๋ง โโ์ค๋ณต๋๋ ๊ธ๊ผด์ ๋ํด์๋ ๋์ผํ๊ฒ ํ์ธํฉ๋๋ค. Xcode ๋น๋ ๋จ๊ณ์
[CP] Copy Pods Resources
์น์ ์์ ๊ธ๊ผด์ ์ ๊ฑฐํ๊ณ ๋น๋๊ฐ ๋ค์ ์๋ํฉ๋๋ค.์ ๋น๋ ์์คํ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. RN 0.60.5์์.
์ ์ ๊ฐ์ ์ด๋ณด์ : <PROJECT_FOLDER>/ios/<PROJECT_NAME>.xcodeproj/project.pbxproj
ํ์ผ์ ํธ์งํด์ผํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ค์๊ณผ ๊ฐ์ด ๊ธ๊ผด ์ค (.ttf๋ก ๋๋๋ ํ์ผ)์ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค.
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-drawer2/Pods-drawer2-resources.sh",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
);
๊ทธ๋ฆฌ๊ณ pod install
๋ฅผ ์คํํ ๋๋ง๋ค์ด ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์คํํด์ผํ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋น๋ ์์คํ ์ Legacy๋ก ๋ณ๊ฒฝํด ๋ณผ ์ ์์ต๋๋ค.
ํ์ผ> ์์ ๊ณต๊ฐ ์ค์ > ๋น๋ ์์คํ > ๋ ๊ฑฐ์ ๋น๋ ์์คํ .