我是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()
在用于最终质量检查/部署的单独分支上:
1)创建一个名为detached
2)运行expo eject
3)运行react-native link react-native-iap
和此处列出的所有其他手动安装步骤:https://github.com/dooboolab/react-native-iap#manual-installation
4)对所有内容进行质量检查
5)部署
有没有人做过这种混合的“开发用博览会,没有生产用博览会”的经验?
答案 0 :(得分:1)
如果弹出并使用Expo
,则可以像默认React-native
项目一样使用它。将创建Android
文件夹和iOS
文件夹,并在创建它们之前输入适当的程序包名称。弹出Expo
时,已安装的模块和Expo
中的模块将添加到软件包列表中。在MainApplication.java
中检查Android
,在Info.list
中检查iOS
文件。弹出App.json
之后,有些事情不适用于Expo
设置。可以参考官方文件进行设置。
一旦弹出Expo
,React-native link
命令将被出色地执行。
弹出Expo
不会更改或消失模块使用情况