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中依赖
例子
就是
implementation 'javax.inject:javax.inject:1'
然后将所有的依赖的库都加上即可