我更新了Xcode版本10.2(10E125)并在设备上进行测试(不仅仅是模拟器)
我在执行应用程序时收到此消息:
objc [3297]:Swift类的Swift类扩展和类别不允许有+ load方法
- 我正在使用快速类的扩展,但我认为这不是问题
请帮忙
只是为React Native项目添加一个解决方案。
出现此问题的原因是我们的一个自定义反应本机模块使用RCT_EXPORT_MODULE()
宏调用init
函数,我们还包括快速代码。反应本机版本0.59.3,有一个新的宏RCT_EXPORT_MODULE_NO_LOAD(js_name, objc_name)
,它避免了对init
的调用。用RCT_EXPORT_MODULE()
替换RCT_EXPORT_MODULE_NO_LOAD(js_name, objc_name)
并更新以反应原生版本0.59.3解决了这个问题。
在我的例子中,只有一个具有+ load方法的依赖项是RxAtomic。顺便说一句,这是唯一一个没有更新到当前时刻的快速5.0。所以我想这个由RxSwift引起的bug。我也有Swinjects依赖项,但更新了所有支持swift 5的最新版本 - 它没有帮助。
编辑
我只是打开Pods项目文件。选择RxAtomic Target。并将用户定义的属性“SWIFT_VERSION”从5.0更改为4.2。它的工作原理!
目前,我找到的唯一解决方案是:
完成后,重建您的项目,它可以在任何设备上正常工作。
我认为问题与Swift 5有关。我们可能需要做的是将所有依赖项更新为Swift 5.目前我没有时间这样做。
如果有人找到任何其他解决方案,请告诉我。
谢谢。
升级到react-native版本^0.59.5
没有RCT_EXPORT_MODULE_NO_LOAD
解决了它,
更新react-native版本,
rm -rf node_modules
yarn add react-native@^0.59.5
所以这将使用新版本更新其他依赖包
•降级到Xcode 10.0解决了我的问题。你可以在More Downloads for Apple Developers下载它