Hello everyone,
I’m running into an issue where a partial sheet repeatedly presents and dismisses in a loop.
Setup
The main screen is presented using fullScreenCover
From that screen, a button triggers a standard partial-height sheet
The sheet is presented using .sheet(item:)
Expected Behavior
Tapping the button should present the sheet once and allow it to be dismissed normally.
Actual Behavior
After the sheet is triggered, it continuously presents and dismisses.
What I’ve Verified
The bound item is not being reassigned in either the parent or the presented view
There is no .task, .onAppear, or .onChange that sets the item again
The loop appears to happen without any explicit state updates
Additional Context
I encountered a very similar issue when iOS 26.0 was first released
At that time, moving the .sheet modifier to a higher parent level resolved the issue
The problem has now returned on iOS 26.4 beta
I’m currently unable to reproduce this in a minimal sample project, which makes it unclear whether:
this is a framework regression, or
I’m missing a new presentation requirement
Environment
iOS: 26.4 beta
Xcode: 26.4 beta
I’ve attached a screen recording of the behavior.
Has anyone else experienced this with a fullScreenCover → sheet flow on iOS 26.4?
Any guidance or confirmation would be greatly appreciated.
Thank you!
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I have a group of XCUItest suites that were designed to run in parallel on simulators. They run fine in xcode 16.2, but when I try to run them in Xcode 26 they run fine the first time, but on the second time I get an error that the simulator cannot be found: "No matching device (62621AD4-C8D6-4A1B-B511-79236113FD94) ". This UDID seems to be from one of the clones that were spawned on the previous test run.
No matching device (62621AD4-C8D6-4A1B-B511-79236113FD94) in set at /Users/myUser/Library/Developer/XCTestDevices
Domain: com.apple.CoreSimulator.SimError
Code: 404
User Info: {
DVTErrorCreationDateKey = "2026-02-26 22:52:53 +0000";
IDERunOperationFailingWorker = "_IDEInstalliPhoneSimulatorWorker";
}
If I clean all simulators and try to run again without closing Xcode, it keeps trying to access the clone that no longer exists.
If I close an reopen xcode after removing all simulators ~/Library/Developer/XCTestDevices, xcode keeps trying the wrong device and I get the following error: Failed to clone device named 'iPhone 17 Pro'. (Underlying Error: The operation couldn’t be completed. Device was allocated but was stuck in creation state. Check CoreSimulator.log for more information.)
This is what I get from CoreSimulator log: Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : Device 3C7BE1BE-416E-480A-BDA6-ADE8F0ADF818 encountered in creation state at launch. The device will be re-created.
Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : Failed to clone the device data path from /Users/MyUser/Library/Developer/CoreSimulator/Devices/7A5377DC-3ED9-4C8B-96EB-8DF7BEF4AE8B/data to /Users/MyUser/Library/Developer/XCTestDevices/3C7BE1BE-416E-480A-BDA6-ADE8F0ADF818/data, error = Error Domain=NSCocoaErrorDomain Code=260 "The file “data” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/MyUser/Library/Developer/CoreSimulator/Devices/7A5377DC-3ED9-4C8B-96EB-8DF7BEF4AE8B/data, NSURL=file:///Users/MyUser/Library/Developer/CoreSimulator/Devices/7A5377DC-3ED9-4C8B-96EB-8DF7BEF4AE8B/data, NSUnderlyingError=0x600000d04120 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : Failed to re-create device that was encountered in the creation state (Clone 1 of iPhone 17 Pro (3C7BE1BE-416E-480A-BDA6-ADE8F0ADF818, iOS 26.2, Creating)): Error Domain=NSCocoaErrorDomain Code=260 "The file “data” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/MyUser/Library/Developer/CoreSimulator/Devices/7A5377DC-3ED9-4C8B-96EB-8DF7BEF4AE8B/data, NSURL=file:///Users/MyUser/Library/Developer/CoreSimulator/Devices/7A5377DC-3ED9-4C8B-96EB-8DF7BEF4AE8B/data, NSUnderlyingError=0x600000d04120 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : New device is stuck in creation state, deleting: Clone 1 of iPhone 17 Pro (3C7BE1BE-416E-480A-BDA6-ADE8F0ADF818, iOS 26.2, Creating)
Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : Error Domain=NSPOSIXErrorDomain Code=22 "Invalid argument" UserInfo={NSLocalizedFailureReason=Device was allocated but was stuck in creation state. Check CoreSimulator.log for more information.}
Feb 26 17:24:34 Mac-GD6GX5XH CoreSimulatorService[99200] : Error Domain=NSPOSIXErrorDomain Code=22 "Invalid argument" UserInfo={NSLocalizedFailureReason=Device was allocated but was stuck in creation state. Check CoreSimulator.log for more information.}
Feb 26 17:24:34 Mac-GD6GX5XH com.apple.dt.Xcode[2744] : Error Domain=NSPOSIXErrorDomain Code=22 "Invalid argument" UserInfo={NSLocalizedFailureReason=Device was allocated but was stuck in creation state. Check CoreSimulator.log for more information.}
Topic:
Developer Tools & Services
SubTopic:
Xcode
I installed the latest build of Tahoe (25E5218f) yesterday on our test machine, an M1 Pro MacBook Pro and have been having a hard time getting my WiFi network to work. It's especially noticeable in Mail and Safari. Mail shows it can't connect to the designated server, and Safari simply can't connect to most sites. None of my other devices or computers are having problems, so I have to assume it's this last build that is the culprit. When I tether to my iPhone Air, everything pops back into place and I can access Mail and use Safari.
I've reported the problem with FBA, but wanted to know if anyone else is experiencing the same thing.
I keep getting a fails to open page message when I try to sign in using my Claude ai Pro account. The request was for an http url instead of an https url.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Does anyone no if this is possible without Having to create another apple Developer account and register is that way with my business license name ? or do I have to create a brand new developer account and pay the 99 fee again :(
Topic:
Privacy & Security
SubTopic:
General
Hello!
I recently submitted a request for the Family Controls (Distribution) entitlement for my app, and I’m trying to understand what kind of timeline to expect. I’ve seen posts suggesting anywhere from a few days to over a month for approval.
Is there a typical review window for this entitlement?
And is there anything I can do on my end to help the process move more smoothly?
Thanks in advance!
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
Entitlements
Family Controls
Screen Time
Hi, Submitted Family Controls entitlement request a month ago for my main focus app, got approved within a day. Submitted 3 more requests for my extensions, and it has been 16 days without any word.
Saw advice to file a code-level support with DTS in this similar forum:
https://developer.apple.com/forums/thread/812934
Is there anything else I can do before filing a code-level support? Any extra info to provide? If not, can a DTS engineer please refer me for the code-level support?
Thanks!
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Managed Settings
Screen Time
Entitlements
Hello,
Our team submitted a request for Family Controls entitlements for our main app and four related extensions. It has now been a little over two weeks since submission, and the request is still pending review.
We wanted to check if there are any recommended steps we can take on our end to help move the process forward.
Any guidance or tips from anyone who have recently gone through this process would be greatly appreciated. Thank you.
I'm not sure where to go from here, I've filled in the "appeal" form but had no response.
My app has somehow been interpreted to 'only work with specific hardware' - this is not the case it works wither either specific hardware OR a third party piece of software (which is freely available)
The third party software provides a TCP server and my app connects to it as a client.
I have been rejected four times now because I haven't provided a 'video to show the paring process with the dedicated hardware'
There isn't a 'pairing process' any more than there is a pairing process between Safari and a website or Mail and an IMAP server, it literally connects to the specified IP and Port.
I've provided a video of this (showing a screen capture of the software in question, and a screen capture from an actual iOS device - my iPhone - showing me connecting to the other application in the app, and demonstrating the functionality of the app - but keep being told I need to provide a video with hardware.
I don't own the hardware version, I use the software version. It's exactly the same process and software whether it is running on hardware or software.
Hi, we have been working on an application that attaches a hand model to the users hands. Apple provides an animating hand models in visionOS project that is a useful starting point.
https://developer.apple.com/documentation/visionOS/animating-hand-models-in-visionOS
We have been trying to create our own hand model to attach but have had some issues with how it is attaching to the hand. For our hand model we want to include the forearm all the way up to the users elbow. I have attached a sample project of what our code currently looks like so you can run it. Just select show immersive space to attach the models. The left hand model is the space glove that we were trying to mirror. The right hand model is our model that we have been using. I have mapped each of the joints to the pertaining joint name on our model.
The first issue we are having seems to be based around the placement of the forearm. It attaches itself at the wrist.
The second issue seems to be around rotation.
Our team is looking for some guidance on what needs to change in order to map this model correctly. Thanks in advance!
I am developing a macOS application that depends on noticing when the user's computer switches WiFi association, and the SSID determines specific actions. I am currently testing on Tahoe and found that using CoreWLAN can even get notifications and discover the actual SSID inside an app, as long as the app is signed with a real certificate and a corresponding profile is installed on my development machine. The app, however, installs and launches a launchctl agent, which will always be running and hence the component to discover changes and act upon them.
Although app and agent both have their own bundle identifier, both configured in the portal, the agent always received a redacted SSID (nil), while the app does not.
The only app entitlement currently is "com.apple.security.get-task-allow = true", which I don't think has anything to do with this. The agent has: com.apple.application-identifier
com.apple.developer.team-identifier
com.apple.security.get-task-allow
com.apple.security.personal-information.location
Both have asked for permission, and both have location services enabled in system settings. The agent runs as an LSUIElement=1, headless/background configuration.
So, am I missing something, a step, or is there a fundamental restriction on an agent that makes this an impossible task? (Right now, it runs a shortcut to discover the name, but requires the user to create it, and it has side effects I'd rather not see, like the flashing indicator in the menu bar)
As stated in the title, my device is M4 macmini, running macOS 26, with Xcode version 26.1. The error message is ": retrying debugserver without secure proxy due to error: Error Domain=com.apple.dtdevicekit Code=811 UserInfo={NSUnderlyingError=0xc42b07930 {Error Domain=com.apple.dt.MobileDeviceErrorDomain Code=-402653150 UserInfo={MobileDeviceErrorCode=, com.apple.dtdevicekit.stacktrace=, DVTRadarComponentKey=261622, NSLocalizedDescription=}}, NSLocalizedRecoverySuggestion=Please check your connection to your device., DVTRadarComponentKey=261622, NSLocalizedDescription=}, the official documentation does state that debugging is supported for devices running at least iOS 15. However, my 2019 MacBook Pro, with macOS 15.7.2 and Xcode 26.1 installed, can debug iOS 12 devices normally. The product manager has asked me to identify the issue, but I am at a loss. If anyone can provide a solution or confirm that support for iOS 12 is no longer available, we would be very grateful. Additionally, iOS 13 devices can all be debugged normally
We are facing some weird issue in the UILabel initialisation. Also it is occurring sometimes.
class TextLabel: ConfigurableView<TextLabel.Config> {
struct Config {
var text: String = .empty
var font: UIFont?
var textColor: UIColor?
var maxLines: Int = 0
var attributedText: NSAttributedString?
var textAlignment: NSTextAlignment = .natural
var truncateWithMore: Bool = false
var onTapShowMore: (() -> Void)?
var onTap: (() -> Void)?
var accessibilityIdentifier: String?
}
private lazy var label: UILabel = {
let label = UILabel() **//##### Crash is occurring in this line.**
label.translatesAutoresizingMaskIntoConstraints = false
label.adjustsFontForContentSizeCategory = true
return label
}()
private lazy var tapGesture = UITapGestureRecognizer(target: self, action: #selector(onTap))
private var isTruncated = false
override func setUp() {
addSubview(label)
label.equalsContainer()
}
override func layoutSubviews() {
super.layoutSubviews()
updateContent()
}
override func setConfig(_ config: Config) {
super.setConfig(config)
updateContent()
}
@objc func onTap() {
if isTruncated {
config?.onTapShowMore?()
} else {
config?.onTap?()
}
}
func updateContent() {
guard let config = config else { return }
label.numberOfLines = config.maxLines
label.text = config.text
}
}
You can find my configurable view below.
import UIKit
class ConfigurableView<T>: UIControl {
private(set) var config: T?
init(_ config: T) {
super.init(frame: .zero)
setUp()
setConfig(config)
}
override init(frame: CGRect) {
super.init(frame: frame)
setUp()
}
required init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setUp() {
}
func setConfig(_ config: T) {
self.config = config
}
}
This crash is occurring randomly. Sometimes we could reproduce it in the app updates.
Topic:
UI Frameworks
SubTopic:
UIKit
My app requires Google or Apple login. The App Store requires an active email for review. How can the App review team access my email if it required 2FA? I don't understand how I can get an app reviewed it they need me to provide a code after they login?
It seems ridiculous that I need to supply them with a test email, why can't they test with a dummy email? Is it just not possible to get an app reviewed if the app requires Apple or Google logins? Should I temporarily add the option for any email to setup an account and just make a dummy email and then after review asap remove the email login from the app? that seems like a lot of unnecessary programming just because they the need me to provide an email address and login.
iOS App terminated by Watchdog (Signal 9) in Background state despite reporting call
Description
I have successfully implemented VoIP pushes for the Killed state, where CallKit triggers correctly. However, when the app is in the Background state (suspended), it consistently crashes with an NSInternalInconsistencyException.
The app process is killed by the iOS Watchdog because it fails to satisfy the requirement of posting an incoming call in the same run loop as the push receipt, or the completion handler is not being released fast enough by the JS bridge.
Environment
React Native Version: .78
React Native CallKeep Version: 4.3.14
React Native VoIP Push Notification Version: 3.3.3
iOS Version: 18.x
Device: Physical iPhone [iphone 13 pro]
The Issue
When a VoIP push arrives while the app is in the Background:
pushRegistry:didReceiveIncomingPushWithPayload: is called.
RNCallKeep.reportNewIncomingCall is triggered on the Main Thread.
The app is terminated by the system before the CallKit UI is fully established or before the completion() closure is executed.
Current Implementation (AppDelegate.swift)
func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) {
let payloadDict = payload.dictionaryPayload
let callerName = payloadDict["callerName"] as? String ?? "Unknown Caller"
let callUUIDString = payloadDict["uuid"] as? String ?? UUID().uuidString
let userGUID = payloadDict["guid"] as? String ?? "0"
RNCallKeep.reportNewIncomingCall(
callUUIDString,
handle: userGUID,
handleType: "generic",
hasVideo: false,
localizedCallerName: callerName,
supportsHolding: true,
supportsDTMF: true,
supportsGrouping: true,
supportsUngrouping: true,
fromPushKit: true,
payload: ["userGuid": userGUID],
withCompletionHandler: {
}
)
RNVoipPushNotificationManager.didReceiveIncomingPush(with: payload, forType: type.rawValue)
completion()
}
Logs
Exception Type: EXC_CRASH (SIGKILL)
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: TCC 1 |
[CoreFoundation] Killing app because it never posted an incoming call to the system after receiving a PushKit VoIP push.
Observed Behavior
Killed State: Works perfectly.
Foreground State: Works perfectly.
Background State: The phone may vibrate once, but the app process is killed before the CallKit UI appears.
Questions/Suspected Causes
Is RNVoipPushNotificationManager.addCompletionHandler causing a delay in the background run loop that triggers the Watchdog?
Should completion() be called immediately in Swift for the Background state, rather than waiting for VoipPushNotification.onVoipNotificationCompleted in JS?
Is there a known issue with RNCallKeep not being able to present the UI while the app is in a suspended background state?
I'm facing an issue with Xcode Cloud.
Every branch I push to my GitLab repository is not appearing as selectable when I try to create a build with my workflow. Additionally, if I try to update the workflow from Xcode, it crashes every time I save the changes.
Any help would be appreciated.
Translated Report (Full Report Below)
-------------------------------------
Process: Xcode [32110]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 26.2 (24553)
Build Info: IDEApplication-24553000000000000~2 (17C52)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.apple.dt.Xcode [58945]
User ID: 501
Date/Time: 2026-02-19 13:11:54.9987 -0600
Launch Time: 2026-02-19 13:03:37.7725 -0600
Hardware Model: Mac16,5
OS Version: macOS 26.2 (25C56)
Release Type: User
Crash Reporter Key: 61D7E2DA-E724-EFE2-6A01-25079BFCA2D1
Incident Identifier: B3D4A277-7CB5-4696-A00F-057929659F41
Sleep/Wake UUID: 2D4F6C41-716C-4B47-8D40-27FD2D74A8AE
Time Awake Since Boot: 440000 seconds
Time Since Wake: 15967 seconds
System Integrity Protection: enabled
Triggered by Thread: 9, Dispatch Queue: com.apple.root.user-initiated-qos.cooperative
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace SIGNAL, Code 6, Abort trap: 6
Terminating Process: Xcode [32110]
Application Specific Information:
abort() called
Thread 0:: Dispatch queue: com.apple.main-thread
0 AppKit 0x19ffb8250 __51-[NSWindow(NSDisplayCycle) _postWindowNeedsDisplay]_block_invoke + 0
1 CoreFoundation 0x19afe4604 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
2 CoreFoundation 0x19afe4544 __CFRunLoopDoBlocks + 396
3 CoreFoundation 0x19afe3988 __CFRunLoopRun + 2356
4 CoreFoundation 0x19b09de34 _CFRunLoopRunSpecificWithOptions + 532
5 HIToolbox 0x1a7ad3790 RunCurrentEventLoopInMode + 316
6 HIToolbox 0x1a7ad6ab8 ReceiveNextEventCommon + 488
7 HIToolbox 0x1a7c60b64 _BlockUntilNextEventMatchingListInMode + 48
8 AppKit 0x19f8fcb5c _DPSBlockUntilNextEventMatchingListInMode + 236
9 AppKit 0x19f3f6e48 _DPSNextEvent + 588
10 AppKit 0x19fec1d0c -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
11 AppKit 0x19fec1a18 -[NSApplication(NSEventRouting) nextEventMatchingMask:untilDate:inMode:dequeue:] + 72
12 AppKit 0x19f3ef780 -[NSApplication run] + 368
13 IDEKit 0x10cf3f630 -[IDEApplication run] + 192
14 AppKit 0x19f3db6dc NSApplicationMain + 880
15 dyld 0x19ab7dd54 start + 7184
Thread 1:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x19af02c34 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x19af15028 mach_msg2_internal + 76
2 libsystem_kernel.dylib 0x19af0b98c mach_msg_overwrite + 484
3 libsystem_kernel.dylib 0x19af02fb4 mach_msg + 24
4 CoreFoundation 0x19afe4ba0 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x19afe34f8 __CFRunLoopRun + 1188
6 CoreFoundation 0x19b09de34 _CFRunLoopRunSpecificWithOptions + 532
7 AppKit 0x19f486a34 _NSEventThread + 184
8 libsystem_pthread.dylib 0x19af45c08 _pthread_start + 136
9 libsystem_pthread.dylib 0x19af40ba8 thread_start + 8
Thread 2:
0 libsystem_kernel.dylib 0x19af02c34 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x19af15028 mach_msg2_internal + 76
2 libsystem_kernel.dylib 0x19af0b98c mach_msg_overwrite + 484
3 libsystem_kernel.dylib 0x19af02fb4 mach_msg + 24
4 CoreFoundation 0x19afe4ba0 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x19afe34f8 __CFRunLoopRun + 1188
6 CoreFoundation 0x19b09de34 _CFRunLoopRunSpecificWithOptions + 532
7 Foundation 0x19d232964 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
8 DTDeviceKitBase 0x118331930 +[DTDKRemoteDeviceConnection startServiceBrowsers] + 148
9 Foundation 0x19c7fd7a0 __NSThread__start__ + 732
10 libsystem_pthread.dylib 0x19af45c08 _pthread_start + 136
11 libsystem_pthread.dylib 0x19af40ba8 thread_start + 8
Hello, I am attempting to implement a simple button that loads persistent data from a class (see below).
Button("Reload Data") {
while tableData2.isEmpty == false{
tableData2.remove(at: 0)
}
while tableView.isEmpty == false{
tableView.remove(at: 0)
}
//update
if csvData.isEmpty == false{
for superRow in csvData[0].tableData2{
tableData2.append(superRow)
}
for supperRow in csvData[0].tableView{
tableView.append(supperRow)
}
print("Item at 0: \(csvData[0].tableData2[[0][0]])")
print("\(tableData2[0][0])")
} else {
print("csvData is empty")
}
}
This button DOES work to appropriately print the data stored at the printed location once loaded in initially. The problem is that it doesn’t work across app restarts, which is the whole point of the button. Below I will include the rest of the relevant code with notes:
In contentView declaring the persistant variables:
Query private var csvData: [csvDataPersist]
Environment(\.modelContext) private var modelContext
The simple class of data I’m storing/pulling to/from:
@Model
class csvDataPersist{
var tableView: [[String]] = []
var tableData2: [[String]] = []
init(tableView: [[String]], tableData2: [[String]]) {
self.tableView = tableView
self.tableData2 = tableData2
}
}
In (appname)App: I tried both locations of the model container but it didn’t seem to matter
var body: some Scene {
WindowGroup {
ContentView()
.modelContainer(for: csvDataPersist.self)
}
//.modelContainer(for: csvDataPersist.self)
.modelContainer(sharedModelContainer)
}
How I’m attempting to save the data:
let newCSVDataPersist = csvDataPersist(tableView: tableView, tableData2: tableData2)
//modelContext.rollback()
//for superrow in csvData.count{
// csvData[superrow].tableData2.removeAll()
//}
//modelContext.rollback()
//csvData[0].tableData2.removeAll()
//csvData[0].tableView.removeAll()
if csvData.isEmpty == false {
print("not empty, deleting prev data")
modelContext.delete(csvData[0])
} else {
print("it empty, load data.")
}
modelContext.insert(newCSVDataPersist)
//try modelContext.save()
Note that I’ve tried just about every combination of enabling and disabling the commented out lines. This is the part of the code I am the least confident in, but after trying for hours to troubleshoot on my own I would appreciate any input from the community.
Something else that may be of note, in a previous attempt, upon a second startup, the terminal would print:
"coredata: error: error: persistent history (random number) has to be truncated due to the following entities being removed: ( csvdatapersist )"
Why is csvDataPersist getting removed? What is it getting removed by? Looking up this error was fruitless. Most sites instructed me to basically hard reset my simulators, clean the build, restart my computer, and try again. I've done all of these things about a hundred times at this point, with no results.
Any help would be much appreciated!
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Foundation
Mobile Core Services
Swift
Debugging
Hi, I develop an ES client applying rule-engine evaluating ES events (mostly File-system events).
It is a bit non-standard not being deployed as a System-Extension, but rather as a global daemon.
On some Macs, I sometimes see "crash reports" for the ES process, all sharing
Termination Reason: Namespace ENDPOINTSECURITY, Code 2 EndpointSecurity client terminated because it failed to respond to a message before its deadline
All of these happen not while normal Mac usage, but rather right at Mac wakeup time after sleep.
My guess is, some ES_AUTH events (with deadline) arrive when Mac goes to sleep, and somehow my high-priority dispatch_queue handling them is "put to sleep" mid processing them, so when the Mac wakes up - event handling continues long after the deadline passed, and MacOS decides to kick the process.
Questions:
What is the recommended behavior with ES vs Sleep/Wake cycles? (we're not an antivirus, and we don't care much to clear events or go "blind" for such time)
Can I specify somewhere in the info.plist of my bundle (this is built like an App) that my process should't be put to sleep, or that the OS should sleep it only when it becomes idle, or some other way tells the OS it is "ready for sleep" ?
If not -- How do I observe the scenario so I can suspend my event handling IN TIME and resume on wake?
Thanks!
I'm building an app that heavily relies on EKEventStore for calendar and reminder integration. The API is simple - and limited.
Change notifications amount to "something changed, you'd better refetch everything you care about." There's no way to know whether the calendar was updated while your app was closed or backgrounded. EKEvents and EKReminders don't trigger SwiftUI view updates, so you end up shunting them into your own observable state and keeping the two in sync.
My app is fairly complex rendering-wise, and I lament being locked into treating EKEventStore as a first-class citizen of my view and data layer. It makes everything clunkier, essentially shuts the door on modern features like undo/redo, and makes integrating with other calendar providers that much harder.
I'm exploring a custom SwiftData DataStore ↔ EKEventStore sync engine, but this is no easy task. There are still many unknowns I'd need to spike out before I can even attempt a proper implementation.
Still, I'm curious - is this something being actively worked on behind the scenes? Will we see a more modern, observable, SwiftUI-native EventKit integration in the future?
Not quite but maybe sorta related to the errOSAInternalTableOverflow problem I asked about in a different thread, this one deals with crashes our app gets (and much more frequently lately after recent OS updates (15.7.3) are OK'd by our IT department).
Our app can run multiple jobs concurrently, each in their own NSOperation. Each op creates its own SBApplication instance that controls unique instances of InDesignServer. What I'm seeing recently is lots of crashes happening while multiple ops are calling into ScriptingBridge. Shown at the bottom is one of the stack crawls from one of the threads. I've trimmed all but the last of our code. Other threads have a similar stack crawl.
In searching for answers, Google's AI overview mentions "If you must use multiple threads, ensure that each thread creates its own SBApplication instance…" Which is what we do. No thread can reach another thread's SBApplication instance. Is that statement a lie? Do I need to lock around every ScriptingBridge call (which is going to severely slow things down)?
0 AE 0x1a7dba8d4 0x1a7d80000 + 239828
1 AE 0x1a7d826d8 AEProcessMessage + 3496
2 AE 0x1a7d8f210 0x1a7d80000 + 61968
3 AE 0x1a7d91978 0x1a7d80000 + 72056
4 AE 0x1a7d91764 0x1a7d80000 + 71524
5 CoreFoundation 0x1a0396a64 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
6 CoreFoundation 0x1a03969f8 __CFRunLoopDoSource0 + 172
7 CoreFoundation 0x1a0396764 __CFRunLoopDoSources0 + 232
8 CoreFoundation 0x1a03953b8 __CFRunLoopRun + 840
9 CoreFoundation 0x1a03949e8 CFRunLoopRunSpecific + 572
10 AE 0x1a7dbc108 0x1a7d80000 + 246024
11 AE 0x1a7d988fc AESendMessage + 4724
12 ScriptingBridge 0x1ecb652ac -[SBAppContext sendEvent:error:] + 80
13 ScriptingBridge 0x1ecb5eb4c -[SBObject sendEvent:id:keys:values:count:] + 216
14 ScriptingBridge 0x1ecb6890c -[SBCommandThunk invoke:] + 376
15 CoreFoundation 0x1a037594c ___forwarding___ + 956
16 CoreFoundation 0x1a03754d0 _CF_forwarding_prep_0 + 96
17 RRD 0x1027fca18 -[AppleScriptHelper runAppleScript:withSubstitutionValues:usingSBApp:] + 1036