Is there a setting in Settings for None, Ask, or Always for Declared Age? I cannot find anything in iOS 26.2 Settings app, nothing comes up in a search for "age" in Settings.
I managed to setup a sandbox apple account (after creating a new email address) and I was able to go to Settings->Developer, login to the sandbox account, and try the various settings for age there, so that much is working.
When I call AgeRangeService.shared.requestAgeRange(ageGates: 18, in: presenter) I get "The operation couldn’t be completed. (DeclaredAgeRange.AgeRangeService.Error error 0.)"
Is there a way to test this with my regular personal apple unpaid developer account, my work apple developer account with MS SSO, or with the sandbox user?
Should I be using requestAgeRange or isEligibleForAgeFeatures?
We just have a regular app on the store, it doesn't have chat or anything like that, it's used by licensed truck drivers mostly CDL holders who are 99.99% 18+ in age, possibly some exceptions for 16+ farm drivers. And we would like to stay compliant. Other caveats are that only iOS 26.2 and up are supported, and a judge has blocked the Texas law.
Is Apple still supporting the Declared Age Framework or has there been a change?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
Good afternoon, everyone!
I received a notification that my app was rejected for the following reason:
"We noticed that the user is taken to the default web browser to sign in or register for an account, which provides a poor user experience."
The app is a directory of partners that offer a benefit to our members. So the intent of the app is for users that are already registered with our nonprofit to access their benefits using existing account credentials. (Note: The sign-in itself is handled within the app after the account is created.)
Is there any way to make this compliant with guidelines without having to offer a duplicate registration form within the app and sync them?
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Approx Dec 13th 2025 til now (Dec 29th) I noticed my APNS dropped off to nothing daily. When I try to send APNS alerts on the developer site tool it always returns "discarded as device was offline" for multiple devices which I know are online.
When I try pushing through my VPS (as I always have without any code changes for months) I get status codes of 400 and 403 mostly and a few 200's without it delivering also.
I created a new sandbox certificate just in case it was that but still no luck, I get the same results. Ive checked for any firewall issues and I see the following on my VPS:
nslookup gateway.push.apple.com
Server: 1.1.1.1
Address: 1.1.1.1#53
** server can't find gateway.push.apple.com: NXDOMAIN
This seems like a second issue but not the primary issue that the portal is reporting.
Any ideas what to check? Im at a loss as to why its not working at all through apples test notification portal on my developer account. It seems thats the initial issue I need to solve.
Thank you for any ideas/help
I am building a macOS utility using SwiftUI and Swift that records and displays keyboard shortcuts (like Cmd+C, Cmd+V) in the UI. To achieve this, I am using NSEvent.addGlobalMonitorForEvents(matching: [.keyDown]).
I am aware that global monitoring usually requires the app to be non-sandboxed. However, I am seeing some behavior I don't quite understand during development:
I started with a fresh SwiftUI project and disabled the App Sandbox.
I requested Accessibility permissions using AXIsProcessTrustedWithOptions, manually enabled it in System Settings, and the global monitor worked perfectly.
I then re-enabled the App Sandbox in "Signing & Capabilities."
To my surprise, the app still records global events from other applications, even though the Sandbox is now active.
Is this expected behavior? Does macOS "remember" the trust because the Bundle ID was previously authorized while non-sandboxed, or is there a specific reason a Sandboxed app can still use addGlobalMonitor if the user has manually granted Accessibility access?
My app's core feature is displaying these shortcuts for the user's own reference (productivity tracking). If the user is the one explicitly granting permission via the Accessibility privacy pane, will Apple still reject the app for using global event monitors within a Sandboxed environment?
Code snippet of my monitor:
// This is still firing even after re-enabling Sandbox
eventMonitor = NSEvent.addGlobalMonitorForEvents(matching: [.keyDown]) { event in
print("Captured: \(event.charactersIgnoringModifiers ?? "")")
}
I've tried cleaning the build folder and restarting the app, removing the app from accessibility permission, but the events keep coming through. I want to make sure I'm not relying on a "development glitch" before I commit to the App Store path.
Here is the full code anyone can use to try this :-
import SwiftUI
import Cocoa
import Combine
struct ShortcutEvent: Identifiable {
let id = UUID()
let displayString: String
let timestamp: Date
}
class KeyboardManager: ObservableObject {
@Published var isCapturing = false
@Published var capturedShortcuts: [ShortcutEvent] = []
private var eventMonitor: Any?
// 1. Check & Request Permissions
func checkAccessibilityPermissions() -> Bool {
let options: NSDictionary = [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String: true]
let accessEnabled = AXIsProcessTrustedWithOptions(options)
return accessEnabled
}
// 2. Start Capture
func startCapture() {
guard checkAccessibilityPermissions() else {
print("Permission denied")
return
}
isCapturing = true
let mask: NSEvent.EventTypeMask = [.keyDown, .keyUp]
eventMonitor = NSEvent.addGlobalMonitorForEvents(matching: mask) { [weak self] event in
self?.processEvent(event)
}
}
// 3. Stop Capture
func stopCapture() {
if let monitor = eventMonitor {
NSEvent.removeMonitor(monitor)
eventMonitor = nil
}
isCapturing = false
}
private func processEvent(_ event: NSEvent) {
// Only log keyDown to avoid double-counting the UI display
guard event.type == .keyDown else { return }
var modifiers: [String] = []
var symbols: [String] = []
// Map symbols for the UI
if event.modifierFlags.contains(.command) {
modifiers.append("command")
symbols.append("⌘")
}
if event.modifierFlags.contains(.shift) {
modifiers.append("shift")
symbols.append("⇧")
}
if event.modifierFlags.contains(.option) {
modifiers.append("option")
symbols.append("⌥")
}
if event.modifierFlags.contains(.control) {
modifiers.append("control")
symbols.append("⌃")
}
let key = event.charactersIgnoringModifiers?.uppercased() ?? ""
// Only display if a modifier is active (to capture "shortcuts" vs regular typing)
if !symbols.isEmpty && !key.isEmpty {
let shortcutString = "\(symbols.joined(separator: " ")) + \(key)"
DispatchQueue.main.async {
// Insert at the top so the newest shortcut is visible
self.capturedShortcuts.insert(ShortcutEvent(displayString: shortcutString, timestamp: Date()), at: 0)
}
}
}
}
PS :- I just did another test by creating a fresh new project with the default App Sandbox enabled, and tried and there also it worked!!
Can I consider this a go to for MacOs app store than?
We're building a parental control app using FamilyControls (.child authorization). Our architecture:
Parent sends pause command → Firestore + FCM
Child receives push → NotificationService Extension triggers main app
Main app sets ManagedSettings Shields
Problem: If child disables Notifications in Settings and force-quits the app, we cannot enforce Shields.
What we've tried:
Firestore Realtime Listener (works only when app is running)
DeviceActivityMonitor (intervalDidStart/End only triggers at schedule boundaries, eventDidReachThreshold requires explicit app selection via FamilyActivityPicker)
Question: Is there a recommended approach for parental control apps to reliably enforce Shields when the child has disabled notifications? Or is this a known limitation?
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
Hello,
Im not sure why this happens.This is frustrating to see that despite paying the heavy amounts to join developer programme.The account is not getting confirmed surpassing way more than 48 hours of the payment. I paid the amount on 26th of December. and today is 29th. will you be compensating on the days we lost in this review process ?
各位大神有没有人知道苹果手机玩法隐藏技巧?
Hello, I am trying to find out the best way to move my app from Base 44 to the App Store. I know its a process but I want to do it the best way possible to avoid any issues with the migration.
Topic:
App Store Distribution & Marketing
SubTopic:
General
I am porting my app to SwiftUI and I am hitting a wall when using ScrollView. In my application, I have nested scrollViews to represent a scheduler.
outer vertical scroll view
inner horizontal scroll view that allows to horizontally scroll multiple columns in the scheduler
each column in the inner scroll view is a view that needs to allow for a drag to initiate the creation of a new appointment
on macOS, I do a mouse-down drag, so it does not affect the scroll view and works fine
on iOS, if I add a drag gesture to the column, it short circuits the scroll view and scrolling becomes disabled. To initiate the drag, there is a long-press, and that gesture is fine, only the subsequent drag gesture is problematic.
I have attached URL to a test app. The UI allows you to toggle the drag gesture. Hopefully, someone can help to get it to work since I would eventually like to port the macOS target to Catalyst.
Download Test App
Topic:
UI Frameworks
SubTopic:
SwiftUI
I’m trying to integrate our app with the iXGuard obfuscation tool, which needs to run in the archive post-actions step in Xcode Cloud. The issue is: iXGuard takes a long time to complete and, during its execution, does not generate any console output or logs in the Archive Post-actions step.
Problem:
When Archive Post-actions runs for a long time without producing log output, Xcode Cloud triggers a timeout and the workflow stops before running the next CI step (e.g., ci_post_xcodebuild.sh). Even though the script continues running in the background, the workflow is aborted due to inactivity in the logs.
Workaround Tried:
As a workaround, I have ci_post_xcodebuild.sh print the logs generated by archive post-actions. However, this does not help in my case since the timeout occurs before ci_post_xcodebuild.sh even runs.
Error:
The step invocation hit a user timeout. The xcodebuild archive invocation timed out. No activity has been detected on stdout, stderr or the result bundle in 30 minutes.
Question:
Is there a recommended way to prevent Xcode Cloud from timing out during long-running steps that do not produce log output?
Are there best practices for keeping the workflow alive with periodic logs during Archive Post-actions?
Any support or workaround for integrating tools like iXGuard that require significant processing time after the archive step?
Thanks in advance for your help!
I’m trying to understand how SwiftUI List handles row lifecycle and reuse during scrolling. I have a list with around 60 card views; on initial load, only about 7 rows are created, but after scrolling to the bottom all rows appear to be created, and when scrolling back to the top I again observe multiple updates and apparent re-creation of rows. I confirmed this behavior using Instruments by profiling my app. Even though each row has a stable identifier, the row views still seem to be destroyed and recreated, which doesn’t resemble UIKit’s cell reuse model. I’d like clarity on how List uses identifiers internally, what actually gets reused versus recreated, and how developers should reason about performance and view lifetime in this case.
I'm trying to download an iOS Simulator runtime in Xcode 26.2 or 26.1 on macOS 26.1, but the download keeps failing with the following error:
Download failed.
Domain: DVTDownloadableErrorDomain
Code: 41
Failed fetching catalog for assetType (com.apple.MobileAsset.iOSSimulatorRuntime), serverParameters ({ RequestedBuild = 23C54;})
Domain: DVTDownloadsUtilitiesErrorDomain.
Code: -1.
Download failed due to a bad URL. (Catalog download for com.apple.MobileAsset.iOSSimulatorRuntime)
Domain: com.apple.MobileAssetError.Download
Code: 49
User Info: {checkConfiguration = 1;}
macOS & Xcode Info:
macOS Version: 26.1 (Build 25B78)
Xcode Version: 26.2 (24553) (Build 17C52)
What I've tried so far:
Formatted my Mac and reinstalled Xcode multiple times.
Completely deleted Xcode and its related files several times (/Applications/Xcode.app, caches, preferences).
Tried different internet connections from multiple locations.
Checked Apple servers and verified network.
Attempted downloading other simulator runtimes (fail).
but download fails immediately with DVTDownloadableErrorDomain Code 41 and bad URL error.
Question:
How can I fix the simulator download issue in Xcode 26.2 on macOS 26.1? Is there a known workaround for the bad URL / catalog download error?
I'm ready to submit a new app with 3 subscription plans. But the status of the group remains 'Prepare for Submission.' And it won't change. All the individual subscription plans have the 'Ready to Submit' status. I have triple-checked individual plans to see if there is anything missing. No. Nothing is missing. There are no pending business contracts to review, either. I have even deleted an existing group and created a whole new subscription group. And I still end up with this prepare status. Am I the only one having this subscription group difficulty?
One thing that I realize is that the status appears as 'Ready to Submit' on individual subscription plans. But their respective localization pair of display name and description get the Prepared status. The display name and the description fields are both filled for all three plans. What a nice, merry, merry Christmas.
I don't know what else I can do to resolve this Prepared madness. I've been stuck for 4 hours.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Subscriptions
In-App Purchase
when i start to enroll apple developer account for organisation it could not be completed and in the end saying contact support.
but when i mailed to them there is no support or reply from apple customer support.
and there is no specification what problem i have from stopping me to complete apple developer account enrollement.
Hi all. Thanks in advance for any guidance you’re able to offer.
We’ve had an issue reported by multiple customers where, following an iOS update, our app crashes on the next launch. When this happens, users briefly see a split screen: half of the view shows the app background, while the other half is completely black. After this point, the app is unusable.
Here’s what we’ve uncovered so far during our investigation:
We believe this occurs when a user is already signed into the app at the time they install the iOS update. For context, we intentionally do not force users to log out of the app, as it’s primarily used for customer support and assistance. This is a firm business decision and not something we plan to change.
We suspect the issue is related to our Flutter WebView and how it restores or reloads session state following an iOS update. In the past, updating the Flutter version has resolved similar issues, but we are currently on the latest available version.
Once the half-screen issue occurs, all app functionality is blocked. At present, the only workaround is for the user to delete and reinstall the app.
The most frustrating part is that this does not affect all users. Some customers have updated to iOS 26.2 without any issues at all. We’ve been unable to reproduce the problem internally, despite extensive testing and attempts to force the conditions. That said, our IT Director did experience the issue firsthand on his own device.
For our next release, we’re planning to try the following changes, though we won’t know for certain whether they resolve the issue until the update is in the wild.
First, disabling iOS state restoration:
func application(_ application: UIApplication,
shouldSaveApplicationState coder: NSCoder) -> Bool {
return false
}
func application(_ application: UIApplication,
shouldRestoreApplicationState coder: NSCoder) -> Bool {
return false
}
This was recommended to us as it’s apparently a common approach to addressing post-update freezes or broken restore states.
Second, detecting an iOS version change and resetting the WebView / Flutter state on first launch after an update:
let lastOS = UserDefaults.standard.string(forKey: "lastOSVersion")
let currentOS = UIDevice.current.systemVersion
if lastOS != currentOS {
// Clear WebView data
WKWebsiteDataStore.default().removeData(
ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
modifiedSince: Date.distantPast,
completionHandler: {}
)
// Force Flutter engine restart
// OR route user through a native splash/login screen
UserDefaults.standard.set(currentOS, forKey: "lastOSVersion")
}
The idea here is to ensure the WebView and Flutter engine start cleanly after an iOS update, rather than attempting to restore potentially incompatible state.
We’d really welcome any ideas, suggestions, or feedback from others who may have encountered something similar. Apologies in advance if any details are vague — I’m not deeply technical, so this is based on the research and guidance we’ve gathered so far.
Thanks again for your time and help,
Chris Brodier
Topic:
App & System Services
SubTopic:
Core OS
I'm currently collecting real-time heart rate data using HKWorkoutSession. I want to track when the Apple Watch is physically removed from the user's wrist during an active workout.
However, I've noticed that workoutBuilder(_:didCollectDataOf:) continues to be called even after the watch is removed from the wrist.
Is there a way to detect when the Apple Watch is removed from the wrist during an active HKWorkoutSession? Or is this tracking not possible through the HealthKit framework?
Any guidance or alternative approaches would be appreciated.
I set "show live issues", but in the Xcode 26.2 version, I defined an unused variable in the function. This variable does not trigger real-time warnings; it only alerts when the compilation is completed.
What settings should I make to trigger an alert for unused variables in real time?
Topic:
Developer Tools & Services
SubTopic:
Xcode
I have a single multiplatform application that I use NSPersistentCloudKitContainer on.
This works great, except I noticed when I open two instances of the same process (not windows) on the same computer, which share the same store, data duplication and "Metadata Inconsistency" errors start appearing.
This answer (https://stackoverflow.com/a/67243833) says this is not supported with NSPersistentCloudKitContainer.
Is this indeed true?
If it isn't allowed, is the only solution to disable multiple instances of the process via a lock file? I was thinking one could somehow coordinate a single "leader" process that syncs to the cloud, with the others using NSPersistentContainer, but this would be complicated when the "leader" process terminates.
Currently, it seems iPad split views are new windows, not processes -- but overall I'm still curious :0
Thank you!
Hi, I am running build on ios 26.2 device, connected with cable (not wifi) and it crashes because files are not loaded or something. But when i turn off Debug Exetuble, it works just fine.
Also, tried to run on ios 18.2 device, with Debug executable On - everything is ok, and breakpoints work.
My guess, App crashes on reading and loading Assets and others app files like certificates.
XCode run logs shows: **"Too many file errors". **
sample.txt
xcode_run_logs.txt
Also, exectued image list on lldb console, could not attach here, if needed i can add it with some url here.
Hello,
We are developing an iAP2 accessory and encountering an issue during the Identification phase.
Issue:
Authentication: ✅ Successful
Identification: ❌ IdentificationInformation rejected (0x1D03)
Product Plan Status: "Submitted" (in MFi Portal)
What we've verified:
ProductPlanUID matches MFi Portal
All required parameters per R43 Table 101-9 are included
Parameters are in ascending order by ID
Message format appears correct
Observation:
iPhone accepts the message format but still rejects IdentificationInformation, suggesting the issue may be related to Product Plan configuration or status rather than parameter format.
Questions:
Can a Product Plan with status "Submitted" complete iAP2 identification, or does it need to be "Approved"?
Are there any Product Plan configuration requirements that might not be visible in MFi Portal?
Should we configure "Control Message Lists" in Product Plan? (We don't see this option in Portal)
We can provide additional technical details through secure channels if needed.
Thank you for your assistance.
Topic:
App & System Services
SubTopic:
General