In App Purchases
Brent Vatne
Moved from: https://github.com/expo/expo/issues/11
Add support for in app purchases to standalone apps on iOS and Android in the managed workflow
Status as of May 3, 2021:
We are working on supporting native plugins in Expo managed apps, you can read about it here: https://blog.expo.io/expo-managed-workflow-in-2021-d1c9b68aa10 - but it's not ready yet.
------------------------------
Status as of July 21, 2020:
The same as the previous status update applies here. We are still building the infrastructure that we need to be able to support IAPs in the managed workflow. If you need them, I recommend ejecting to the bare workflow. You can continue to use all of the Expo SDK packages after ejecting, including OTA updates and Notifications. https://docs.expo.io/workflow/customizing/
------------------------------
Status as of April 14, 2020:
IAP APIs in the managed workflow will not be available until we have completed support for native plugins in the managed workflow, which is part of our rewrite of the build service. You may want to consider using bare workflow for now! You can continue to use Updates and Notifications in bare React Native apps now as of SDK 37: https://blog.expo.io/expo-sdk-37-is-now-available-dd5770f066a6.
------------------------------
Status as of November 7, 2019:
This feature is definitely important for us in the medium to long-term but we need to build some more infrastructure before it's possible. We're currently rewriting our build service to make it capable of handling adding In-App Purchase support to apps but it's not there yet.
Wodin
RevenueCat has posted to the Expo forums to announce that they officially support Expo's managed workflow.
Here's their documentation:
https://docs.revenuecat.com/docs/reactnative#expo-special-instructions
According to the documentation this seems to work without a config plugin.
A
Ahmad Alanazi
So is there an actual solution or no?
Wodin
Ahmad Alanazi: Yes. You can use RevenueCat
Noel Broda
I can confirm Revenue Cat works. I implemented it, and I already have 2 subscriptors.
Quite good documentation
Kim Brandwijk
open
Wodin
RevenueCat has posted to the Expo forums to announce that they officially support Expo's managed workflow.
Here's their documentation:
According to the documentation this seems to work without a config plugin.
Serdar D
Wodin: finally!! 😍 it is time to move the apps!!
Gustavo Ehrhardt
Wodin: I'm so lucky because I just finished app purchases yesterday on bare workflow :P
But it still good news \o/
Apps Genie
Would love to hear if anyone has successfully implemented the RevenueCat module in the managed workflow. And if this is approved by Expo as alternative to the expo-in-app-purchases... Any idea why expo-in-app-purchases is only available in bare and somehow RevenueCat's version works in managed?
Noel Broda
We are 1 year after the last update.
Getting a new update will be awesome. At least something like: "Still in progress bro"
Serdar D
Noel Broda: you have kind of sixth sense Noel :D
V
Vaibhav Verma
Hi! Is there any update regarding this feature?
P
Piotr Szlagura
Any news on when this functionality is going to be implemented?
MyCloudVIP com
LOVE TO SEE THIS HAPPEN SOON....
Any update on this highly needed request? Doing this on the bare workflow takes away the magic and beauty of EXPO. Please consider speeding up or prioritizing this essential feature. I need to start managing subscriptions on both platforms and trial to monthly / annual conversions. Please allow this to go through! Best regards.
Rachel Lau
Hey all! I am pretty new to Expo. Since the EAS is launch and seems to have built-in Eject (being called "Pre-Build'). does it mean that now we can use EAS with In-App Purchase plug-in? I know this modification is not completely done, but wonder if it is possible to use In-App Purchase without eject into bare workflow?? Cheers!
Ajay Thakur
With Expo EAS Build + Custom dev client, we have been using https://docs.expo.dev/versions/latest/sdk/in-app-purchases/ for more than one month in the production. Thanks, Brent for guiding me through.
- No custom configs or linking, EAS handles everything for you! and the Custom dev client allows you to code and test Expo in-app purchases.
- Expo managed, Push notification Service, publish and everything is working smoothly and sales are coming 💥
Apps Genie
Ajay Thakur: those are some great news! Do you happen to know of a guide we can look at to add IAP as first time add-in to an existing managed flow app?
Wodin
Apps Genie: See Jonathan Payet's blog post below.
Lisa Lee
Ajay Thakur: Ajay, did you have to create a config plugin? If so, would you mind sharing it with us? Thank you.
Apps Genie
Wodin: maybe it's my misunderstanding but in Jonathan 's blog post, we have to use expo-dev-client. But I've seen online somewhere that it's not required and that if you do the custom client you are effectively ejecting. So I wanted to double check before I do that. And also have the config plugin question as below.
Wodin
Apps Genie: No, that's not quite right.
When you install native code like RevenueCat's react-native-purchases you can no longer use the Expo Go app during development (except if you avoid calling the native code when you're in development mode).
expo-dev-client
is basically like a custom version of Expo Go that has your native dependencies built-in. So you can still use the dev client instead of Expo Go when you're developing the app.Using
expo-dev-client
is not required, but I think it is desirable.expo-dev-client
can
be used in an ejected app, but it can also be used in a managed app. There is definitely no need to eject to use expo-dev-client
.Since EAS Build, custom dev clients, config plugins etc. are still new, most information out there will tell you that you cannot use certain native libraries without ejecting. But these days it's definitely possible. Sometimes it might still be hard, though, because you might need to write a config plugin, or it might not be easy to do certain things in a config plugin (e.g. editing
MainApplication.java
seems to be a bit problematic in a config plugin.)N
Nam Anh
WARNING:
I had follow this instruction. I end up with IAP integrated successfully. However, my Application changed to Bare Workflow.
Please have consideration because we can not roll it back.
Wodin
Nam Anh: Hi. Which instructions did you follow exactly? You can definitely switch back to the managed workflow if you want to. This might be easy or hard depending on what changes you made while in the bare workflow.
N
Nam Anh
Wodin: Sorry for late reply. The story like this.
- In order to run use react-native-purchase, we need to run the application onexpo-dev-client.
- To use expo-dev-client, we need to run expo run:ios/android instead of expo start.
- When you run expo run:ios/android, it create ios and android fodlers and install react-native-unimodules. Now it comes to bare flow.
Wodin
Nam Anh: Hi. You do not have to run
expo run:*
. That is one way to do things. I am not sure why the documentation seems to recommend that. I would rather suggest to build with eas build --profile development --platform android --local
and then install the APK on your phone or emulator and run expo start --dev-client
. Similar for iOS.See this if you want to revert the
expo run:*
changes.Rachel Lau
Ajay Thakur: Does it work in iOS too? How do you enable the In-App Purchases capability for your app in Xcode?
Load More
→