【发布时间】:2017-03-03 04:21:30
【问题描述】:
我有一个用 Swift 编写的 react native 组件,我想将它提取为一个框架,以便其他项目/人员可以轻松使用它。
首先我创建了一个新的iOS项目Foo,添加了一个框架目标,
然后添加源文件。最后,我构建了它。
失败是因为:
Bar.swift:[lineNumber]: 使用未解析的标识符“RCTConvert” RNBarManager.swift:[lineNUMber]: 使用未声明的类型'RCTViewManager'
尝试 1:
我跑了react-native link,但没有任何改变。
尝试 2:
- 将
React.xcodeproj拖到Foo项目并将libReact.a添加到Link Binary With Libraries。 - 将
$(SRCROOT)/../node_modules/react-native/React添加到Header Search Paths。
但它不起作用。错误仍然存在。
尝试 3:
我在想也许 Swift 无法识别这些文件。
所以我添加了Foo-Bridging-Headers.h,就像我在 React-Native App 中所做的那样,其中包含以下代码:
#import "React/RCTBridge.h"
#import "React/RCTViewManager.h"
#import "React/RCTUIManager.h"
#import "React/UIView+React.h"
#import "React/RCTBridgeModule.h"
我还添加了Foo-Bridging-Headers.h 到Build Settings->Swift Compiler - General->Object-C Bridging Header,
我还是遇到了错误。
不支持将桥接头与框架目标一起使用
这里似乎不允许使用桥接头。
尝试 4:
我尝试将这些导入添加到Foo.h,
但又报错了。
Foo.h:21:9:在框架模块“Foo”中包含非模块化标头
如何编译成功?
【问题讨论】:
-
也许你可以把这个问题发到CocoaPods github issue section,我想他们会很乐意帮助你的:)
-
@XuDong 找到解决方案了吗?
-
似乎 David Chavez 提供了一种正确的方式来发布 React Native Charts Wrapper:github.com/wuxudong/react-native-charts-wrapper/pull/257
-
要创建这样的框架,您可以使用我的github.com/iyegoroff/make-react-native-package CLI 工具。它创建了一个支持 Swift 的可发布 RN 包。
标签: swift react-native