Post not yet marked as solved
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requires users to register with personal information to purchase in-app purchase products that are not account based.
Apps cannot require user registration prior to allowing access to app content and features that are not associated specifically to the user. User registration that requires the sharing of personal information must be optional or tied to account-specific functionality.
Next Steps
To resolve this issue, please revise your app to not require users to register before purchasing in-app purchase products that are not account based. You may explain to the user that registering will enable them to access the purchased content from any of their iOS devices and provide them a way to register at any time, if they wish to later extend access to additional devices.
Please note that although App Store Review Guideline 3.1.2 requires an app to make subscription content available to all the iOS devices owned by a single user, it is not appropriate to force user registration to meet this requirement; such user registration must be optional.
Our app has been rejected multiple times and we feel hopeless. User login is required for in-app purchases as our company has developed products across multiple platforms, including Mac, Windows, and Android. User login is necessary for providing data sharing services.
Despite explaining this multiple times, it seems we are not able to get our point across.
What can we do in this situation? Urgently waiting for your response.
Post not yet marked as solved
Dear All,
My iOS app used to work OK on macOS, but since a macOS update in-app purchases have stopped working. It seems that the storekitagent process is no longer able to save the receipt to the filesystem. Here is what I see in the system log after I do a "refresh receipt":
default 22:03:47.822657+0100 storekitagent [58C16E76_SK1] Writing receipt (83905 bytes) to file:///Users/phil/Library/Containers/0407ACA7-9EE2-4E32-AA3E-101A1B38EE70/Data/StoreKit/sandboxReceipt
error 22:03:47.823539+0100 kernel Sandbox: storekitagent(1382) deny(1) file-write-unlink /Users/phil/Library/Containers/0407ACA7-9EE2-4E32-AA3E-101A1B38EE70/Data/StoreKit/sandboxReceipt
error 22:03:47.824306+0100 storekitagent [58C16E76_SK1] Error writing receipt (83905 bytes) to file:///Users/phil/Library/Containers/0407ACA7-9EE2-4E32-AA3E-101A1B38EE70/Data/StoreKit/sandboxReceipt: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “sandboxReceipt” in the folder “StoreKit”." UserInfo={NSFilePath=/Users/phil/Library/Containers/0407ACA7-9EE2-4E32-AA3E-101A1B38EE70/Data/StoreKit/sandboxReceipt, NSUnderlyingError=0x145c19f80 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
Note that is a sandboxReceipt on my development system, but I have a report from a user who seems to be suffering the same problem with the app store version of the app.
Is anyone else seeing this?
Is there a "quick hack" I can do to grant the storekitagent process permission to write to that folder?
Post not yet marked as solved
I am developing app for sharing rides like BlaBlaCar. I have credit system that requires users to buy credits to actually use app. I am unsure if Apple will allow me to integrate custom payment gateway or I will need to integrate in app payments.. I wouldn't like to lose 20-30 % of money in in app payments from Apple. Are those credits considered as digital product or not? I am also planning monthly subscription so users don't need to "pay" credits for using app but have unlimited access to app for that month. Will that be a problem?
Post not yet marked as solved
Hello,
After submission of a new app, we got review feedback that the IAP doesn't work. Upon further investigation, one issue we found is that the IAP is not added to the app submission as mentioned in https://help.apple.com/app-store-connect/#/dev1986a0e5c (submit IAP for the first time section).
However, in our app store connect we found that there is no button to add IAP purchase as shown in the above page.
Is there a possible glitch in App Store Connect that does not show the add IAP section?
Thanks.
Post not yet marked as solved
I'm currently using App Store Server Notifications which is fine I have an endpoint and i am receiving data. I can see that in the message the originalTransactionId looks to be a unique Id based on a subscription for a user. My issue is if the App is uninstalled and then reinstalled with the same Apple Account, then they subscribe to the App this will give me a different originalTransactionId, which I need to be able to link this to the same user somehow? Is there way this can be done? I need some sort of global unique Id for a apple user which will be the same no matter if they uninstall and reinstall.
thanks,
James
Post not yet marked as solved
Can you provide an external link to a shop in an app, if items in the shop can only be obtained using a platform currency? The platform currency can only be acquired by completing actions in the app.
The platform currency cannot be bought in the app or on the web. And the items in the shop cannot be bought using money. They can only be obtained by completing actions in the app.
Looking for some thoughts here since no monetary payments or purcahses are happening.
Post not yet marked as solved
Hello,
I'm making an app where users can create a multimedia object and other users can use in-app currency (purchased via in-app purchase) to gain access to the object. They can also choose to subscribe to a creator to encourage and support their content creation. Tokens can be converted to cash and sent to creators.
It is unclear to me whether this violates app store rules. After reading through the App Store Guidelines and searching through the forums (this thread was close to what I was looking for), I have yet to arrive at a clear answer.
The Guidelines state that "tipping" content creators is acceptable, but this isn't exactly what I'm looking for in a creator marketplace. The Business section doesn't contain anything else that seems relevant, and this makes it seem like only voluntary tipping of content creators is accepted.
The commerce engineer in the thread linked above discourages using in-app currency, but that doesn't seem to work for my use case (the thread's creator wants to use the IAP mechanism). Furthermore, IAP cannot be created programmatically (i.e. by users) and is error-prone.
It must be stressed that I'm not trying to deny giving Apple its 15-30% share, since users must buy in-app currency using Apple's IAP (this is not a multi-platform app). Cash in the app's economy has only one entry point, and that is via Apple's IAP.
I have asked a similar question recently, but received no response. This is probably because I didn't phrase it well enough and didn't attach the correct tags.
Creating the infrastructure for a creator marketplace app is a lot of grueling work, and I would very much like to know whether my app will be rejected for it before I embark on this quest. Any help would be greatly appreciated.
tl;dr - Is the ability to make in-app currency purchases of creator content a violation of app store rules?
Post not yet marked as solved
We're developing an app which allows users to purchase 2 types of things.
Thing 1: In-app credits, which allow users to post content.
Thing 2: Physical objects which will be shipped to the users delivery address. These physical objects also include X free in-app credits.
From what I understand from the rules, Thing 1 would require an in-app purchase.
3.1.1 In-App Purchase: If you want to unlock features or functionality within your app, (by way of example: subscriptions, in-game currencies, game levels, access to premium content, or unlocking a full version), you must use in-app purchase.
Thing 2 is a bit more complicated... But I assume it means we need to use apply pay or another payment provider.
3.1.3(e) Goods and Services Outside of the App: If your app enables people to purchase physical goods or services that will be consumed outside of the app, you must use purchase methods other than in-app purchase to collect those payments, such as Apple Pay or traditional credit card entry.
However, would we be able to automatically give the users who purchase thing 2 in-app credits? Or would we need to develop a mechanism for users to apply these credits manually, i.e. with a voucher code.
I hope this makes sense.
Post not yet marked as solved
Hi team,
I would to extract the order information of customer's in-app purchase on app store to match against sales revenue. Looking through the Apple API documentation, I am taking the following steps
Get status and history for in-app purchase transactions through the App Store Server API by calling the Get Transaction History endpoint. This returns me the purchase date, transactionID, and quantity information. There is also a field called productID which was created in Apple Store Connect.
However i would also need to extract price information such as currency and item unit price. I looked through Apple Store Connect API which contains in app purchase information. How should i retrieve these fields from the response from Get Transaction History endpoint. Should I use the productID and what are the subsequent API endpoints to query?
Post not yet marked as solved
In the app I am currently creating, I want to make the user logged in only after signing in with apple and making in-app purchases.
In other words, if the user only creates an account and does not make in-app purchases, he/she is not logged in, and we do not want to display the "delete account" button.
However, if the user leaves the app without making an in-app purchase, the account information will be kept on the server.
I understand that after 6/30/2022, users must be able to delete their accounts. Can we use a batch process to periodically delete accounts that have not made in-app purchases and hit the API for token deletion to satisfy the app's review requirements? Also, would it be a problem if we mention in the terms of service, etc. that accounts that have not made in-app purchases are to be deleted periodically?
Post not yet marked as solved
Hello,
I try to set up an in-App Purchase of my app. I have studied quite a lot of manuals and links. The app is written in Objective-C. But manuals and links refer to Swift code. I found no solution how to implement an in-App Purchase in Objective-C code. I am looking for a code example which I can adapt to and integrate into my app.
Thank you for any help
Best regards
gefa
I would like to split my free app into smaller parts so the download size is smaller. But I read somewhere that On Demand Resources are for in-app purchases only.
Can I use On Demand Resources in my free app?
Post not yet marked as solved
When I want to delete the application, I keep getting the following error. No one on the apple side is helping.
Error:
This app is unable to be removed right now.
This app has in-app purchases that are in review. Please try again once these in-app purchases are no longer being reviewed.
Post not yet marked as solved
We want to stop the sale of our auto-renewable subscription for our app. But still allow existing subscribers to continue using the subscription until they decide to cancel.
Removing the availability of the subscription seems to stop the additional sign-ups plus renewals. However we're not ready to stop renewals. Is it possible to configure it the way we want it through App Store Connect or do we need to put the restriction on our app? Thanks!
Post not yet marked as solved
Hi team, I tested the purchase flow under different country.
I logged in store sandbox as a Japan account. I can get the product list result which shows $1200 monthly which match the price mapping in AppStore console even my App only enabled Canada and United State in Appstore connect .
Purchase this product is also success in sandbox.
why purchase is success can you help me understand what else we need to do ?
Post not yet marked as solved
Hello everyone,
Let's say I have a Books app with millions of books on sale at the same price. According to the Non-consumable definition, a book will not expire, so it should be Non-consumable. The problem is it is impossible to set millions of Non-consumables. But I can't use 1 Non-consumable product id for all of the books because a Non-consumable just can be purchased once.
So, how does everyone deal with this?
Post not yet marked as solved
Hello all, we have in-app purchases in our application. Our server is used to verify all transactions. We get transaction_id from verifyReceipts API along with other data.
In the report that we get from Apple, there is no transaction_id or any common field that can uniquely identify a payment. Can we add transaction_id into reports somehow?
Post not yet marked as solved
The app sells non-consumable in-app purchases.
I also checked to enable family sharing.
However, there are frequent cases where users share purchases using the family sharing function and fail when attempting to purchase or restore from a device of the shared account.
Or, if a user who received the sharing makes a purchase, it will not be processed as shared payment information, but will be paid with the payment registered with the Apple ID of the current device.
I used StoreKit2 and use Transaction.currentEntitlements to get payment info after purchase or restore.
However, non-consumable in-app purchase information that has been shared with the family does not arrive normally.
When I looked at the Storekit2 documentation, I know that there is nothing special handled or added in the API or code related to family sharing.
If I'm wrong on this part or if you know a good solution to this non-consumable payment - family sharing, please advise.
Post not yet marked as solved
According to the appstoreconnect json api docs, rates are supposed to be limited to a certain number of requests per hour (in my case it seems to be 3600)
Doc here:
https://developer.apple.com/documentation/appstoreconnectapi/identifying_rate_limits
However, in my usage, I'm getting HTTP 429 RATE_LIMIT_EXCEEDED, while at the same time getting a header back indicating that there are plenty of requests left this hour (e.g. "x-rate-limit": "user-hour-lim:3600;user-hour-rem:3121;").
I'll handle these responses gracefully, and retry them later of course, but we have a lot of iaps to keep up to date, so I'd really like to be able to optimize my request rate so that I don't wind up making a bunch of requests over and over again in hopes of getting them to go through.
Is it possible that there's some secret rate limit for parallelized requests? I've got my updater running in multiple threads in hopes of making the whole process faster, and started by sending them as quick as I could up to the specified limit per hour. In most cases we've only got a few dozen / hundred iaps to update at a time, but I also need it to work in the rare instances when we need to update thousands at once.
I'm also tracking data locally so that I only need to post updates when prices actually change, but sometimes we do put everything on sale.
Post not yet marked as solved
We are building an app that users with library cards would be able to have access our content of ebooks and audio books to borrow for a limited time.
The users with these registered library card numbers sign in ( would not get charged by us ) search within the list of contents
select the book and borrow it, book will be delivered and downloaded in their in app library
After the borrowed expiry date, the content will be removed from their library.
I am not sure if it's considered B2B2C or not as there's no transaction in-app.
Is there a document that I can read on Apple T&Cs for this business model?