适用于 Android 和 iOS 的不同软件包版本



我正在使用React Native为Android和iOS开发一个应用程序。

我正在使用的一个库有点问题,因为该应用程序只能正确编译:

  • 。在安卓上使用"react-native": "0.42.0"时。
  • 。在iOS上使用"react-native": "0.37.0".

(库本身,以及react-native的具体版本对于这个讨论都不重要。重要的是,我似乎需要"同时">两个单独的版本 - 每个平台都有一个不同的版本。

我正在寻找一种方法来拥有一个单一的代码库,该代码库可以使用任何平台的相关工具进行编译,而无需任何修改1。我想到的解决方案是(以某种方式):

  • 为每个移动操作系统指定不同的软件包版本。
  • 每个平台都有完全不同的package.json文件。

但是,我不知道如何实现上述任何一项,或者它们是否可能。我尝试按照特定于平台的代码的 React-Native 文档中的说明添加.ios.android,但 npm 无法识别这些文件。

所以我的问题是:

  1. 我的想法是否可行,如果是,如何可行?
  2. 还有其他方法可以获得预期的结果吗?

1在类似 C 的代码中,使用预处理器标志很容易做到这一点。

您可以使用 git 分支,因此您可以保留不同版本的 package.json 文件。

还没有尝试过,但我要尝试。有人建议我试试这个:"将 npm 别名与 Metro 支持的平台特定文件一起package.json(例如Component.ios.js)">

可能是像...

{
"package-v1": "http://example.com/package-v1",
"package-v2": "http://example.com/package-v2",
// or GitHub based
"package-v1": "orgname/package#v1",
"package-v2": "orgname/package#v2",
}
// Component.ios.js
import "package-v1"
// Component.android.js
import "package-v2"

相关内容

  • 没有找到相关文章

最新更新