找不到React-native 0.57 ios限制文件,无法构建模块CoreFoundation

时间:2018-10-04 14:45:38

标签: ios xcode react-native

RN 0.57.1​​

RN-cli 2.0.1

xCode:9.4.1(9F2000) xCode 10

将RN从0.56更新为0.57.0(或0.57.1​​)后,我得到了很多could not build module 'CoreFoundation'could not build module Foundationlimits file not found

我完全按照RN文档中的步骤进行了此更新。

我尝试删除ios/build文件夹,清理缓存,重新安装所有内容,但无济于事。

  

▸构建BunteMobile / OneSignalNotificationServiceExtension [Debug]▸   检查依赖项▸编译NotificationService.m

     

/ Users / myuser / Desktop / projects / mobileapp / ios /../ node_modules / react-native / ReactCommon / fabric / graphics / platform / ios / float.h:8:10:   找不到“限制”文件

     

#include <limits>

     

/ Users / myuser / Desktop / projects / mobileapp / ios /../ node_modules / react-native / ReactCommon / fabric / graphics / platform / ios / float.h:8:10:   找不到“限制”文件

     

#include <limits>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CoreFoundation.h>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Security.framework/Headers/SecBase.h:28:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CFBase.h>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFNetwork.h:18:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CoreFoundation.h>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/UserNotifications.framework/Headers/NSString+UserNotifications.h:8: 9:   无法建立模块“基础”

     

#import <Foundation/Foundation.h>

如果我删除OneSignalNotificationServiceExtension而不是7  错误我在项目的其他部分又遇到了15个错误:

  

/ Users / myuser / Desktop / projects / mobileapp / ios /../ node_modules / react-native / ReactCommon / fabric / graphics / platform / ios / float.h:8:10:   找不到“限制”文件

     

#include <limits>

     

/ Users / myuser / Desktop / projects / mobileapp / ios /../ node_modules / react-native / ReactCommon / fabric / graphics / platform / ios / float.h:8:10:   找不到“限制”文件

     

#include <limits>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CoreFoundation.h>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/Security.framework/Headers/SecBase.h:28:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CFBase.h>

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFNetwork.h:18:10:   无法建立模块“ CoreFoundation”

     

#include <CoreFoundation/CoreFoundation.h>

     

/Users/myuser/Desktop/projects/mobileapp/ios/build/Build/Products/Debug-iphonesimulator/include/React/RCTBridgeModule.h:8:9:   无法建立模块“基础”

     

#import <Foundation/Foundation.h>

我发现的唯一解决方法是将RN降级到0.56 ...

根据RN小组的回答,从这里开始 https://github.com/facebook/react-native/issues/21482

将所有babel deps更改为7应该可以解决该问题,但是即使在npx babel-ugrade -w并重新安装了节点模块+缓存清理后,我仍然遇到相同的错误。

但仍然存在相同的问题。

在更新到0.57之后,是否应该在扩展程序/ ios构建设置中更新所有带有标题搜索路径的文件?

我已经花了3天的时间解决这个IOS构建问题。...

注意:RN和babel升级后,我能够构建android。

与本机git相关的票证: https://github.com/facebook/react-native/issues/21482

1 个答案:

答案 0 :(得分:6)

要解决所有这些错误,我必须从Project Header Search pathsOneSignalNotificationServiceExtension target header search paths中删除 React ReactCommon

1)从项目标题搜索路径中删除:

崩溃与limitsCoreFoundationFoundationCoreGraphics有关。

我去Project Header Search Paths并从那里删除了React和ReactCommon依赖项。

这是我的project header search paths现在的样子: enter image description here

2)从一个信号扩展名中删除:(可选,如果您没有任何扩展名,则不必这样做)

以下是崩溃时扩展名的路径的外观: enter image description here

这是该扩展程序的目标现在的外观:

enter image description here

注意:project target header search paths中我没有做任何更改。

我不确定RN 0.57中发生了什么变化,为什么现在在0.57中崩溃了,header search paths在扩展,项目和目标中的表现如何。为什么以前在那里有React和ReactCommon起作用,为什么现在不再起作用。

我的项目创建于3年前,并进行了许多RN更新。在项目标头搜索路径中,有时可能需要React和ReactCommon。

正如我在问题中写道,这个问题也在RN github中发出了信号, 可以在这里找到更多详细信息:

https://github.com/facebook/react-native/issues/21482#issuecomment-427815231