Hello,
my indie app has somewhat significant traction in China (both downloads and subscription purchases), but I also have high refund rate there, like multiples of other countries... Perhaps even as 80 % or more of my refunds are in China although the share of downloads and purchases is way lower.
I am curious if someone else also has this issue?
My app has the "Blinkist trial" onboarding which shows the timeline and has notification on day 5 (for weekly trial), that paid subscription starts soon. However even after stopping showing this onboarding in China for new users I still have most of my refunds from China.
I am trying to understand whether this may be broader "phenomenon" or maybe something super specific to my app. As far as I know Apple doesn't share the refund request reasons with developers and I did not get any support emails that would hint at why people are asking for refund.
Thanks!
Since Apple can terminate your developer account if you have "high" refund rate, I would like to get to the bottom of this.
Subscriptions
RSS for tagGive users access to content, services, or premium features in your app on an ongoing basis with subscriptions, a type of in-app purchase.
Posts under Subscriptions tag
200 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I want to test in-app purchase in Sandbox environment but the SKProductsRequest method is returning invalidProductIdentifiers.
When I build the app on simulator or real device including the StoreKit config file, I'm able to see the products. But, when I test after excluding the config file or from the test flight build, I'm not able to see any products.
Can someone help, do we need to Sign up for Paid Apps Agreement with all the bank info and Tax forms even if we have to conduct the tests in Sandbox environment?
Hi,
I have a project in React Native, and I am using react-native-iap to load subscription products.
When I use Xcode to run my app in debug mode, it lists all my subscriptions, and I am able to subscribe successfully. However, the receipt I receive is not getting validated.
When I release the app on TestFlight, it does not list my subscriptions, and I am getting an empty array.
I am using the useIAP hook from react-native-iap to fetch the list of subscriptions.
Additionally, my app and subscriptions are not yet approved because the subscriptions are not being listed correctly.
I have developed a web app for some companies to manage their goods.
I am developing the mobile app too, the service is a paid service via monthly or annual subscription which I have already integrated via Stripe inside web app.
Companies can purchase the subscription via web app and use the mobile app only if the account has an active subscription, if not, the app will be fully limited.
Will Apple Review reject my submission if I don't provide users a method to create a new account and buy subscription via IAP or not?
Or can I just put a link inside app "Manage account" which redirects to the web app and buy subscription there?
I created a subscription in App Store Connect. I'd like to submit it for review along with my new app.
App Store Connect prompts me to select it from the app's In-App Purchases and Subscriptions section on the version page before submitting the version to App Review. But I didn't find the In-App Purchases and Subscriptions section in the version page.
I'm not sure if the version page as I understand it is the same as the version page as App Store Connect.
So, can anyone tell me where I can find the In-App Purchases and Subscriptions section.
I'm using my sandbox account to subscribed to something. I am now trying to open the subscribed item in Settings > Apple ID > Subscriptions > Click on the active sandbox subscription > Cannot Connect.
Has anyone else encountered this? How were you able to get around it?
In my app, I need the user to redeem a code outside the app and then capture the transaction in the callback/response from the App Store. How can I test this process?
Here's my function for opening a URL:
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
I am trying to get the transaction object in the TransactionObserver class:
// Implementation details...
}
Here is the link to this class.
However, I am not receiving the expected callback in this observer.
I am testing on a TestFlight build. My question is: Is it possible to test offer codes in TestFlight? Or is there something wrong with my implementation?
When a user subscribes I create a document in Firestore to track that subscription using my back end. In sandbox it works perfect, one document made for each purchase. When a real user subscribes I get 5 slightly different transaction ID’s (last 4 digits change). Is this just an Apple thing and I should keep all 5? I need them for webhooks to track
Hello:
The App Store provides https://developer.apple.com/help/app-store-connect/configure-in-app-purchase-settings/enter-server-urls-for-app-store-server-notifications When the server interfaces with this interface, it is found that the specific user account cannot be found. How should I know which user initiated the subscription, or which user automatically subscribed during automatic renewal? Do you have a user account or ID?
I hope to receive your complete answer as soon as possible.
Best wishes.
Issue:
Streamlined purchasing cannot be turned off because your latest approved binary doesn’t include the required StoreKit APIs.
For this, I tried selecting the option "Turn Off Streamlined Purchasing" in App Store Connect, and I received this error.
What I’ve Done So Far:
I have added the StoreKit file in Xcode.
Still, I get the error when submitting my app binary.
In app capability added in xcode
My Setup:
React Native
Xcode version
StoreKit2 integration using React Native IAP sdk (react-native-iap)
Code:
Here is the code I am using to set up the in-app purchase system:
RNIap.setup({ storekitMode: 'STOREKIT_HYBRID_MODE' });
const connection = await RNIap.initConnection();
if (connection) {
if (isAndroid) {
await RNIap.flushFailedPurchasesCachedAsPendingAndroid();
} else {
await RNIap.clearTransactionIOS();
}
if (isIos) {
await RNIap.IapIosSk2.sync()
.then(() => {})
.catch((error) => {
console.log('Error IapIosSk2 IAP:', error);
});
}
await getAllSubscriptionList();
await getPlanStructure();
//For Subscription
await RNIap.requestSubscription({
sku: sku,
subscriptionOffers: [{ sku, offerToken }],
});
//For Consumable Products
await RNIap.requestPurchase({
sku: sku,
andDangerouslyFinishTransactionAutomaticallyIOS: false,
});
}
Steps I’ve Taken to Troubleshoot:
Cleaned and rebuilt the project.
Checked App Store Connect settings for in-app purchases.
Question:
How can I resolve this error? Are there additional steps required to correctly enable StoreKit2 in a React Native project?
Additional Info:
Any advice or guidance on this issue would be greatly appreciated.
I'm trying to sign in to the Sandbox account on iOS, but nothing is happening. The "Sign In" button is just inactive for a few seconds.
I'm hoping for a clarification of this language from https://developer.apple.com/help/app-store-connect/offer-promo-codes/request-and-manage-promo-codes/ --
"You can provide up to 100 promo codes for each in-app purchase product, with a limit of 1,000 total codes for all in-app purchases for an app every six months (resetting on January 1 and July 1)."
It's clear to me that the limit of 1000 total codes resets twice a year, but is that also true of the 100 per in-app-purchase?
First time having an app on the App Store. I am by no means a professional.
I am trying to set up subscriptions but received the following message.
How do I go about doing this?
Issue Description
The submission did not include all the required information for apps offering auto-renewable subscriptions. Apps offering auto-renewable subscriptions must include all of the following required information in the binary:
Title of auto-renewing subscription, which may be the same as the in-app purchase product name
Length of subscription
Price of subscription, and price per unit if appropriate
Functional links to the privacy policy and Terms of Use (EULA)
The app metadata must also include functional links to the privacy policy and Terms of Use (EULA).
Next Steps
Update the app's binary to include the following required information:
Title of publication or service
A functional link to the Terms of Use (EULA)
A functional link to the privacy policy
Update the app's metadata to include the following required information:
A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect.
A functional link to the privacy policy
Thanks.
We have an application that currently supports iOS 16, and in order to disable Streamlined Purchasing, the latest approved binary must include the necessary StoreKit APIs.
The StoreKit API includes the PurchaseIntent, which is available from iOS 16.4.
Our question is: Can we disable Streamlined Purchasing for our app? If yes, how will it work for devices running iOS versions earlier than 16.4?
I have a SaaS solution for Beauty Services Industry.A Salon can download the app, create account and add users. They pay per user.
Is there a way we can have seat based pricing with Apple subscription? The salon can add a user mid month or remove one and the rates should reflect those.
I have tried all forums but I am not getting any way of doing this.
What happens after 12 renewals? Does the subscription expire completely? The next day when I try to manage settings for my sandbox account it says it cannot connect.
I cannot see the status of subscription in:
Settings-> App Store -> Sandbox Account -> Manage
Logging out and logging in of my regular account does not fix that.
When I login with a different non-testflight sandbox account I can finally edit those settings. There are some missing details in documentation explaining testflight sandbox accounts. Do these accounts stop working after 12 auto-renewals? I need more specific details in order to ensure subscriptions will work properly during production.
I am using the SubscriptionStoreView in my app including links to the privacy policy and terms of service.
However, when clicking the links the displayed sheet is too wide, effectively cutting of the sides (including the done button). This prevents closing the sheet.
Am I doing something wrong here, or is this a bug?
Minimal example code:
import SwiftUI
import StoreKit
struct SwiftUIView: View {
var body: some View {
SubscriptionStoreView(groupID: EntitlementManager.subscriptionGroupID)
.subscriptionStorePolicyDestination(url: AppConfig.privacyPolicyURL, for: .privacyPolicy)
.subscriptionStorePolicyDestination(url: AppConfig.termsOfServiceURL, for: .termsOfService)
}
}
#Preview {
SwiftUIView()
}
Screenshot:
I am currently exploring the implementation of win-back offer in my app to encourage lapsed subscribers to re-subscribe. I plan to use the automatic win-back offer sheet that display to eligible customers upon app launch, as described in the documentation. However, I am unclear about the specific iOS version requirements needed to support this feature effectively.
Could someone clarify the minimum iOS, iPadOS, and macOS versions required for these automatic win-back offer sheet?
We have subscriptions for our app that are in the "waiting for review" state. The subscriptions page has the message "Your first subscription must be submitted with a new app version. Create your subscription, then select it from the app’s In-App Purchases and Subscriptions section on the version page before submitting the version to App Review."
However I don't see any section in the app to enter this. It seems to be a similar issue to what is being described at https://stackoverflow.com/questions/73098652/app-store-connect-in-app-purchase-and-subscriptions-section-missing?rq=2, but I have all requirements fulfilled; all compliance and tax forms have been completed, and I have made changes to my subscriptions in response to app review.
I did add these subscriptions to my app in a previous round in the approval process, and I thought that was why it wasn't appearing now. However, my app is now live and users are not seeing the subscriptions options when they try to enter the app (which had previously worked in sandbox mode)
I want to sell the same subscription in multiple apps so that if someone subscribes in one they show up as having a subscription in the other.
Apple's documentation states "To get started, use App Store Connect to create a separate and equivalent auto-renewable subscription for each app that offers the multi-app subscription so that users can subscribe from any app." (https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/subscriptions_and_offers/offering_a_subscription_across_multiple_apps)
But I'm unable to create two subscriptions with the same Product ID. I could create two subscriptions that are equivalent but with different Product IDs that are treated as the same by our server, which would accomplish the main goal, but I believe this risks someone subscribing to both subscriptions if they do so directly through the App Store, for example using a promo code link, because they're still two different subscriptions to Apple.
Thanks!