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

时间:2019-08-06 02:30:47

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

我是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)部署

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

1 个答案:

答案 0 :(得分:1)

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

一旦弹出ExpoReact-native link命令将被出色地执行。

弹出Expo不会更改或消失模块使用情况