我正在探索使用react native创建iOS框架(android library)的可能性,该框架可以通过在构建应用程序时包含来分发并与应用程序集成.

例如,维护单个代码库为ios创建".framework",或.jar for android(基本上是编译代码,而不是react组件代码)作为开发者社区的发行版.

推荐答案

React native建议通过npm install安装React依赖项.一个非常基本的解决方案是在不使用react-native的情况下发布库,然后让SDK用户通过react推荐的方式安装react-native.

https://facebook.github.io/react-native/docs/integration-with-existing-apps.html

 

Android:

在私有maven repo上托管react native,并要求SDK用户在其项目级构建中添加以下内容.格雷德尔档案,

allprojects {
    repositories {
        jcenter()
        maven {
            // All of React Native (JS, Android binaries) is installed from private maven repo
            url "<Your private maven repo url.>"
        }
    }
}

 

dependencies {

    compile 'com.facebook.react:react-native:0.53.+'

}

您还可以使用这个私有maven repo来托管SDK的aar文件.

有了这个变化,Android开发者将很容易在他们的应用程序中包含您的SDK并做出react native .

iOS:

我们的第一个解决方案是在.framework文件中包含react库,并创建一个fat二进制文件.这要求你包括,Librect.在你的框架文件中包含一个和其他相关的文件,并将它们链接起来.

使用此解决方案,您的.framework包括所有依赖项.与SDK的集成将非常简单(只需拖放到Frameworks文件夹).这种方法的问题在于,React原生库的规模正在增长.最新报道.文件大小为105MB.这意味着框架文件的大小将是巨大的,SDK用户将难以将其推送到github.

我们最近转向了一个解决方案,在这个解决方案中,我们在私有pod中托管React本机依赖项,SDK用户可以通过在其pod文件中添加几行代码来下载React依赖项.这个解决方案就像react native推荐的方法,我们唯一要避免的就是npm install.我们想给我们的SDK用户两个选项(一个有npm安装,另一个没有).根据SDK用户的反馈,我们将决定future 的构建过程. 

请注意,这个解决方案有多个限制和维护开销,但它解决了我们的用例.这可能不适用于所有人.

React-native相关问答推荐

'无法解析模块.安装react-native-pager-view后的实用程序/平台

expo 日历应用因权限问题而崩溃

一旦我关闭应用程序,Json struct 就会发生变化

根据搜索字符串中的每个字母过滤数组

React Native - 动画宽度缩小

react-native 自定义视图,原生 prop 没有 propType

RNMK - 超级表达式必须为空或函数

react native HTML entities

滚动到具有可变元素大小的 FlatList 中的某些索引的有效方法

使用 react-native 设置 Select 器的高度

如何使用 InteractionManager.runAfterInteractions 使导航器过渡更快

在 UIManager 中找不到RNCSafeAreaView

react-native fetch 和基本身份验证

react-native如何禁用android开发模式

如何在react-native中关闭模态

React 本机矢量图标在当前版本 0.60 上不起作用

发布未使用 JavaScript 代码更新的 APK

react-native 开始给出 Invalid 正则表达式无效错误

如何定义react-native应用程序的入口点

如何更改后退按钮标签,react-navigation