如何使用 Swift 创建 React-Native 框架

Posted

技术标签:

【中文标题】如何使用 Swift 创建 React-Native 框架【英文标题】:How to create a React-Native framework using Swift 【发布时间】: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.hBuild 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 包。 【参考方案1】:

这似乎是将 React 链接到您的项目所需的可可豆荚的问题。

尝试使用终端在您的项目目录中运行pod install,然后尝试构建。

【讨论】:

【参考方案2】:

链接发生在托管应用程序中,而不是您创建的框架中。那只需要标题。

【讨论】:

以上是关于如何使用 Swift 创建 React-Native 框架的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 创建 MIDI 文件? [关闭]

如何在 swift 中使用 .xib 创建 UIViewController 子类?

如何使用 Swift 创建 React-Native 框架

Swift - 如何从 mapViewkit 中的 API 数据创建要使用的局部变量

如何在 Swift 中声明、创建和使用方法指针?

如何使用 Swift 创建“超链接”?