I use react native 0.65.1 and Xcode 10 to create a react native app.
I have changed the objectVersion in ios/project.xcodeproj/project.pbxproj and ios/Pods/Pods.xcodeproj/project.pbxproj from 54 to 51 so I can open the xcworkspace file in Xcode 10. Other than that I pretty much follow the instructions on react native website and didn't change anything.
When running
npx react-native run-ios
in the terminal, I get the following errors mainly (but not all) in the file "/node_modules/react-native/React/Views/RCTDatePickerManager.m":
RCTDatePickerManager.m:33:5: error: expected a type
UIDatePickerStyle,
^
RCTDatePickerManager.m:35:22: error: use of undeclared identifier 'UIDatePicker
StyleCompact'
@"compact" : @(UIDatePickerStyleCompact),
^
RCTDatePickerManager.m:36:22: error: use of undeclared identifier 'UIDatePicker
StyleWheels'
@"spinner" : @(UIDatePickerStyleWheels),
^
RCTDatePickerManager.m:37:21: error: use of undeclared identifier 'UIDatePicker
StyleInline'; did you mean 'UIDatePickerModeTime'?
@"inline" : @(UIDatePickerStyleInline),
^~~~~~~~~~~~~~~~~~~~~~~
UIDatePickerModeTime
In file included from RCTDatePickerManager.m:8:
In file included from RCTDatePickerManager.h:8:
ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:228:17: note: expanded from macro 'RCT_ENUM_CONVERTER'
mapping = values; \
^
In module 'UIKit' imported from ios/Pods/Target Support Files/React-Core/React-Core-prefix.pch:2:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/System/Library/Frameworks/UIKi
t.framework/Headers/UIDatePicker.h:16:5: note: 'UIDatePickerModeTime' declared here
UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 | 53 | PM)
^
RCTDatePickerManager.m:39:5: error: use of undeclared identifier 'UIDatePickerS
tyleAutomatic'; did you mean 'UIActionSheetStyleAutomatic'?
UIDatePickerStyleAutomatic,
^~~~~~~~~~~~~~~~~~~~~~~~~~
UIActionSheetStyleAutomatic
In file included from /node_modules/react-native/React/Views/RCTDatePickerManager.m:8:
In file included from /node_modules/react-native/React/Views/RCTDatePickerManager.h:8:
/ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:230:67: note: expanded from macro 'RCT_ENUM_CONVERTER'
return _RCT_CAST(type, [RCTConvertEnumValue(#type, mapping, @(default), json) getter]); \
^
ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:216:31: note: expanded from macro '_RCT_CAST'
#define _RCT_CAST(type, expr) expr
^
In module 'UIKit' imported from /ios/Pods/Target Support Files/React-Core/React-Core-prefix.pch:2:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/System/Library/Frameworks/UIKi
t.framework/Headers/UIActionSheet.h:20:5: note: 'UIActionSheetStyleAutomatic' declared here
UIActionSheetStyleAutomatic = -1, // take appearance from toolbar style otherwise uses 'default'
^
RCTDatePickerManager.m:32:1: error: implicit conversion of 'NSInteger' (aka 'lo
ng') to 'id' is disallowed with ARC
RCT_ENUM_CONVERTER(
^~~~~~~~~~~~~~~~~~~
In file included from RCTDatePickerManager.m:8:
In file included from RCTDatePickerManager.h:8:
/ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:230:28: note: expanded from macro 'RCT_ENUM_CONVERTER'
return _RCT_CAST(type, [RCTConvertEnumValue(#type, mapping, @(default), json) getter]); \
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:216:31: note: expanded from macro '_RCT_CAST'
#define _RCT_CAST(type, expr) expr
^~~~
/RCTDatePickerManager.m:32:1: warning: incompatible integer to pointer conversio
n returning 'NSInteger' (aka 'long') from a function with result type 'id' [-Wint-conversion]
RCT_ENUM_CONVERTER(
^~~~~~~~~~~~~~~~~~~
In file included from /RCTDatePickerManager.m:8:
In file included from /RCTDatePickerManager.h:8:
/ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:230:28: note: expanded from macro 'RCT_ENUM_CONVERTER'
return _RCT_CAST(type, [RCTConvertEnumValue(#type, mapping, @(default), json) getter]); \
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ios/Pods/Headers/Private/React-Core/React/RCTConvert.h:216:31: note: expanded from macro '_RCT_CAST'
#define _RCT_CAST(type, expr) expr
^~~~
/RCTDatePickerManager.m:93:7: error: unknown type name 'UIDatePickerStyle'; did
you mean 'UIDatePickerMode'?
UIDatePickerStyle style = [RCTConvert UIDatePickerStyle:json];
^~~~~~~~~~~~~~~~~
UIDatePickerMode
In module 'UIKit' imported from /ios/Pods/Target Support Files/React-Core/React-Core-prefix.pch:2:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/System/Library/Frameworks/UIKi
t.framework/Headers/UIDatePicker.h:15:28: note: 'UIDatePickerMode' declared here
typedef NS_ENUM(NSInteger, UIDatePickerMode) {
^
RCTDatePickerManager.m:93:25: warning: incompatible pointer to integer conversi
on initializing 'UIDatePickerMode' (aka 'enum UIDatePickerMode') with an expression of type 'id' [-Wint-conversion]
UIDatePickerStyle style = [RCTConvert UIDatePickerStyle:json];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RCTDatePickerManager.m:94:12: error: property 'preferredDatePickerStyle' not fo
und on object of type 'RCTDatePicker *'
view.preferredDatePickerStyle = style;
^
RCTDatePickerManager.m:96:12: error: property 'preferredDatePickerStyle' not fo
und on object of type 'RCTDatePicker *'
view.preferredDatePickerStyle = UIDatePickerStyleWheels;
^
RCTDatePickerManager.m:96:39: error: use of undeclared identifier 'UIDatePicker
StyleWheels'
view.preferredDatePickerStyle = UIDatePickerStyleWheels;
^
2 warnings and 10 errors generated.
file paths has been slightly modified for improved readability. Please kindly advice how to fix.
I had this exact problem, and the dispiriting experience of this being the only hit on google, with no response :D
For me, upgrading XCode fixed this. Everything was working locally as I'd recently upgraded XCode fully, but on Bitrise CI, I was getting the error. Bitrise lets you update XCode from the stacks tab.
I upgraded from 11.7 --> 12.4, and that resolved the issue.