我正在探索使用react native创建iOS框架(android library)的可能性,该框架可以通过在构建应用程序时包含来分发并与应用程序集成.
例如,维护单个代码库为ios创建".framework",或.jar for android(基本上是编译代码,而不是react组件代码)作为开发者社区的发行版.
我正在探索使用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 的构建过程.
请注意,这个解决方案有多个限制和维护开销,但它解决了我们的用例.这可能不适用于所有人.