Search results for

“sandbox”

10,542 results found

Post

Replies

Boosts

Views

Activity

My app review has been stuck
My app review has been stuck. The app includes IAP. When displaying purchases, it first needs to retrieve the price list. This price list is hosted on Apple's servers. Retrieving it is handled by the SDK. Possibly due to the sandbox environment, the price list is very difficult to obtain right when Apple's California office starts work. But at other times, it's very fast. Apple's reviewers have never been able to see the prices. I suggested they change their test time to noon or afternoon, but they still couldn't see the prices. This suggests that the network environment used by Apple's review team has poor connectivity to Apple's own sandbox servers. When I received the review start notification, I tested it myself, and it worked perfectly — the price list loaded quickly. I recorded a video and took screenshots to show the reviewers. But they are still testing within their own network environment, so they couldn't see the price list. I suggested they switch to an open network environment fo
2
0
284
Jun ’26
Sandboxed Mac app denied mach-lookup com.apple.cloudd when signed with Mac Team Store Provisioning Profile on macOS 26
A sandboxed Mac app with correct CloudKit entitlements fails to connect to com.apple.cloudd (the CloudKit daemon) when distributed via TestFlight (Mac Team Store Provisioning Profile). The identical binary works correctly when launched from Xcode (Mac Team Provisioning Profile also present). All entitlements are correctly embedded and the App ID is properly configured in Apple Developer Portal. Environment macOS 26.5.1 (25F80) Xcode 26.5 (17F42) SwiftData with NSPersistentCloudKitContainer / ModelConfiguration(cloudKitDatabase: .private(...)) Steps to Reproduce Create a sandboxed Mac app using SwiftData with CloudKit sync Enable iCloud + CloudKit in Signing & Capabilities Archive and distribute to TestFlight (Mac Team Store Provisioning Profile) Install via TestFlight on macOS 26 and launch Check Console for kernel sandbox messages Expected Result CloudKit connects to com.apple.cloudd and syncs data, matching behavior of the iOS version using the same container. Actual Result Co
17
0
2.3k
Jun ’26
RevenueCat offerings returning empty (current: null, allKeys: []) despite correct setup — first-time auto-renewable subscription submission
Hi all, I'm launching my first iOS app (Capacitor/Next.js WebView wrapper) with two auto-renewable subscriptions via RevenueCat, and I'm stuck on a persistent issue across multiple App Store Review rejections. Setup: Bundle ID: no.skaren.app Two auto-renewable subscriptions: no.skaren.app.premium.monthly and no.skaren.app.premium.yearly, both in a single subscription group RevenueCat integrated via @revenuecat/purchases-capacitor App-Specific Shared Secret added to RevenueCat App Store Connect API key (with correct Key ID/Issuer ID) added to RevenueCat Paid Apps Agreement: Active Bundle ID in RevenueCat matches exactly RevenueCat API key in app code matches dashboard exactly The problem: On a physical device (TestFlight build, signed into Sandbox Apple ID), calling Purchases.getOfferings() always returns: {current:null,allKeys:[]} No errors are thrown — the offerings object is just empty. This happens consistently across multiple builds, after removing a conflicting limitsNavigationsToAppBoundDomains
0
0
325
Jun ’26
Reply to Sandboxed network permissions on macOS
Sorry I didn’t reply sooner. I didn’t see your thread until now [1]. Every app extension is sandboxed. This is obviously true on iOS, where all third-party code is sandboxed, but it’s also true on macOS, where every app extension must opt in to the App Sandbox. Having said that, not all sandboxes are created equally. Some appexen run in a restricted sandbox, one that’s designed to prevent data from escaping. For example, Network Extension filter data providers on iOS are not allow to ‘leak’ network traffic, as explained here. Given that, the actual sandbox restrictions seen by your appex will vary based on the appex type. I’m not super familiar with App Intent app extensions, but AFAIK they run in a pretty standard sandbox. Moreover, you’re asking about the Mac, where AFAIK all appexen run in a standard sandbox, that is, the App Sandbox. So, this is all just a caveat saying that the following assumes that your appex is running in
Jun ’26
How to end-to-end test significantAppChangeRequiresParentalConsent with AskCenter outside of Sandbox mocked responses?
Hello, We are currently integrating the new Declared Age Range framework to comply with the age assurance requirements (such as the Texas regulatory rollout). We are specifically trying to test the AgeRangeService.RegulatoryFeature.significantAppChangeRequiresParentalConsent flow for minors. The Problem When testing in the Sandbox environment, the consent flow returns a mocked response immediately. While this validates our basic code logic, it does not allow us to test or see the actual end-to-end user experience/UI of the parental consent flow. When we attempt to test this outside of the Sandbox environment on a production build/device to see the true system UI, the AskCenter.ask(PermissionQuestion, in: ...) request fails immediately with the following error: Error: “The user is in a region that does not support this type of ask. UserInfo: {NSLocalizedDescription=The user is in a region that does not support this type of ask., NSLocalizedRecoverySuggestion=Please ensure the user is in an el
0
0
229
Jun ’26
Reply to Supported way to use MapKit in a sandboxed macOS Quick Look extension?
Hi @n0rt0nthec4t, You wrote: [...] This is the rendering I get with either MKMapSnapshotter OR MKMapView [...] The behavior is two-fold—QuickLook extensions are sandboxed and prevent network access to protect the user's information. However, MapKit is a system framework and this use case should be reconsidered. I'd suggest for you to create a report via Feedback Assistant. Once submitted, please reply here with the Feedback ID so I can escalate with the Quick Look team directly. I want to be clear, this is not a bug or oversight, but a deliberate security boundary, there is no guarantee this will be fixed in a later release. MapKit's tile fetching is network activity. Even though the intent is to download map imagery (not upload user data), the sandbox doesn't distinguish between inbound and outbound purposes at the Mach service level. Note: Even if other developers report this issue, it is essential that you each submit your own bug report. The number of bug reports for this issue will impr
Jun ’26
Reply to Sandboxed App <> Launch Agent - how to communicate?
What Etresoft said plus… XPC is our preferred IPC mechanism, but it has a bunch of history and it can be confusing. I have links to docs and so on in XPC Resources. The XPC named endpoint published by your launchd agent must have a name that’s ‘within’ the app group. See the first entry in the table in App Groups Entitlement. Both programs must claim access to that app group via an entitlement. That entitlements should be authorised by a provisioning profile. App groups have a whole bunch of history on the Mac. See App Groups: macOS vs iOS: Working Towards Harmony. The requirement for a provisioning profile is why you need to embed the agent in an app-like wrapper. Embedding a command-line tool in a sandboxed app offers a rough outline of how to do that. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’26
Reply to Sandboxed App <> Launch Agent - how to communicate?
It depends. First of all, you must setup an app group. No option there. However you do your communication, you'll need an app group. Next, you'll need to make sure your launch agent is an app-like wrapper. What you do is create a new app target and bundle it inside your main app. You can strip off all the things you won't need like storyboards and such. It needs to be an app-like wrapper to have a real bundle ID, sandbox, and understand that it's in a group. Next, make sure the launch agent works. Run it every 60 seconds or something. Later you can change that. There are multiple options for communication. You might not need anything. If you can run your launch agent on a schedule, you can save the configuration to a file the next time it launches. If you do need a continuously running agent, then you'll need some kind of client/server connection. You could do that manually with sockets or named pipes. Or you could use XPC. The first time I tried all of this with XPC, it failed miserably. I don't kno
Topic: App & System Services SubTopic: Core OS Tags:
Jun ’26
Sandboxed App <> Launch Agent - how to communicate?
I’m building a sandboxed macOS App Store app that registers an agent using SMAppService. I’m trying to understand the IPC setup between the main app and the SMAppService-managed agent. The obvious options seem to be: XPC with a Mach service But from what I understand, I’d need a special entitlement that allows me to communicate over XPC Mach service - which is unlikely to pass Mac App Store review. So how do people communicate with processes registered with SMAppService?
2
0
1.3k
Jun ’26
SwiftData, CloudKit and 2 AppleIDs
I have a SwiftData app that runs on iOS, iPadOS, and MacCatalyst and which uses CloudKit for inter-device sync. Unfortunately, I also have two AppleIDs (which I 'll refer to as OLDID and NEWID). Although all three devices (phone, pad and desktop) are currently set up with NEWID as the active AppleID, during development and testing, my desktop Mac used OLDID. Apparently, the system remembers the AppleID to use with each CloudKit app (based on the AppleID active at time of first use), because the desktop app and the mobile apps apparently sync to different AppleID accounts. I can delete the local database on the desktop and delete the local app on the mobile devices and in each case, reloading/rerunning the app causes the respective databases to be restored from the cloud. The two mobile devices sync with each other, but not with the desktop; the desktop doesn't sync with either device. And the two databases have decidedly different contents. My goal is to consolidate everything so that there is one database, s
3
0
1.3k
Jun ’26
Reply to Stability issues with Apple Pay Sandbox Cards
Hi @harshitbs, You wrote: [...] Could you please investigate the stability of the sandbox card provisioning service? Please let us know if this is a known issue or if there is any further information we can provide. The forums is not the proper place to report system outages. Please use Feedback Assistant to create bug reports. The Apple Pay sandbox environment is intended for testing card transactions and not primary used for card provisioning. This is because the sandbox environment: Doesn't have the same availability SLAs as the production environment. Share infrastructure that may undergo maintenance, scaling adjustments, or periodic resets. Learn more about those at Developer System Status. Simulates connections to multiple card network test environments, each of which may have independent availability issues. Next time this occurs, please provide the following details in your bug report: Timestamp (with timezone) Device model and iOS version Sandbox Apple Account used
Jun ’26
My app review has been stuck
My app review has been stuck. The app includes IAP. When displaying purchases, it first needs to retrieve the price list. This price list is hosted on Apple's servers. Retrieving it is handled by the SDK. Possibly due to the sandbox environment, the price list is very difficult to obtain right when Apple's California office starts work. But at other times, it's very fast. Apple's reviewers have never been able to see the prices. I suggested they change their test time to noon or afternoon, but they still couldn't see the prices. This suggests that the network environment used by Apple's review team has poor connectivity to Apple's own sandbox servers. When I received the review start notification, I tested it myself, and it worked perfectly — the price list loaded quickly. I recorded a video and took screenshots to show the reviewers. But they are still testing within their own network environment, so they couldn't see the price list. I suggested they switch to an open network environment fo
Replies
2
Boosts
0
Views
284
Activity
Jun ’26
Sandboxed Mac app denied mach-lookup com.apple.cloudd when signed with Mac Team Store Provisioning Profile on macOS 26
A sandboxed Mac app with correct CloudKit entitlements fails to connect to com.apple.cloudd (the CloudKit daemon) when distributed via TestFlight (Mac Team Store Provisioning Profile). The identical binary works correctly when launched from Xcode (Mac Team Provisioning Profile also present). All entitlements are correctly embedded and the App ID is properly configured in Apple Developer Portal. Environment macOS 26.5.1 (25F80) Xcode 26.5 (17F42) SwiftData with NSPersistentCloudKitContainer / ModelConfiguration(cloudKitDatabase: .private(...)) Steps to Reproduce Create a sandboxed Mac app using SwiftData with CloudKit sync Enable iCloud + CloudKit in Signing & Capabilities Archive and distribute to TestFlight (Mac Team Store Provisioning Profile) Install via TestFlight on macOS 26 and launch Check Console for kernel sandbox messages Expected Result CloudKit connects to com.apple.cloudd and syncs data, matching behavior of the iOS version using the same container. Actual Result Co
Replies
17
Boosts
0
Views
2.3k
Activity
Jun ’26
Reply to Programmatic IP Discovery for VZVirtualMachine in an App Store Sandbox
[quote='894588022, DTS Engineer, /thread/822025?answerId=894588022#894588022'] So, just to be clear, if you put this code in a non-sandboxed test app it works just fine on macOS 27 beta? [/quote] it does not work in both mode s(sandboxed and non-sandboxed) in macOS 27 beta whereas in macOS 26 it was working great in both the modes
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Programmatic IP Discovery for VZVirtualMachine in an App Store Sandbox
So, just to be clear, if you put this code in a non-sandboxed test app it works just fine on macOS 27 beta? Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
RevenueCat offerings returning empty (current: null, allKeys: []) despite correct setup — first-time auto-renewable subscription submission
Hi all, I'm launching my first iOS app (Capacitor/Next.js WebView wrapper) with two auto-renewable subscriptions via RevenueCat, and I'm stuck on a persistent issue across multiple App Store Review rejections. Setup: Bundle ID: no.skaren.app Two auto-renewable subscriptions: no.skaren.app.premium.monthly and no.skaren.app.premium.yearly, both in a single subscription group RevenueCat integrated via @revenuecat/purchases-capacitor App-Specific Shared Secret added to RevenueCat App Store Connect API key (with correct Key ID/Issuer ID) added to RevenueCat Paid Apps Agreement: Active Bundle ID in RevenueCat matches exactly RevenueCat API key in app code matches dashboard exactly The problem: On a physical device (TestFlight build, signed into Sandbox Apple ID), calling Purchases.getOfferings() always returns: {current:null,allKeys:[]} No errors are thrown — the offerings object is just empty. This happens consistently across multiple builds, after removing a conflicting limitsNavigationsToAppBoundDomains
Replies
0
Boosts
0
Views
325
Activity
Jun ’26
Reply to Sandboxed network permissions on macOS
Sorry I didn’t reply sooner. I didn’t see your thread until now [1]. Every app extension is sandboxed. This is obviously true on iOS, where all third-party code is sandboxed, but it’s also true on macOS, where every app extension must opt in to the App Sandbox. Having said that, not all sandboxes are created equally. Some appexen run in a restricted sandbox, one that’s designed to prevent data from escaping. For example, Network Extension filter data providers on iOS are not allow to ‘leak’ network traffic, as explained here. Given that, the actual sandbox restrictions seen by your appex will vary based on the appex type. I’m not super familiar with App Intent app extensions, but AFAIK they run in a pretty standard sandbox. Moreover, you’re asking about the Mac, where AFAIK all appexen run in a standard sandbox, that is, the App Sandbox. So, this is all just a caveat saying that the following assumes that your appex is running in
Replies
Boosts
Views
Activity
Jun ’26
How to end-to-end test significantAppChangeRequiresParentalConsent with AskCenter outside of Sandbox mocked responses?
Hello, We are currently integrating the new Declared Age Range framework to comply with the age assurance requirements (such as the Texas regulatory rollout). We are specifically trying to test the AgeRangeService.RegulatoryFeature.significantAppChangeRequiresParentalConsent flow for minors. The Problem When testing in the Sandbox environment, the consent flow returns a mocked response immediately. While this validates our basic code logic, it does not allow us to test or see the actual end-to-end user experience/UI of the parental consent flow. When we attempt to test this outside of the Sandbox environment on a production build/device to see the true system UI, the AskCenter.ask(PermissionQuestion, in: ...) request fails immediately with the following error: Error: “The user is in a region that does not support this type of ask. UserInfo: {NSLocalizedDescription=The user is in a region that does not support this type of ask., NSLocalizedRecoverySuggestion=Please ensure the user is in an el
Replies
0
Boosts
0
Views
229
Activity
Jun ’26
Reply to Quick Look Plugin for Mac and Internet Access
Hi @elementarteilchen, @andre07, Please see my answer in the following post: Supported way to use MapKit in a sandboxed macOS Quick Look extension? https://developer.apple.com/forums/thread/831248?page=1#894362022 Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Supported way to use MapKit in a sandboxed macOS Quick Look extension?
Hi @n0rt0nthec4t, You wrote: [...] This is the rendering I get with either MKMapSnapshotter OR MKMapView [...] The behavior is two-fold—QuickLook extensions are sandboxed and prevent network access to protect the user's information. However, MapKit is a system framework and this use case should be reconsidered. I'd suggest for you to create a report via Feedback Assistant. Once submitted, please reply here with the Feedback ID so I can escalate with the Quick Look team directly. I want to be clear, this is not a bug or oversight, but a deliberate security boundary, there is no guarantee this will be fixed in a later release. MapKit's tile fetching is network activity. Even though the intent is to download map imagery (not upload user data), the sandbox doesn't distinguish between inbound and outbound purposes at the Mach service level. Note: Even if other developers report this issue, it is essential that you each submit your own bug report. The number of bug reports for this issue will impr
Replies
Boosts
Views
Activity
Jun ’26
Reply to Sandboxed App <> Launch Agent - how to communicate?
What Etresoft said plus… XPC is our preferred IPC mechanism, but it has a bunch of history and it can be confusing. I have links to docs and so on in XPC Resources. The XPC named endpoint published by your launchd agent must have a name that’s ‘within’ the app group. See the first entry in the table in App Groups Entitlement. Both programs must claim access to that app group via an entitlement. That entitlements should be authorised by a provisioning profile. App groups have a whole bunch of history on the Mac. See App Groups: macOS vs iOS: Working Towards Harmony. The requirement for a provisioning profile is why you need to embed the agent in an app-like wrapper. Embedding a command-line tool in a sandboxed app offers a rough outline of how to do that. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Sandboxed App <> Launch Agent - how to communicate?
It depends. First of all, you must setup an app group. No option there. However you do your communication, you'll need an app group. Next, you'll need to make sure your launch agent is an app-like wrapper. What you do is create a new app target and bundle it inside your main app. You can strip off all the things you won't need like storyboards and such. It needs to be an app-like wrapper to have a real bundle ID, sandbox, and understand that it's in a group. Next, make sure the launch agent works. Run it every 60 seconds or something. Later you can change that. There are multiple options for communication. You might not need anything. If you can run your launch agent on a schedule, you can save the configuration to a file the next time it launches. If you do need a continuously running agent, then you'll need some kind of client/server connection. You could do that manually with sockets or named pipes. Or you could use XPC. The first time I tried all of this with XPC, it failed miserably. I don't kno
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Jun ’26
Sandboxed App <> Launch Agent - how to communicate?
I’m building a sandboxed macOS App Store app that registers an agent using SMAppService. I’m trying to understand the IPC setup between the main app and the SMAppService-managed agent. The obvious options seem to be: XPC with a Mach service But from what I understand, I’d need a special entitlement that allows me to communicate over XPC Mach service - which is unlikely to pass Mac App Store review. So how do people communicate with processes registered with SMAppService?
Replies
2
Boosts
0
Views
1.3k
Activity
Jun ’26
SwiftData, CloudKit and 2 AppleIDs
I have a SwiftData app that runs on iOS, iPadOS, and MacCatalyst and which uses CloudKit for inter-device sync. Unfortunately, I also have two AppleIDs (which I 'll refer to as OLDID and NEWID). Although all three devices (phone, pad and desktop) are currently set up with NEWID as the active AppleID, during development and testing, my desktop Mac used OLDID. Apparently, the system remembers the AppleID to use with each CloudKit app (based on the AppleID active at time of first use), because the desktop app and the mobile apps apparently sync to different AppleID accounts. I can delete the local database on the desktop and delete the local app on the mobile devices and in each case, reloading/rerunning the app causes the respective databases to be restored from the cloud. The two mobile devices sync with each other, but not with the desktop; the desktop doesn't sync with either device. And the two databases have decidedly different contents. My goal is to consolidate everything so that there is one database, s
Replies
3
Boosts
0
Views
1.3k
Activity
Jun ’26
Reply to Stability issues with Apple Pay Sandbox Cards
Hi @harshitbs, You wrote: [...] Could you please investigate the stability of the sandbox card provisioning service? Please let us know if this is a known issue or if there is any further information we can provide. The forums is not the proper place to report system outages. Please use Feedback Assistant to create bug reports. The Apple Pay sandbox environment is intended for testing card transactions and not primary used for card provisioning. This is because the sandbox environment: Doesn't have the same availability SLAs as the production environment. Share infrastructure that may undergo maintenance, scaling adjustments, or periodic resets. Learn more about those at Developer System Status. Simulates connections to multiple card network test environments, each of which may have independent availability issues. Next time this occurs, please provide the following details in your bug report: Timestamp (with timezone) Device model and iOS version Sandbox Apple Account used
Replies
Boosts
Views
Activity
Jun ’26
Reply to Apple Pay Test cards not added to Wallet
Hi @Eddie1809, Glad you were able to resolve this. For anyone else with similar issues, please see my answer on the post below: Sandbox Testing https://developer.apple.com/forums/thread/799165?answerId=893971022#893971022 Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Replies
Boosts
Views
Activity
Jun ’26