Post

Replies

Boosts

Views

Activity

Loading object on NSItemProvider is delayed until drop exit
I have drag-and-drop functionality in the macOS app built with SwiftUI. Since macOS 15 there is an issue with it, because as I found out, the completion block of loadObject method on NSItemProvider is not called until dropExited delegate method is called (see simplified code example below). It causes very strange behavior in my app, for one of the most important features, and I am looking for a way to fix it as soon as possible. Is anyone seeing the same issue? I saw there was a bug with drag and drop on iOS 18, which seems to be fixed in 18.1. Anyone from Apple can say anything about this change in behaviour? @Observable // Because it is injected via environment. final class DragAndDropDelegate<T: Codable>: DropDelegate { func dropEntered(info: DropInfo) { // Is called as expected. guard let itemProvider = info.itemProviders(for: [UTType.data]).first else { return } itemProvider.loadObject(ofClass: DraggableObject<T>.self) { [weak self] (object, error) in // This is only called after dropExited delegate method is called !!! // Before macOS 15.0 it is called quickly after the loadObject method invokation. asyncOnMainThread { guard let self, let draggableObject = object as? DraggableObject<T> else { return } self.onEnter?(draggableObject.object, info.location) } } } func dropExited(info: DropInfo) { // Is called as expected. } }
4
0
162
3w
CloudKit error: Client went away before operation XXXXXX could be validated; failing
All of a sudden my app started getting this CloudKit error, and it happens to a lot of users. I had no changes to cloud sync for months and really surprised by seeing this. What confuses me even more, is that there is no information on the web about this kind of error. I have no idea what causes it and how to solve it. Would love to get any feedback from the CloudKit engineer. Client went away before operation 27761871408C460A could be validated; failing { "NSUnderlyingError": "<CKUnderlyingError 0x600002573f30: \"ClientInternalError\" (2005); \"Client went away before operation 27761871408C460A could be validated; failing\">", "CKErrorDescription": "Client went away before operation 27761871408C460A could be validated; failing", "NSDebugDescription": "CKInternalErrorDomain: 2005", "NSLocalizedDescription": "Client went away before operation 27761871408C460A could be validated; failing" } Seems to happen only on macOS.
2
0
375
Sep ’24
Install non-sandboxed Helper app from sandboxed Main app
Hi, I developed a utility app that allows monitoring system activity and usage. It is a sandboxed app distributed via the Mac App Store. Because in the sandbox I cannot fetch enough data about system activity (like processor temperature, fans, etc.), I developed a little Helper app (non-sandboxed), which currently is distributed via my website, and to enable extra features it provides, the user is asked to download and install it manually (it installs itself as a daemon). I'm looking for ways to improve the user experience. Ideally, it would be a button inside the main app, which would download and install the helper app, without asking the user to do more than pressing a button. As far as I understand, in the previous versions of macOS, it would be possible with privileged helpers and SMJobBless, but those are deprecated APIs now. Another way I tried, is simply downloading the installer app from the website, but opening it programmatically from the main app is tricky since it cannot remove it from the quarantine, in other words, it fails with "operation not permitted". Any advice is appreciated!
4
0
357
Sep ’24
Helper app is not relaunched after main app is updated from the Mac App Store
I have a macOS app that embeds a helper app in its bundle. That helper app is started by the main app, and from then on it runs independently. I noticed that after updating the main app from the Mac App Store, while the helper app is running, it is not auto-restarted, unlike the main app. What is the correct way to handle this? The main app's bundle looks like this: Main.app - Contents - MacOS - Main - Helper.app
9
0
509
Sep ’24
Embedded helper app fails to launch
I recently changed the architecture of my app by moving some of the logic into a helper app, which is embedded together with the main app. The main app's bundle looks like this: Main.app - Contents - MacOS - Main - Helper.app It all works fine during development, and I could successfully archive and notarize it. However, when I try to launch the notarized version of the helper app, it fails with the signing issues. failed to fetch Main.app/Contents/MacOS/Helper.app/Contents/_CodeSignature/CodeRequirements-1 error=-10 I have tried a few things, but could not find any working solution. Any help is appreciated!
1
0
525
Sep ’24
IPC within app group
Hi folks, I'm trying to build communication between the main app and its helper via inter-process communication. I found here that it is possible if the apps are in the same app group. But I really cannot make it work, and cannot understand what I do wrong. It works all good if I add com.apple.security.temporary-exception.mach-lookup.global-name entitlement, so the setup seems to be correct? Where should I look to fix it? Also because having that entitlement means that it is gonna be tricky to get through the App Review.
4
0
1.2k
Sep ’21
Install a helper tool for the Mac App Store distributed app
I have an app that is distributed through the Mac App Store, and so is sandboxed. I need to fetch processor temperature, so some of its new features function correctly. Since fetching temperature is not possible in a sandboxed app, I was looking for a workaround. One idea that I'm investigating right now is having a helper app, which would not be sandboxed, be distributed separately, but be installed from the main app as a helper tool. Is that possible? Is that gonna pass the App Store review?
3
0
1.5k
Sep ’21