【问题标题】:Create a static library with React dependency创建一个具有 React 依赖的静态库
【发布时间】: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


【解决方案1】:

我为公司编写了一个自定义模块,您可以查看我的文档。这个自定义模块有内部框架,我把这个框架链接到主项目。在你的 custom_modulem 中有 package.json 吗?

 "peerDependencies": {
    "react": "16.8.3",
    "react-native": "0.59.4"
  }

https://github.com/Hardy1207/RNOkay

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多