【发布时间】:2018-07-24 00:10:56
【问题描述】:
我创建了一个库,它使用本机导航控制器来浏览反应和本机屏幕。该库是用 Swift 编写的,并包含一些用于设置 React 桥等的 Objective-C 代码。目前我可以通过 CocoaPods 通过创建一个 podspec 并在那里定义 React 依赖项来分发这个库。然而,这也迫使用户通过 CocoaPods 在他们的项目中设置 React(就像这样:https://facebook.github.io/react-native/docs/integration-with-existing-apps.html)。我希望他们也使用react-native link 或手动链接选项(例如:https://medium.com/@joshyhargreaves/adding-react-native-to-existing-ios-project-without-cocoapods-6f1ee9106009)。
如果我理解正确,我可以创建一个静态库并分发它。到目前为止,我创建了这个静态库,添加了混合的 swift 和 Objective-c 代码,并尝试手动将其链接到我的主项目中。然而,这会在我的静态库中的一个类中产生错误,我在其中导入 React,就像import React 一样。错误是"No such module 'React'。
我更新了静态库的标题搜索路径以包含:
$(SRCROOT)/../react-native/React
和
$(SRCROOT)/../React
(react-native、React 和我自己的 lib 都在 node_modules 文件夹中)
两者都设置为递归。不幸的是,它仍然没有找到 React 模块。有谁知道如何使用 React 创建一个包含依赖项的静态库?
最终目标是将这个静态库导入我的主项目中,例如 import MyStaticNaivationLib 在我的一个视图控制器中,并从我的静态库中定义的类中导入子类。
我的主要项目也使用https://github.com/rebeccahughes/react-native-device-info。这看起来正是我想要实现的。它是一个静态库,与 React(“import RCTBridgeModule.h”)有依赖关系,我可以在我的主项目中手动链接。唯一不同的是这个项目不包含 Swift 代码。
【问题讨论】:
-
你找到解决办法了吗??
-
@YashwanthReddy 不幸的是没有。仍在为桥接头中的错误而苦苦挣扎。可能与 Swift 有关。
-
你成功了吗?其实我也在尝试将我现有的 react native 应用程序转换为 Lib?
-
很遗憾没有。决定放弃对反应的支持并完全原生。对不起。
标签: swift xcode reactjs react-native static-libraries