创建一个具有React依赖性的静态库

Mar*_*ina 9 xcode static-libraries reactjs swift react-native

我创建了一个库,它使用本机导航控制器来浏览反应和本机屏幕.该库是用Swift编写的,包含一些Objective-c代码来设置React桥等.目前我可以通过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我的一个viewcontrollers和子类中的静态库中定义的类一样.

我的主项目也使用https://github.com/rebeccahughes/react-native-device-info.这看起来正是我想要实现的目标.它是一个静态库,它与React("import RCTBridgeModule.h")具有可靠性,我可以在我的主项目中手动链接.唯一的区别是该项目不包含Swift代码.

小智 1

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

 "peerDependencies": {
    "react": "16.8.3",
    "react-native": "0.59.4"
  }
Run Code Online (Sandbox Code Playgroud)

https://github.com/Hardy1207/RNOkay