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
Try this
use_flipper!
↓
@bsk26 , did you ever find a solution to this?
@bsk26 , did you ever find a solution to this?
I ended up removing flipper since we were hardly using it.
@bsk26 ,did you have other way ? I remove flipper , but not working.
Hi all, is there any solution to this? I'm experiencing the exact same problem
@Atoyebs @best777 We weren't actively using Flipper so our solution was to remove it from the app. I'm not sure if the issue has been fixed however the other underlying issues we were facing were resolved in the later versions of ios 14.5 beta.
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.
Seeing the same issue on 14.5... any ideas on how to fix this?
+1
+1
+1
Hello,
This is now an issue with Xcode 12.5 final, released today... Can't build my app anymore, any workaround ?
+1 XCode Final version 12.5 react-native 0.61.5
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?
same here, react native no longer working after updating to XCode 12.5
build failure on XCode 12.5 , any workaround
Cannot initialize a parameter of type 'NSArray
Same issue on XCode 12.5 really frustrating. https://github.com/facebook/flipper/issues/2215#issuecomment-827422023 worked as a workaround for me.
I'm facing the same problem, but my RN version is .62 so its not related with flipper
I've got the same issue with XCode 12.5 and RN 0.61.5
Seeing the same issue on 14.5... any ideas on how to fix this?
Try to upgrade to 0.64.1: https://github.com/facebook/react-native/releases/v0.64.1
Worked fine for me.
Try to upgrade to 0.64.1: https://github.com/facebook/react-native/releases/v0.64.1
Worked fine for me.
Solved to me!
to other versions -> https://github.com/facebook/react-native/issues/31480
@gcrozariol said
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 might not be the weirdest thing at all. As it turns out, I had a space in my project path at some point.
Let's consider this folder for my project:
~/Repositories/SOME COMPANY/react-native-app/After trying to get the app to compile ~a dozen~ a few times, I noticed a couple new folders had appeared and they did not make any sense whatsoever:
~/Repositories/SOME/~/Repositories/SOME COMPANY/react-native-app/react-native/React/FBReactNativeSpec/COMPANYSo I indeed renamed my SOME COMPANY folder to SOMECOMPANY and it seemed to help. It only seemed because I did so much things at the same time it's difficult to pinpoint exactly what did the trick.
My Xcode update happened to while I was also updating React Native. Maybe it is relevant, maybe not, but another thing I did is actually pay attention to the changes in the project.pbxproj on the upgrade helper tool. It is collapsed by default because most of the changes it contains are applied automatically when running pod install. However, most is not all, and sometimes it needs manual intervention (either via the Xcode UI or in plain text).
As it turns out, some LD_RUNPATH_SEARCH_PATHS changed from a single string to an array of strings using double quotes. Since these path are supposed to expand to the project's location, my guess is that it could (I cannot emphasise more, I'm not sure if this change actually fixes the space in the path issue) resolve your nasty libraries errors.
Hope this can help someone!
Modify the func at line 746 in RCTCxxBridge.mm from
修改 RCTCxxBridge.mm 中第 746 行的 func 来自
- (NSArray
*)_initializeModules:(NSArray withDispatchGroup:(dispatch_group_t)dispatchGroup
lazilyDiscovered:(BOOL)lazilyDiscovered
to- (NSArray
*)_initializeModules:(NSArray *)modules
withDispatchGroup:(dispatch_group_t)dispatchGroup
lazilyDiscovered:(BOOL)lazilyDiscovered
它对我有用!
perfect!
Modify the func at line 746 in RCTCxxBridge.mm from
- (NSArray
*)_initializeModules:(NSArray withDispatchGroup:(dispatch_group_t)dispatchGroup
lazilyDiscovered:(BOOL)lazilyDiscovered
to- (NSArray
*)_initializeModules:(NSArray *)modules
withDispatchGroup:(dispatch_group_t)dispatchGroup
lazilyDiscovered:(BOOL)lazilyDiscovered
It works for me!
可以解决,谢谢
Most helpful comment
Modify the func at line 746 in RCTCxxBridge.mm from
lazilyDiscovered:(BOOL)lazilyDiscovered
to
withDispatchGroup:(dispatch_group_t)dispatchGroup
lazilyDiscovered:(BOOL)lazilyDiscovered
It works for me!