Reputation: 65
Running into a build failure on Xcode with my react native project.
the error is 'folly/Portability.h' file not found
I have been trying to fix this issue on my own for the last few days but unable resolve it.
RN info:
React Native Environment Info:
System:
OS: macOS 10.14
CPU: (4) x64 Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz
Memory: 641.79 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.6.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.9.0 - /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
IDEs:
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.3 => 16.8.3
react-native: 0.59.8 => 0.59.8
npmGlobalPackages:
react-native-cli: 2.0.1
podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
# Required by RNFirebase
pod 'Firebase/Core', '~> 5.20.1'
target 'WhosThat_app' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
pod 'Firebase/Firestore'
pod 'Firebase/Storage'
pod 'Firebase/Auth'
pod 'GoogleMaps', '~> 2.7.0'
pod 'Fabric', '~> 1.10.1'
pod 'Crashlytics', '~> 3.13.1'
# Pods for WhosThat_app
pod 'RNImageCropPicker', :path => '../node_modules/react-native-image-crop-picker'
pod 'RNBackgroundGeolocation', :path => '../node_modules/react-native-background-geolocation'
pod 'RNBackgroundFetch', :path => '../node_modules/react-native-background-fetch'
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
pod 'React', :path => '../node_modules/react-native'
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'Folly', podspec: '../node_modules/react-native/third-party-podspecs/Folly.podspec'
target 'WhosThat_app-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
target 'WhosThat_appTests' do
inherit! :search_paths
# Pods for testing
end
end
Tried removing the pods folder and reinstalling them and removing node-modules folder
Upvotes: 5
Views: 6827
Reputation: 1
pod 'React', path: rn_path, subspecs: [
'ART',
'Core',
'CxxBridge',
'RCTText',
'RCTNetwork',
'RCTLinkingIOS',
'RCTImage',
'RCTAnimation',
'RCTWebSocket', # needed for debugging
'RCTActionSheet',
'RCTGeolocation',
'RCTSettings',
'RCTVibration',
'DevSupport',
'RCTPushNotification'
]
by adding these my problem is resolved successfully.
Upvotes: 0
Reputation: 13808
To fix the issue you should make two things:
1) Add CxxBridge subspec
2) Point DoubleConversion and glog dependencies specs directly for Folly
Podfile sample:
# React Native
rn_path = '../node_modules/react-native'
pod 'React', path: rn_path, subspecs: [
'CxxBridge',
'RCTText',
'RCTNetwork',
'RCTWebSocket',
'RCTAnimation',
'RCTActionSheet',
'RCTGeolocation',
'RCTImage',
'RCTSettings',
'RCTVibration',
'RCTLinkingIOS'
]
pod 'yoga', :path => "#{rn_path}/ReactCommon/yoga"
pod 'DoubleConversion', :podspec => "#{rn_path}/third-party-podspecs/DoubleConversion.podspec"
pod 'glog', :podspec => "#{rn_path}/third-party-podspecs/glog.podspec"
pod 'Folly', :podspec => "#{rn_path}/third-party-podspecs/Folly.podspec"
Upvotes: 0
Reputation: 6204
Add the following to your Podfile
inside target 'WhosThat_app' do
:
target 'WhosThat_app' do
# ...everything else
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'React'
target.remove_from_project
end
end
end
I didn't need the following line and believe you can remove it:
pod 'Folly', podspec: '../node_modules/react-native/third-party-podspecs/Folly.podspec'
Notes:
59
.Upvotes: 5