I want to build an app for ios using react native. preferably expo.
The app will be for recording user experiences with technology. the SLUDGE that they face while navigating through technology.
I want to have basic login, signup.
The main feature would be to have 2 recording modes.
First is record the screen and the front camera simultaneously.
Second is to record the back camera and the front camera simultaneously.
I can then patch the two outputs later on that is the screen recording and the front camera clip in post processing.
I want to know if this is possible as I was told that react native and expo does not have the support yet. if not is there any library or another approach to make this app come alive.
StoreKit
RSS for tagSupport in-app purchases and interactions with the App Store using StoreKit.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
My server's access to Apple's payment interface (buy. itunes. apple. com/verifiyReceipt) has been unresponsive since the end of March, and I have been searching for a long time without finding any issues. Normally, even if the data is incorrect, there is still a {"status": 21000} response. We are using Alibaba Cloud's virtual servers here. I don't know if Apple has made any adjustments to the interface. If anyone has encountered this problem, please kindly help to answer it. Thank you all.
Topic:
App & System Services
SubTopic:
StoreKit
I’m implementing StoreKit External Purchase Custom Links (EU) and so far it is really painful. I am running into a strange, device-specific issue. On 3/4 devices it works. On one device I never get a token at launch nor before a transaction. isEligible is true everywhere. All devices have versions 18.5 and are located in Germany.
Info.plist: SKExternalPurchaseCustomLinkRegions is set to EU storefront codes and I have followed every step in the documentation: https://developer.apple.com/documentation/storekit/externalpurchasecustomlink
Good device: At launch → ACQUISITION = nil, SERVICES = token present. Works consistently.
Faulty device: At launch → ACQUISITION = nil, SERVICES = nil. Same before transaction. No token ever reaches my server from this device.
isEligible is true on both devices.
Any experts or help on the matter?
Topic:
App & System Services
SubTopic:
StoreKit
Hi there,
We have an app targeted for children and we want to use the SkAdNetwork to track installs for campaigns.
We don't want to track further in-app events (purchase etc.), just the install event.
We added the SDK to our Unity app, listed the network identifiers in the plist file, configured the external campaign according to their instructions, but struggle to see any events for several weeks now.
We see the following logs in the app:
Registering install attribution pingback.
Failed to migrate Install Attribution database schema from 17001 => 17400.
SkAdNetwork: No pingbacks found while attempting to register/update.
Error setting install attribution pingback registered for app: 1509727806, error: Error Domain=ASDErrorDomain code=1208
How can we debug this further? What does the error mean?
Thank you very much!
(I hope I posted in the correct forum topic. Apologies if not)
Topic:
App & System Services
SubTopic:
StoreKit
when I have not verified payment method and we choose UPI then pop up shows Purchase In Progress and it shows notification for UPI app payment for apps like Gpay, Paytm. But when we approve or decline this payment StoreKit methods not called for success or failure and we have to kill app to refetch the status and stop the loader.
We are currently integrating In-App Purchases for our app and have configured App Store Server Notifications (v2) in the Sandbox environment.
During testing, we observed the following issue:
When a transaction is cancelled, declined, or pending (e.g., Ask to Buy flows or authorization pending),
No App Store Server Notification is sent to our webhook endpoint.
We only receive webhook events where the status is "purchased".
This becomes a critical problem for us because our backend must accurately track transaction states including failed and pending purchases, especially for wallet top-up use cases.
Additionally, we tried mocking failed transactions (via Xcode local environment and turning off In-App Purchases from Developer Settings) to simulate a technical failure scenario.
Even in these cases, no webhook notification was received when the purchase failed server-side.
Is it expected behavior in Sandbox that only successful transactions ("purchased") trigger webhooks?
Are failed or pending transactions suppressed in Sandbox intentionally?
Will webhook behavior be different in Production (i.e., will we receive webhook notifications for failures there)?
Is there any extra configuration or entitlement needed to fully test failure scenarios via webhooks in Sandbox?
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
In-App Purchase
App Store Server Notifications
I implemented consumable in-app purchases in an iPhone app using ProductView().
When I tap the payment button in ProductView(), I am taken to the payment screen and once the payment is completed the next code seems to be executed, so there doesn't seem to be a problem, but if I tap the payment button in ProductView() again, the next code is executed without taking me to the payment screen.
This means that a single payment can be made multiple times.
Can someone help?
ProductView(id: "geminiOneMatch")
.productViewStyle(.compact)
.padding()
.onInAppPurchaseCompletion { product, result in
if case .success(.success(_)) = result {
// 課金が成功した場合の処理
gemini.addOneMatch(amount: 20)
popUpVM.geminiOneMatchPopUp = false
dataManageVM.generateRespons(locale: locale)
}
}
In the app we're distributing, we've identified a user where the Get All Subscription Statuses API returns two original transaction IDs in the data response. This user has gone through cancellations and re-subscriptions since their initial purchase.
Meanwhile, despite maintaining a continuous subscription, a notification suddenly arrives on the renewal date with original_transaction_id2.
+---------------------------+---------------------------+---------------------+
| original_transaction_id | notification_type | subtype |
+---------------------------+---------------------------+---------------------+
| original_transaction_id1 | SUBSCRIBED | INITIAL_BUY |
~ Repeated cancellations and re-subscriptions ~
| original_transaction_id1 | SUBSCRIBED | RESUBSCRIBE |
| original_transaction_id2 | SUBSCRIBED | INITIAL_BUY |
+---------------------------+---------------------------+---------------------+
Although it can be inferred from the interface definition of the API itself that multiple original transaction IDs may be returned, what causes multiple original transaction IDs to be returned?
Furthermore, is it possible to reproduce the case where multiple original transaction IDs are returned in the sandbox environment provided by Apple?
As for this app, it:
Uses subscriptions through in-app purchases.
Does not offer upgrades, downgrades, or crossgrades, having only one product.
Has never undergone price increases or decreases.
Is distributed exclusively in Japan.
Topic:
App & System Services
SubTopic:
StoreKit
I'm working on adding a single Non-Consumable In-App purchase to my app. Essentially a "try before you buy" type thing. Limited functionality unless the app is purchased.
I am currently testing this using Xcode and the Manage StoreKit Transactions window. So far most everything appears to be working except for declined pending transactions.
If I set Ask to Buy to Enabled, the Ask Permission (for parent or guardian) dialog appears. After pressing the Ask button, I see a transaction listed as Pending Approval. If I Approve the transaction, then my app is notified and all is well.
However, if I Decline the transaction then my app is not notified. Is that normal?
Also, how do I (i.e. the app) know that there is a pending transaction?
Topic:
App & System Services
SubTopic:
StoreKit
I tested a subscription with my developer account, it never charges but at the same time I can't cancel it anymore. It does not appear in the list of my official purchsed subscriptions. I tried to login to the sandbox with my developer account, but then when I click on "Manage" I just keep getting the error "Can't connect - retry".
I have already tried to logout from all the services, App store, etc. and re-login, nothing worked.
Is there anything I can do?
Thanks in advance to anyone who can give any tips.
I don't know if I am posting this in the right place.
I am using xcode's phone simulator and I have setup my sandbox account on appstoreconnect under users and access/sandbox/test accounts
then in my app on the simulator when I tap the subscribe button to purchase my product the a window pops up for in app purchases and I get a login prompt for my sandbox credentials, but no matter how many times I enter them after tapping ok all I get is a blank login prompt.
also not this a brand new sandbox account and I've only changed the password 3 times, that seems to be important because its inconsistent with some of the errors I am getting on the error log
here is error log.
Purchase did not return a transaction: Error Domain=ASDErrorDomain Code=530 "(null)" UserInfo={NSUnderlyingError=0x600000d09080 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed The authentication failed." UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 "Password reuse not available for account The account state does not support password reuse." UserInfo={NSDebugDescription=Password reuse not available for account The account state does not support password reuse., AMSDescription=Password reuse not available for account, AMSFailureReason=The account state does not support password reuse.}",
"Error Domain=AMSErrorDomain Code=0 "Authentication Failed Encountered an unrecognized authentication failure." UserInfo={NSDebugDescription=Authentication Failed Encountered an unrecognized authentication failure., AMSDescription=Authentication Failed, AMSFailureReason=Encountered an unrecognized authentication failure.}"
), AMSDescription=Authentication Failed, NSDebugDescription=Authentication Failed The authentication failed., AMSFailureReason=The authentication failed.}}, client-environment-type=Sandbox}
Topic:
App & System Services
SubTopic:
StoreKit
Sorry but I'm not good at English.
Is the originalTransactionId received for the same subscription by the same user the same in Store Kit v1 and Store Kit 2?
Also, will the originalTransactionId be the same even if the subscription price is changed?
We’ve recently observed an escalating number of complaints from AlipayHK users regarding duplicate charges when completing transactions via Apple Pay. While no similar issues have been reported by users of other credit card providers integrated with Apple Pay, the problem appears isolated to AlipayHK transactions.
Key Details:
Multiple users confirm being charged twice for single transactions.
Complaints are increasing in frequency, indicating a potential systemic issue.
No overlapping reports from non-AlipayHK payment methods at this time.
To safeguard customer trust and ensure seamless payment experiences, we kindly request Apple’s support in:
Investigating whether the root cause stems from Apple Pay’s transaction handling.
Collaborating with AlipayHK (if necessary) to resolve the issue promptly.
Providing guidance on interim measures to prevent further duplicate charges.
Could Apple confirm if this is a known issue and share a timeline for resolution? We’re eager to assist in any way possible to mitigate impact on users.
Thank you for your urgent attention to this matter.
Use the following method to fetch:
let appProducts = try await Product.products(for: productIdentifiers)
The following checks have been carried out
✅ Must-check points
App ID capabilities
Subscription product status (ready to submit)
Why The result is an empty array?
Dear Apple Developer Support,
Our iOS application offers subscriptions with a free trial period. We understand that in South Korea, due to local subscription regulations, users must explicitly provide consent for recurring payments before the subscription converts from a free trial to a paid period.
We have the following questions regarding how StoreKit handles this scenario:
When a free trial is about to convert to a paid subscription for a user in South Korea, does StoreKit send a StoreKit.Message (or SKStorefront.Message) to the application to obtain the required consent for recurring payments?
If such a message is sent, would the Reason for this message be StoreKit.Message.Reason.priceIncreaseConsent, or would it be another specific reason related to initial recurring payment consent after a trial?
If our application receives such a message and we choose to defer its display, what is the maximum recommended or permissible deferral period?
Is it possible to save the data of a received StoreKit.Message and display it to the user at a later time, for instance, after the application has been closed and subsequently reopened? Are there any best practices or limitations regarding this?
We need this information to ensure our application correctly handles these consent requirements in compliance with South Korean policies and provides a smooth user experience.
Thank you for your guidance.
One of our customers subscribed to a monthly plan on August 16 but the server-to-server notification seems to have been sent on August 18.
What could be the reasons for such a delay between the purchase and the server-to-server notification which are usually sent right after the purchase?
The receipt sent along with the notification seems to confirm that the receipt has only been created 2 days after the purchase. Here is an extract:
{
"environment": "Production",
"receipt": {
"receipt_type": "Production",
"bundle_id": "fr.gaumontvideo.gaumontclassique",
"application_version": "613",
"receipt_creation_date": "2025-08-18 13:00:16 Etc/GMT",
"receipt_creation_date_ms": "1755522016000",
"receipt_creation_date_pst": "2025-08-18 06:00:16 America/Los_Angeles",
"request_date": "2025-08-25 13:08:27 Etc/GMT",
"request_date_ms": "1756127307346",
"request_date_pst": "2025-08-25 06:08:27 America/Los_Angeles",
"original_purchase_date": "2022-05-11 06:14:37 Etc/GMT",
"original_purchase_date_ms": "1652249677000",
"original_purchase_date_pst": "2022-05-10 23:14:37 America/Los_Angeles",
"original_application_version": "265",
"in_app": [
{
"quantity": "1",
"product_id": "fr.gaumontvideo.gaumontclassique.subscription.monthly.apple",
"transaction_id": "270002386706194",
"original_transaction_id": "270002386706194",
"purchase_date": "2025-08-16 08:02:06 Etc/GMT",
"purchase_date_ms": "1755331326000",
"purchase_date_pst": "2025-08-16 01:02:06 America/Los_Angeles",
"original_purchase_date": "2025-08-16 08:02:08 Etc/GMT",
"original_purchase_date_ms": "1755331328000",
"original_purchase_date_pst": "2025-08-16 01:02:08 America/Los_Angeles",
"expires_date": "2025-09-16 08:02:06 Etc/GMT",
"expires_date_ms": "1758009726000",
"expires_date_pst": "2025-09-16 01:02:06 America/Los_Angeles"
}
}
Hello Apple Support Team,
We're a developer team that has created an app with subscription-based features, and we've been using App Store Server Notifications to receive updates about user subscription status changes. I'm reaching out to inquire about potential modifications to the App Store Server Notifications approach that might have improved notification delivery times for my app.
So on our appstore app, when a user purchases a subscription, the apple server notifications reach our server and send us the complete detail of that user’s purchase for eg he upgraded or downgraded etc. And then based on the data we receive from app store server notifications, we save it in our database, along with updating the users subscription table in the database. Previously, we experienced delays in receiving the real time notifications from apple on our server, sometimes taking a few minutes, while other times they would arrive immediately. And because of this issue, the users faced delay in seeing their subscription updates, as our db was updated only after the app store server notification reached our server. However, recently, we've noticed a significant improvement, and notifications are now being delivered still in real-time, but without any noticeable delays.
I'm wondering if Apple has made any changes to the App Store Server Notifications system that might have resolved the delay issue. Could you please confirm if any modifications were made in 2025, specifically from January onwards, that might have improved notification delivery times?
Additionally, I'd like to know if these changes apply to both sandbox testing and production environments. If possible, could you please provide more information about the changes or direct me to a resource that might explain the updates?
I'd appreciate your assistance in confirming this information, and I'm looking forward to hearing back from you.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
App Store Connect
App Store Server Notifications
I'm receiving the following error when attempting to validate an in‑app purchase receipt:
Certificate verification failed at depth 0 : forge.pki.UnknownCertificateAuthority
Certificate chain validation failed: Certificate is not trusted.
This error occurs during the certificate chain validation process of the receipt's PKCS#7 container. My implementation uses node‑forge to decode the receipt, extract the embedded certificate chain, and verify that the chain properly links from the leaf certificate (which directly signed the receipt) through the intermediate certificate to the trusted Apple Inc. Root certificate.
What the Error Indicates:
"UnknownCertificateAuthority" at depth 0:
This suggests that the leaf certificate in the receipt is not being recognized as part of a valid chain because it cannot be linked back to a trusted root in my CA store.
"Certificate chain validation failed: Certificate is not trusted":
This means that the entire certificate chain does not chain up to a trusted certificate authority (in this case, the Apple Inc. Root certificate) as expected.
Steps Taken:
I verified that the receipt is a valid PKCS#7 container.
I extracted the certificate chain from the receipt. However, the receipt only provided the leaf certificate.
I manually added the intermediate certificate (AppleWWDRCAG5.pem) to complete the chain.
I loaded the official Apple Inc. Root certificate (AppleIncRootCertificate.pem) into my CA store.
Despite these steps, the validation still fails at depth 0, indicating that the leaf certificate is not recognized as being issued by a trusted authority.
Request for Assistance:
Could you please help clarify the following points:
Is the certificate chain for receipts (leaf → intermediate → Apple Inc. Root) as expected, or has there been any change in the chain that I should account for?
Is there a recommended or updated intermediate certificate I should be using for receipt validation?
Are there known issues or recent changes on Apple's side that might cause the leaf certificate to not be recognized as part of a valid chain?
Any guidance to resolve this certificate chain validation error would be greatly appreciated.
Hi all,
I've received emails from other apps after making a purchase, with content like:
You have purchased {App Name} on {Date & Time} and acknowledged that if you download or use this in-App Purchase within fourteen days of buying it, you will no longer be eligible to cancel this purchase.
Do anyone know under what circumstances Apple sends a Purchase Confirmation Letter to the user's email after they purchase our digital products via IAP? Is this something developers can control?
Additionally, I've seen pop-up reminders before making a payment in apps, with content similar to the above message.
Are these reminders provided by Apple, or can developers create their own guidance to help users avoid accidental purchases?
Kindly,
Vanto
Hi everyone,
After my app was initially rejected, all my IAPs now show the status “Developer Action Needed.” There’s nothing I need to change on them — they were just returned because it was the first submission and the app itself was rejected.
Do I need to do anything with the IAPs before I resubmit, or will they still be attached and reviewed automatically with the next binary? I’ve seen conflicting answers, so I’d like to confirm the correct process.
Thanks,
Cris