【问题标题】:React Native: Is it possible to use Expo just for development?React Native:是否可以仅将 Expo 用于开发?
【发布时间】:2019-08-06 02:30:47
【问题描述】:

我是 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 内容

在用于最终 QA/部署的单独分支上:

1) 创建一个名为detached的新分支

2) 运行expo eject

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

4) 对所有内容进行质量检查

5) 部署

有没有人有过这种混合的“开发博览会,生产不博览会”方法的经验?

【问题讨论】:

  • 你是说你在不断开Expo的情况下使用模块?
  • @hongdevelop 我想继续使用 Expo 进行编码,就好像模块在那里一样,只有在我部署之前,我才会弹出 Expo 并安装/QA IAP 的东西。我的问题是这个理论是否可行。就像我所有其他依赖 Expo 托管工作流的 Expo 依赖项会发生什么一样?他们会在弹出后神奇地正确安装吗?
  • 如果您弹出并使用Expo,您可以像使用默认的React-native 项目一样使用它。 Android 文件夹和iOS 文件夹已创建,您将在创建它们之前输入适当的包名称。当您弹出Expo 时,您已安装的模块和Expo 中的模块将被添加到包列表中。检查MainApplication.java 以获取AndroidInfo.list 文件以获取iOS。有些东西不适用于在您弹出Expo 后负责设置的App.json 设置。可以参考官方文档设置。
  • Expo 退出后,React-native link 命令执行得非常出色。
  • 其实我也是通过expo做了一个项目,把expo弹出了,用了你问的那个模块。

标签: react-native in-app-purchase expo in-app-billing in-app-subscription


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 2017-01-07
    • 2021-12-19
    • 2017-07-22
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多