Search results for

“sandbox”

10,542 results found

Post

Replies

Boosts

Views

Activity

Reply to Unable to do disable sandbox apple wallet
Hi @yurii_c, You wrote: Despite signing out of my sandbox Apple ID and disabling Developer Mode, my Wallet still appears to be in sandbox mode, and I’m unable to add any real payment cards. The sandbox state that survives all of your attempted workarounds described above is almost certainly rooted in the Apple Pay server-side SEID provisioning record. This can only be remediated by the Apple Pay Server team, so please submit a report via Feedback Assistant with the following device details: serial number SEID iOS version description of the exact Sandbox indicator you see in Wallet Once submitted, please reply here with the Feedback ID. A DFU restore is worth trying first, but the definitive fix requires a Developer Technical Support ticket escalated to the Apple Pay infrastructure team, or an Apple Store visit with Global Service Exchange (GSX) access. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Topic: App & System Services SubTopic: Wallet Tags:
Jun ’26
Reply to Can deviceId change frequently for the same user?
Hi @bsanesteban, You wrote: [...] We would appreciate understanding which scenarios might cause the deviceId to change. [...] We aim to determine whether this behavior is expected or if it suggests atypical usage patterns. [...] The deviceLibraryIdentifier is an opaque string generated by the PassKit daemon (passd) on-device. It isn't used for hardware fingerprinting, like an IDFA, IDFV, or APNs token. It cannot be accessed by third-party apps and only your web service and the system PassKit daemon ever see it. This identifier is stable under normal everyday use, but isn't a permanent lifecycle-proof identifier. Churn is expected in testing environments, including Simulator and on-device sandbox testing, and during device lifecycle events (e.g., resets, restores, device replacements, etc.). In production users, frequent churn within short timeframes (minutes to hours) is atypical and warrants investigation on your end—most commonly pointing to automated testing. The correct architectural approach is
Topic: App & System Services SubTopic: Wallet Tags:
Jun ’26
IAP purchase fails in App Review sandbox — error alert shown to reviewer, 2.1(b) rejection
Getting 2.1(b) rejection. Reviewer sees Purchase Failed alert. Products configured correctly in ASC. Does App Review sandbox use same sandbox environment as developer testing? Can reviewer sandbox accounts trigger purchase failures that developer sandbox accounts cannot? Any known issues with first-time IAP products failing specifically during App Review sandbox session?
1
0
773
Jun ’26
Auto-renewable subscriptions stuck "In Review" for 20+ days — app approved and live, subscriptions still not available in production
Hi everyone, I'm experiencing a frustrating situation with my app and hoping someone from Apple or the community can help or has faced the same. Situation: I configured two auto-renewable subscriptions (premium_monthly and premium_yearly) in App Store Connect under a subscription group Submitted them for review along with a new app build The app build was reviewed, accepted, and is now live on the App Store The subscriptions have been in In Review status for 20+ days with no action Impact: In production, StoreKit does not return the subscription products at all (as expected — Apple doesn't serve unreviewed products to StoreKit) Users cannot purchase subscriptions Monetization is completely blocked for a live, approved app What I've already tried: Submitted an expedited review request — no response Submitted a new app version update to force a combined review — app was approved again but subscriptions remain In Review Contacted App Store Support via the online form — no response after multiple days Cannot edit
1
0
408
Jun ’26
Reply to Tap To Pay TestFlight
Hi @lucas_auttar, You wrote: In this page: [...] Is stated that: Apps that you download from TestFlight always run in the sandbox environment. [...] Is that not the case for Tap To Pay on iPhone? No. That documentation is specifically scoped to StoreKit and In-App Purchases, not to all Apple services or frameworks. The sandbox for Tap to Pay on iPhone is a separate sandbox environment from TestFlight builds, and is tied specifically to Apple's payment infrastructure, like Apple Pay. It isn't automatically activated by TestFlight distribution, and requires the device to have. Sandbox Apple Account explicitly signed in. Lastly, the token type (sandbox vs. production) generated by your Payment Service Provider (PSP) or backend must match the environment that the device supports. Then, you wrote: [...] But we ran into the issue from the ProximityReaderAPI requesting a Sandbox account anyway (This token requires a sandbox test account from your Apple D
Jun ’26
Reply to StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight
Yes, I tried signing out and back in after clearing purchase history, but it did not help. The entitlement is still returned by Transaction.currentEntitlements for the original Product ID. Reinstalling, rebooting, and configuring a Sandbox Apple Account did not clear it either. Changing the Product ID makes the entitlement disappear, so it looks tied to the original TestFlight/Apple ID receipt. Is there any supported way to reset this for a non-consumable TestFlight purchase?
Topic: App & System Services SubTopic: StoreKit Tags:
Jun ’26
Reply to New EndpointSecurity helper functions
is there going to be a way to check the deadline was missed and ES replied? There already is: ES_RESPOND_RESULT_ERR_DUPLICATE_RESPONSE what file open flags are going to be used? When using ALLOW or DENY as the miss mode the result is not cached, so the particular open event you miss is just allowed or denied. Open flags only matter for caching. is there a limit for the max value? Read the header doc carefully. es_set_deadline_max_milliseconds() allows you to set the maximum deadline, not the deadline. There is no upper limit but as it's a maximum value it can only be used to decrease deadlines. If the deadline is say 10 units, then min(15,10) = 10. Setting the deadline maximum to 15 has no affect on a deadline of 10. es_set_deadline_max_milliseconds() is the deadline ceiling. You can use it only to reduce deadlines. es_set_deadline_min_milliseconds() is the deadline floor, it raises deadlines. It can only be used with descendants clients because descendants clients are programs the caller could already just k
Topic: General SubTopic:
Privacy & Security Q&A
Jun ’26
Reply to OpenZFS on FSKit — Proof of Concept
The practical follow-on question: what entitlements exist today for block device ioctls (DKIOCGETBLOCKSIZE, DKIOCGETBLOCKCOUNT)? I'm not sure what you mean here. Having said that, the short answer is that I'm not aware of any entitlements relevant to this area of the system. The open question is whether the sandboxed extension can create and bind a socket at a path reachable by privileged tools outside the sandbox (e.g., /var/run/zfs/zfsd.sock). If that's permitted without a special entitlement, this blocker is resolved for us. First, just to clarify, privilege (that is, running as root) as such doesn't actually matter here. Your FSKit extension can basically talk to whoever it wants (particularly through a socket), so any protection you're doing needs to be something you implement, not the system. I haven't played around much with what's actually possible, however: Your FSKit extension has access to an app group container as well as its own and any tool you write can have access to the same
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’26
Best practices for avoiding target and cache conflicts in Xcode when working with Git worktrees?
How do you prevent Xcode global resource conflicts when utilizing git worktree? I am adopting git worktree to manage multiple concurrent branches of our iOS project simultaneously. While Git handles the isolated source files perfectly, Xcode struggles because it relies heavily on global, centralized states behind the scenes. When opening multiple worktrees concurrently in Xcode, I run into several breaking issues with globally shared resources: DerivedData Collision: By default, Xcode hashes the project path/name to generate a folder in ~/Library/Developer/Xcode/DerivedData. Because the project files have identical names (just different root directory paths), Xcode occasionally maps them to overlapping cache locations, causing incremental build corruption. Swift Package Manager (SPM) Fetching: The global SPM cache (~/Library/Developer/Xcode/DerivedData/../SourcePackages) seems to choke or trigger duplicate index/fetch cycles when two worktrees try to resolve dependencies at the same time. Simulator/Previews O
0
0
247
Jun ’26
Reply to Is there some tutorial for the new `es_new_descendants_client` function?
There is not a tutorial but the header docs are fairly detailed. I can expand on what Kevin said a little. Normally ES clients must run as root because they cross user boundaries, they require TCC_ALL_FILES because they are privacy invasive, you can view operations on all files and by all users. A descendant client is different, if Alice creates a descendant client she will never see operations issued by Bob, in fact she will only control operations she and her descendants (and their descendants recursively) issue. The privacy concerns are not the same. Similarly, deadline enforcement exists to break deadlocks and protect critical system daemons. Alice can only block processes she could already kill or suspend anyway. System daemons will never be a descendant and as such descendants clients can extend deadlines. The primary use case we envision for this is agents. es_new_descendants_client() is effectively a new feature for creating dynamic sandboxes. Agents are inherently non-deterministic and subje
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’26
Reply to Unable to Retrieve Existing Card Status from Apple Wallet
Hi @Manikandan1981, You wrote: Could you please let us know if there are any additional configurations, entitlements, or issuer onboarding steps required to retrieve the existing card status from Apple Wallet? As a first step, please confirm your app's .entitlements file includes the approved in-app provisioning entitlement (com.apple.developer.payment-pass-provisioning). Next, the most common mistake is using the wrong API to check for card status. For iOS, see the following example: let library = PKPassLibrary() // Check if a specific card can be added (returns false, if already present) let canAdd = PKAddPaymentPassViewController.canAddPaymentPass( withPrimaryAccountIdentifier: YOUR_PAI ) // Retrieve existing payment passes provisioned by your app let existingPasses = library.passes(of: .secureElement) .compactMap { $0 as? PKPaymentPass } .filter { $0.primaryAccountIdentifier == YOUR_PAI } For watchOS, see the following example: // Check remote (paired Apple Watch) status let canAddToWatch = library.canAdd
Jun ’26
Reply to Promo Code and Offers
Can you please tell me more about this hybrid setup? You normally can't mix environments for testing (i.e.: use both Sandbox and StoreKit Testing in Xcode at the same time), you have to choose one or the other. By default, Sandbox is used when building and running apps through Xcode during development, and StoreKit Testing in Xcode is chosen when you add your configuration file to the app run scheme settings. Both environments support testing all In-App Purchase types (consumables, non-consumables, auto-renewable subscriptions, non-renewing subscriptions)and their respective offers: In-App Purchase offer codes, subscription promotional offers, introductory offers, offer codes, and win-back offers. Are any of these the offer type you are looking to test?
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Jun ’26
Reply to Promo Code and Offers
Offer codes are redeemed via the offer code redemption sheet. You can call the respective API (here's the iOS version for example: https://developer.apple.com/documentation/storekit/appstore/presentoffercoderedeemsheet(in:)) and redeem the offer code via the UI in the sheet. In production and sandbox, this requires the customer to enter the code, while in StoreKit Testing in Xcode the sheet provides a list of codes you have already configured. Are you not seeing the configured codes in the redemption sheet after setting up the test environment? Can you please provide some more information regarding your setup? Promo codes are not supported in StoreKit Testing in Xcode.
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Jun ’26
Reply to Testing purchases Advanced Commerce API
Hello! In general, yes, Advanced Commerce API functionalities are supported in Sandbox. For server API URLs, the relevant Sandbox URL is in documentation, as in the Change Subscription Price documentation, under Sandbox URL. We appreciate your feedback around testing Advanced Commerce API.
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Jun ’26
Reply to Unable to do disable sandbox apple wallet
Hi @yurii_c, You wrote: Despite signing out of my sandbox Apple ID and disabling Developer Mode, my Wallet still appears to be in sandbox mode, and I’m unable to add any real payment cards. The sandbox state that survives all of your attempted workarounds described above is almost certainly rooted in the Apple Pay server-side SEID provisioning record. This can only be remediated by the Apple Pay Server team, so please submit a report via Feedback Assistant with the following device details: serial number SEID iOS version description of the exact Sandbox indicator you see in Wallet Once submitted, please reply here with the Feedback ID. A DFU restore is worth trying first, but the definitive fix requires a Developer Technical Support ticket escalated to the Apple Pay infrastructure team, or an Apple Store visit with Global Service Exchange (GSX) access. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Topic: App & System Services SubTopic: Wallet Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Can deviceId change frequently for the same user?
Hi @bsanesteban, You wrote: [...] We would appreciate understanding which scenarios might cause the deviceId to change. [...] We aim to determine whether this behavior is expected or if it suggests atypical usage patterns. [...] The deviceLibraryIdentifier is an opaque string generated by the PassKit daemon (passd) on-device. It isn't used for hardware fingerprinting, like an IDFA, IDFV, or APNs token. It cannot be accessed by third-party apps and only your web service and the system PassKit daemon ever see it. This identifier is stable under normal everyday use, but isn't a permanent lifecycle-proof identifier. Churn is expected in testing environments, including Simulator and on-device sandbox testing, and during device lifecycle events (e.g., resets, restores, device replacements, etc.). In production users, frequent churn within short timeframes (minutes to hours) is atypical and warrants investigation on your end—most commonly pointing to automated testing. The correct architectural approach is
Topic: App & System Services SubTopic: Wallet Tags:
Replies
Boosts
Views
Activity
Jun ’26
IAP purchase fails in App Review sandbox — error alert shown to reviewer, 2.1(b) rejection
Getting 2.1(b) rejection. Reviewer sees Purchase Failed alert. Products configured correctly in ASC. Does App Review sandbox use same sandbox environment as developer testing? Can reviewer sandbox accounts trigger purchase failures that developer sandbox accounts cannot? Any known issues with first-time IAP products failing specifically during App Review sandbox session?
Replies
1
Boosts
0
Views
773
Activity
Jun ’26
Auto-renewable subscriptions stuck "In Review" for 20+ days — app approved and live, subscriptions still not available in production
Hi everyone, I'm experiencing a frustrating situation with my app and hoping someone from Apple or the community can help or has faced the same. Situation: I configured two auto-renewable subscriptions (premium_monthly and premium_yearly) in App Store Connect under a subscription group Submitted them for review along with a new app build The app build was reviewed, accepted, and is now live on the App Store The subscriptions have been in In Review status for 20+ days with no action Impact: In production, StoreKit does not return the subscription products at all (as expected — Apple doesn't serve unreviewed products to StoreKit) Users cannot purchase subscriptions Monetization is completely blocked for a live, approved app What I've already tried: Submitted an expedited review request — no response Submitted a new app version update to force a combined review — app was approved again but subscriptions remain In Review Contacted App Store Support via the online form — no response after multiple days Cannot edit
Replies
1
Boosts
0
Views
408
Activity
Jun ’26
Reply to Testing apple pay on web in a sandbox environment ran into problems
Hi @huangqian10, Please see my answer on your post below: Testing apple pay on web in a sandbox environment ran into problems https://developer.apple.com/forums/thread/822181?page=1#893455022 Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Replies
Boosts
Views
Activity
Jun ’26
Reply to Tap To Pay TestFlight
Hi @lucas_auttar, You wrote: In this page: [...] Is stated that: Apps that you download from TestFlight always run in the sandbox environment. [...] Is that not the case for Tap To Pay on iPhone? No. That documentation is specifically scoped to StoreKit and In-App Purchases, not to all Apple services or frameworks. The sandbox for Tap to Pay on iPhone is a separate sandbox environment from TestFlight builds, and is tied specifically to Apple's payment infrastructure, like Apple Pay. It isn't automatically activated by TestFlight distribution, and requires the device to have. Sandbox Apple Account explicitly signed in. Lastly, the token type (sandbox vs. production) generated by your Payment Service Provider (PSP) or backend must match the environment that the device supports. Then, you wrote: [...] But we ran into the issue from the ProximityReaderAPI requesting a Sandbox account anyway (This token requires a sandbox test account from your Apple D
Replies
Boosts
Views
Activity
Jun ’26
Reply to StoreKit 2 currentEntitlements persists after Sandbox Purchase History reset in TestFlight
Yes, I tried signing out and back in after clearing purchase history, but it did not help. The entitlement is still returned by Transaction.currentEntitlements for the original Product ID. Reinstalling, rebooting, and configuring a Sandbox Apple Account did not clear it either. Changing the Product ID makes the entitlement disappear, so it looks tied to the original TestFlight/Apple ID receipt. Is there any supported way to reset this for a non-consumable TestFlight purchase?
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to New EndpointSecurity helper functions
is there going to be a way to check the deadline was missed and ES replied? There already is: ES_RESPOND_RESULT_ERR_DUPLICATE_RESPONSE what file open flags are going to be used? When using ALLOW or DENY as the miss mode the result is not cached, so the particular open event you miss is just allowed or denied. Open flags only matter for caching. is there a limit for the max value? Read the header doc carefully. es_set_deadline_max_milliseconds() allows you to set the maximum deadline, not the deadline. There is no upper limit but as it's a maximum value it can only be used to decrease deadlines. If the deadline is say 10 units, then min(15,10) = 10. Setting the deadline maximum to 15 has no affect on a deadline of 10. es_set_deadline_max_milliseconds() is the deadline ceiling. You can use it only to reduce deadlines. es_set_deadline_min_milliseconds() is the deadline floor, it raises deadlines. It can only be used with descendants clients because descendants clients are programs the caller could already just k
Topic: General SubTopic:
Privacy & Security Q&A
Replies
Boosts
Views
Activity
Jun ’26
Reply to OpenZFS on FSKit — Proof of Concept
The practical follow-on question: what entitlements exist today for block device ioctls (DKIOCGETBLOCKSIZE, DKIOCGETBLOCKCOUNT)? I'm not sure what you mean here. Having said that, the short answer is that I'm not aware of any entitlements relevant to this area of the system. The open question is whether the sandboxed extension can create and bind a socket at a path reachable by privileged tools outside the sandbox (e.g., /var/run/zfs/zfsd.sock). If that's permitted without a special entitlement, this blocker is resolved for us. First, just to clarify, privilege (that is, running as root) as such doesn't actually matter here. Your FSKit extension can basically talk to whoever it wants (particularly through a socket), so any protection you're doing needs to be something you implement, not the system. I haven't played around much with what's actually possible, however: Your FSKit extension has access to an app group container as well as its own and any tool you write can have access to the same
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
Best practices for avoiding target and cache conflicts in Xcode when working with Git worktrees?
How do you prevent Xcode global resource conflicts when utilizing git worktree? I am adopting git worktree to manage multiple concurrent branches of our iOS project simultaneously. While Git handles the isolated source files perfectly, Xcode struggles because it relies heavily on global, centralized states behind the scenes. When opening multiple worktrees concurrently in Xcode, I run into several breaking issues with globally shared resources: DerivedData Collision: By default, Xcode hashes the project path/name to generate a folder in ~/Library/Developer/Xcode/DerivedData. Because the project files have identical names (just different root directory paths), Xcode occasionally maps them to overlapping cache locations, causing incremental build corruption. Swift Package Manager (SPM) Fetching: The global SPM cache (~/Library/Developer/Xcode/DerivedData/../SourcePackages) seems to choke or trigger duplicate index/fetch cycles when two worktrees try to resolve dependencies at the same time. Simulator/Previews O
Replies
0
Boosts
0
Views
247
Activity
Jun ’26
Reply to Is there some tutorial for the new `es_new_descendants_client` function?
There is not a tutorial but the header docs are fairly detailed. I can expand on what Kevin said a little. Normally ES clients must run as root because they cross user boundaries, they require TCC_ALL_FILES because they are privacy invasive, you can view operations on all files and by all users. A descendant client is different, if Alice creates a descendant client she will never see operations issued by Bob, in fact she will only control operations she and her descendants (and their descendants recursively) issue. The privacy concerns are not the same. Similarly, deadline enforcement exists to break deadlocks and protect critical system daemons. Alice can only block processes she could already kill or suspend anyway. System daemons will never be a descendant and as such descendants clients can extend deadlines. The primary use case we envision for this is agents. es_new_descendants_client() is effectively a new feature for creating dynamic sandboxes. Agents are inherently non-deterministic and subje
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Unable to Retrieve Existing Card Status from Apple Wallet
Hi @Manikandan1981, You wrote: Could you please let us know if there are any additional configurations, entitlements, or issuer onboarding steps required to retrieve the existing card status from Apple Wallet? As a first step, please confirm your app's .entitlements file includes the approved in-app provisioning entitlement (com.apple.developer.payment-pass-provisioning). Next, the most common mistake is using the wrong API to check for card status. For iOS, see the following example: let library = PKPassLibrary() // Check if a specific card can be added (returns false, if already present) let canAdd = PKAddPaymentPassViewController.canAddPaymentPass( withPrimaryAccountIdentifier: YOUR_PAI ) // Retrieve existing payment passes provisioned by your app let existingPasses = library.passes(of: .secureElement) .compactMap { $0 as? PKPaymentPass } .filter { $0.primaryAccountIdentifier == YOUR_PAI } For watchOS, see the following example: // Check remote (paired Apple Watch) status let canAddToWatch = library.canAdd
Replies
Boosts
Views
Activity
Jun ’26
Reply to Promo Code and Offers
Can you please tell me more about this hybrid setup? You normally can't mix environments for testing (i.e.: use both Sandbox and StoreKit Testing in Xcode at the same time), you have to choose one or the other. By default, Sandbox is used when building and running apps through Xcode during development, and StoreKit Testing in Xcode is chosen when you add your configuration file to the app run scheme settings. Both environments support testing all In-App Purchase types (consumables, non-consumables, auto-renewable subscriptions, non-renewing subscriptions)and their respective offers: In-App Purchase offer codes, subscription promotional offers, introductory offers, offer codes, and win-back offers. Are any of these the offer type you are looking to test?
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Replies
Boosts
Views
Activity
Jun ’26
Reply to Promo Code and Offers
Offer codes are redeemed via the offer code redemption sheet. You can call the respective API (here's the iOS version for example: https://developer.apple.com/documentation/storekit/appstore/presentoffercoderedeemsheet(in:)) and redeem the offer code via the UI in the sheet. In production and sandbox, this requires the customer to enter the code, while in StoreKit Testing in Xcode the sheet provides a list of codes you have already configured. Are you not seeing the configured codes in the redemption sheet after setting up the test environment? Can you please provide some more information regarding your setup? Promo codes are not supported in StoreKit Testing in Xcode.
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Replies
Boosts
Views
Activity
Jun ’26
Reply to Testing purchases Advanced Commerce API
Hello! In general, yes, Advanced Commerce API functionalities are supported in Sandbox. For server API URLs, the relevant Sandbox URL is in documentation, as in the Change Subscription Price documentation, under Sandbox URL. We appreciate your feedback around testing Advanced Commerce API.
Topic: StoreKit SubTopic:
StoreKit, In-App Purchase, and App Store Server API Q&A
Replies
Boosts
Views
Activity
Jun ’26