cli: `react-native run-ios` build failure on XCode 12.5 beta
Ask your Question
I’m getting a build error while attempting to test our react-native
app in XCode 12.5 beta. Apologies if this is inappropriate but it appears to be a real issue.
I’m running "react-native": "0.62.2"
(however, it doesn’t appear this is fixed in the lastest stable release)
It looks like this exact issue was fixed in https://github.com/facebook/react-native/pull/28362, which is part of 0.63+. This PR indicates it was fixed for Clang 10 but as far as I can tell the clang/llvm version hasn’t changed between 12.4 and 12.5. The app builds correctly when using 12.4 command line tools but not 12.5 beta command line tools (configured via XCode preferences).
The build error (with compiler):
** BUILD FAILED **
The following build commands failed:
CompileC .../Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React-Core.build/Objects-normal/x86_64/RCTCxxBridge.o /Users/bkraft/Projects/zabo-mobile/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
The stack trace is as follows,
/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:331:34: error: cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an rvalue of type 'NSArray<Class> *'
(void)[self _initializeModules:RCTGetModuleClasses() withDispatchGroup:prepareBridge lazilyDiscovered:NO];
^~~~~~~~~~~~~~~~~~~~~
/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:771:82: note: passing argument to parameter 'modules' here
- (NSArray<RCTModuleData *> *)_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules
^
/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:776:79: error: cannot initialize a parameter of type 'NSArray<Class> *' with an lvalue of type 'NSArray<id<RCTBridgeModule>> *__strong'
NSArray<RCTModuleData *> *moduleDataById = [self _registerModulesForClasses:modules lazilyDiscovered:lazilyDiscovered];
^~~~~~~
/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:618:76: note: passing argument to parameter 'moduleClasses' here
- (NSArray<RCTModuleData *> *)_registerModulesForClasses:(NSArray<Class> *)moduleClasses
^
/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:827:69: error: cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an lvalue of type 'NSArray<Class> *__strong'
NSArray<RCTModuleData *> *newModules = [self _initializeModules:modules withDispatchGroup:NULL lazilyDiscovered:YES];
^~~~~~~
/Users/bkraft/Projects/zabo-mobile/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:771:82: note: passing argument to parameter 'modules' here
- (NSArray<RCTModuleData *> *)_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 38
- Comments: 30 (1 by maintainers)
Modify the func at line 746 in RCTCxxBridge.mm from
Try this
Edit Podfile in ios directory like this ↓ =========================== use_flipper!
use_flipper!({ ‘Flipper-Folly’ => ‘2.3.0’ })
Hello,
This is now an issue with Xcode 12.5 final, released today… Can’t build my app anymore, any workaround ?
I’ve got the same issue with XCode 12.5 and RN 0.61.5
Try to upgrade to 0.64.1: https://github.com/facebook/react-native/releases/v0.64.1 Worked fine for me.
Seeing the same issue on 14.5… any ideas on how to fix this?
This might be the weirdest thing ever, but it worked for me.
I figured out that creating a project within a folder that contains a space i.e. ~/Documents/My Projects was the problem. When creating a project in a directory that has no spaces i.e. ~/Documents/Projects, you can run the project on both iOS and Android with no errors at all.
This is a Flipper-Folly issue. Commenting useFlipper out from Podfile should work.
https://github.com/facebook/folly/issues/1527 https://github.com/facebook/flipper/issues/2215
another workaround https://github.com/facebook/flipper/issues/2215#issuecomment-827422023
可以解决,谢谢
Since my project has other packages like Firebase that rely on Flipper (I believe) removing it did not work. The workaround I’m using for now is to use XCode 12.4.
Got this issues after upgrade XCode to 12.5. Any workaround for this issue?
https://stackoverflow.com/questions/67290697/react-native-0-64-wont-build-ios-app-after-updating-xcode-to-12-5-and-ios-to-14