ReactNative的SDK打包后给到其他项目集成

      因为这边写了一个SDK,内部基本都是用RN完成的,但是可以在原生接入,所以就需要将写好的RN版本的SDK打包成可以被集成的形式,如果让CP安装RN环境又不大现实,所以就引申出来这个需求,撇开SDK功能性的代码,我们直接开始关注如何将RN的SDK打包

 

RN部分的功能主要分为三部分:

1、JS部分,这部分是我们主要完成的功能的JS代码部分,这部分其实打包之后就是一个jsbundle文件,以Android为例,就是在assets文件夹下面的index.android.bundle文件,这部分直接拿出来就行了,让接入SDK的人直接放在assets下面即可

2、与RN交互的部分,这部分其实主要是给原生部分交互用的

3、Facebook的导入部分,这部分是主要问题所在,所以就只说这部分了

 

Facebook部分的打包导入

在项目中,开发时我们导入的facebook的方式是

implementation "com.facebook.react:react-native:+"

但是这种方式其实是引用的我们项目下的node_models下的文件,如果在没有node_models的情况下,只会是自动下载了0.2.0版本的facebook的库,这是很坑爹的

那么如何把我们开发的环境在对方不用弄facebook环境的情况下可以正常使用呢?

1、找到node_modules -> react-native -> android -> react-native -> 版本目录 ->找到aar文件,这个aar就是我们需要的facebook库

2、在上面的同级目录找到.pom文件,打开,找到里面<dependencies>标签下的所有<dependency>项

3、将每一项<dependency>说明的库在Android Studio中依赖

例子

ReactNative的SDK打包后给到其他项目集成

就是

implementation 'javax.inject:javax.inject:1'

然后将所有的依赖的库都加上即可