React Native:是否可以仅将 Expo 用于开发?

React Native: Is it possible to use Expo just for development?

我是 Expo 的新手,但到目前为止,无需在本地打开 Android Studio / Xcode 到 运行 我的应用程序,这看起来非常简洁。不用碰那些东西,开发起来就方便多了。

但是,我想在我的应用程序中加入应用程序购买(订阅),并且从我到目前为止所做的研究来看,Expo 的解决方案 (https://docs.expo.io/versions/latest/sdk/in-app-purchases/) 似乎不是很发达。

我找到了这个用于应用内购买的 npm 包,它看起来很有前途:https://github.com/dooboolab/react-native-iap。但是它不受 Expo 的支持,我觉得不值得为了这个功能而放弃 Expo 的所有好处。

我注意到这里的问题中有一条评论非常有趣:https://github.com/dooboolab/react-native-iap/issues/174#issuecomment-393704277

此人建议我可以继续使用 Expo 的 master 分支,然后在时间准备好时按照这些步骤弹出和部署。我从来没有这样做过,但我想知道这是否可行:

主控:

1) 运行 npm install --save react-native-iap 但不要 运行 react-native link react-native-iap.

2) 用这段代码包装我的应用内购买模块。这样你的代码在调用 IAP 方法时就不会崩溃

import { NativeModules } from 'react-native';
const { RNIapModule } = NativeModules;
function hasIAP() {
  return !!NativeModules.RNIapModule;
}

3) 继续使用 Expo 进行开发,如果 !hasIAP()

则跳过 IAP 内容

在用于最终质量检查/部署的单独分支上:

1) 创建一个名为 detached

的新分支

2) 运行 expo eject

3) 运行 react-native link react-native-iap 以及此处列出的所有其他手动安装步骤:https://github.com/dooboolab/react-native-iap#manual-installation

4) 质量检查一切

5) 部署

有没有人有使用这种混合 "expo for development, no expo for production" 方法的经验?

如果弹出并使用 Expo,则可以像默认 React-native 项目一样使用它。 Android 文件夹和iOS 文件夹已创建,您将在创建它们之前输入适当的包名称。当您弹出 Expo 时,您安装的模块和 Expo 中的模块将添加到软件包列表中。检查 MainApplication.java 中的 Android 或检查 Info.list 个文件中的 iOS。有些东西不适用于 App.json 设置,这些设置在您弹出 Expo 后负责设置。可以参考官方文档设置。

一旦 Expo 被弹出,React-native link 命令就会出色地执行。

弹出 Expo 不会改变或从模块使用中消失