React Native Xcode errors

895 views Asked by At

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.

1

There are 1 answers

0
Daniel Leary On

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.