When you have multiple Apps on the Mac which all provide Quicklook extensions for the same file type, then I would assume that if I activate one of these Quicklook extensions in the system settings, this one would be used.
But this doesn't seem to be the case.
It looks like the macOS just looks the very first extension it can find for a certain file type, and if this Quicklook extension is switched off, the file can not be previewed anymore. The macOS just doesn't bother to look for the other existing quicklook extension for this file, even if this other is enabled.
The only option right now to get this other extension to be used by the system would be to completely delete the first App, so its extension is deleted as well.
Is this really the way how it is supposed to work? How can this be fixed? Can I tell my users something else than "just delete the other App"?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
I have a SwiftUI app displaying tabbed windows (as NSWindowTab) in a WindowGroup:
import SwiftUI
@main
struct TabTestApp: App {
var body: some Scene {
WindowGroup{
ContentView() // Hasn't any content of relevance to this question.
}.commands{
CommandGroup(after: .newItem) {
Button("New Tab") {
guard let currentWindow = NSApp.keyWindow, let windowController = currentWindow.windowController else { return }
windowController.newWindowForTab(nil)
guard let newWindow = NSApp.keyWindow else { return }
if currentWindow != newWindow {
currentWindow.addTabbedWindow(newWindow, ordered: .above)
}
}.keyboardShortcut(.init("t", modifiers: [.command]))
}
}
}
}
Is there a way to detect the closing of one or multiple tabs, e.g. when the user clicks on the tab bar's "Close Other Tabs" option or pushes CMD + W in order to ask the user whether he or she wants to save changes?
What I've tried to no avail:
Intercept windowWillClose👉Won't be called if a single tab within a window is closed (but only once the last tab of a window is closed).
Handling onDissapear()👉Doesn't work since the closing cannot be cancelled.
Using DocumentGroup 👉Doesn't work since the app in question isn't about documents (i.e., files which are stored externally), but about data that's stored in a database.
Many thanks!
Related threads:
Preserve all tabs of last window on close. (Like Finder)
Detect Close Window vs Close Tab
Hello,
I recently submitted my Swift Student Challenge app playground (“Crest”) and realized after submission that I accidentally selected Swift Playgrounds as the software to run it, instead of Xcode 26 or later.
My project builds and runs successfully in Xcode 26 using the iOS 26 SDK and simulator. However, when opening the same .swiftpm project in the Swift Playgrounds app on iPad, it does not compile because Swift Playgrounds currently only supports up to iOS 18 SDK and does not support iOS 26 APIs.
The submission itself is complete, builds correctly in Xcode, and was submitted before the deadline. The incorrect selection of Swift Playgrounds was an honest mistake during the submission process.
I wanted to ask whether reviewers are able to run the submission using Xcode 26 in cases like this, or if there is anything I should do.
Thank you very much for your time.
Hello,
I recently submitted my Swift Student Challenge app playground and realized after submission that I accidentally selected Swift Playgrounds as the software to run it, instead of Xcode 26 or later.
My project builds and runs successfully in Xcode 26 using the iOS 26 SDK and simulator. However, when opening the same .swiftpm project in the Swift Playgrounds app on iPad, it does not compile because Swift Playgrounds currently only supports up to iOS 18 SDK and does not support iOS 26 APIs.
The submission itself is complete, builds correctly in Xcode, and was submitted before the deadline. The incorrect selection of Swift Playgrounds was an honest mistake during the submission process.
I wanted to ask whether reviewers are able to run the submission using Xcode 26 in cases like this, or if there is anything I should do.
Thank you very much for your time.
Topic:
Community
SubTopic:
Swift Student Challenge
For apps, I can select a base price and region (currency) so that prices for other regions adapt automatically, but for app packages I can only set a base price in USD. I just noticed that my app package wasn't visible on the App Store anymore because of an automatic price change which caused its price in USD to become invalid (too low), as it was below the highest app price within the package.
Is it intended that I have to monitor price changes and manually correct prices for app packages?
I created FB22093289.
Hey,
I've noticed that in some scenarios photo data can be corrupted from the cameras on iPhone 17 Pro. The requirements are:
The zoom level is greater than 2 times the base zoom, so 2x for the wide lens, and 8x for the telephoto.
QualityPrioritization is set to .Quality. If set to .Balanced the images look as expected.
The scene is well lit. I haven't managed to work out if there's an ISO cut off, but in darker scenes the images look as expected.
The scene does not contain any objects or texture, e.g. a blank white screen, a blue sky, up close against a bright wall.
Here is an example:
This is really weird behavior. I have opened a ticket here: https://feedbackassistant.apple.com/feedback/22092908
There's also a repo here if anyone would like to try it:
https://github.com/alexfoxy/CameraQualityTest.
Thanks,
Alex
I have migrated my code to use SMAppService but am running into trouble deleting the old SMJobBless launchd registration using launchd remove. I am invoking this from a root shell when I detect the daemon and associated plist still exist, then also deleting those files.
The remove seems to work (i.e. no errors returned) but launchd list shows the service is registered, with a status code of 28
I am using the same label for SMAppService as previously and suspect this is the reason for the problem. However, I am reluctant to change the label as there will a lot of code changes to do this.
If I quit my application, disable the background job in System Settings and run sudo launchd remove in the Terminal then it is removed and my application runs as expected once the background job is re-enabled. Alternatively, a reboot seems to get things going.
Any suggestions on to how I could do this more effectively welcome.
Topic:
App & System Services
SubTopic:
Processes & Concurrency
In Xcode 26.3 and 26.4, when I use Xcode's built-in git functionality to do a "pull" or "fetch", Xcode presents a dialog saying it's performing the operation, but it never completes. The dialog remains on screen with a spinner.
My remote repos are stored on a Mac mini on my local network and I access them via SSH. The git command line works fine, as does the tool Git Tower.
I've filed this as FB22091014.
Has anyone else seen this, and if so, found a solution?
Since purchasing my 17 Pro, CarPlay has been an abysmal failure. I’m happy to say since installing 26.4 developer beta, it seems to be working much better.
I'm losing it. I am on the public beta for Tahoe, downloaded most current update yesterday morning, 26.4. Chrome and Firefox aren't loading, and Mac mail isn't working right. Safari seems to be totally fine. I've done all types of troubleshooting, going crazy. Anyone else had issues with this update? It's almost like the connectivity got all screwed up.
Topic:
App & System Services
SubTopic:
Core OS
Hello,
I am trying to enroll in the Apple Developer Program, but I cannot complete the payment.
During the purchase process, I receive the following error:
We are unable to complete your order.
There was an issue when we processed your order.
An invalid value '1549' was provided for State, Province, or Region.
My details:
Country: Kosovo
State/Province/Region: Kosovo Region (selected from the available option)
I have verified my information multiple times, but the error appears every time.
I have contacted Apple Developer Support multiple times over the past month.I have not received any response (positive or negative).
I need to complete enrollment to publish my apps, and this delay is blocking my work.
After exerting a custom model with nms=True.
In Xcode, the outputs show as:
confidence: MultiArray (0 × 5)
coordinates: MultiArray (0 × 4)
I want to set fixed shapes (e.g., 100 × 5, 100 × 4), but Xcode does not allow editing—the shape fields are locked. The model graph shows both outputs come directly from a NonMaximumSuppression layer.
Is it possible to set fixed output dimensions for NMS outputs in CoreML?
It seems like every time an IOS update is installed, the camera app file formats get reset to defaults. This setting is not available to manage at the MDM level. Many people need the the most compatible settings for the purpose of file sharing. So, now we have nearly 1,000 devices with a complete mix of photo and video formats. And IT has wasted MANY hours converting files for people.
Feature Request: Please either stop resetting the camera app file formats or allow us to manage those settings at the MDM level.
Respectfully,
Robert
I’m looking for advice from anyone who has gone through the process of converting an Apple Developer account to an Organization / Company account.
I’ve been trying to convert my account for organization and the process has been taking much longer than expected. Apple initially requested documentation to verify both the business and my authority to act on behalf of the company.
So far, I have already provided or prepared everything they ask for.
At this point, I’ve been waiting for 9 days without much clarity on whether my documents are sufficient
Le build iOS via EAS échoue systématiquement lors de la phase Xcode. Bien que les capacités Family Controls et App Groups soient activées sur le portail Apple Developer et configurées dans le app.json, les profils de provisionnement générés par EAS sont rejetés par Xcode car ils ne contiendraient pas les droits nécessaires.
Configuration du projet :
Targets (4) : App principale + 3 extensions (ShieldConfiguration, ShieldAction, ActivityMonitorExtension).
Capabilities requises : Family Controls (Development), App Groups.
EAS CLI Version : 18.0.6 (et versions antérieures testées).
Erreur Xcode récurrente :
error: Provisioning profile "[expo] com.*****.*** AdHoc 177230..." doesn't support the Family Controls (Development) capability..
error: Provisioning profile "... AdHoc ..." doesn't include the com.apple.developer.family-controls entitlement..
Ce qui a déjà été tenté (sans succès) :
Configuration app.json : Ajout manuel des entitlements pour le bundle principal et configuration du plugin react-native-device-activity.
Nettoyage Credentials : Suppression totale des profils et des identifiants sur le site Expo.dev ET sur le portail Apple Developer.
+1
Forçage Sync : Utilisation de eas build --clear-cache et réponse "No" à la réutilisation des profils existants.
Observation étrange : Le terminal indique souvent ✔ Synced capabilities: No updates, alors que les droits viennent d'être modifiés sur le portail Apple. Sur le portail Apple, les profils affichent pourtant bien "Family Controls (Development)" dans les capacités activées.
Je met en piece jointe un des profiles.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
I’m building an iOS app where real money moves based on goal completion results, including transfers between users.
I need a real money flow that supports top ups, internal balance updates, and withdrawals.
I’m launching in the EU first and want to avoid building the wrong architecture from the start.
I’d appreciate practical guidance from anyone who has shipped similar apps:
When can external payment processors be used for real money flows?
If users can withdraw real money, what compliance requirements are usually needed first?
Is it as complicated as I think? This is my first project of this kind, so I want to approach it correctly.
Thank you in advance.
Topic:
Community
SubTopic:
Apple Developers
In my CarPlaySceneDelegate.swift, I have two tabs:
The first tab uses a CPListImageRowItem with a CPListImageRowItemRowElement. The scroll direction is inverted, and the side button does not function correctly.
The second tab uses multiple CPListItem objects. There are no issues: scrolling works in the correct direction, and the side button behaves as expected.
Steps To Reproduce
Launch the app.
Connect to CarPlay.
In the first tab, scroll up and down, then use the side button to navigate.
In the second tab, scroll up and down, then use the side button to navigate.
As observed, the scrolling behavior is different between the two tabs.
Code Example:
import CarPlay
import UIKit
class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate {
var interfaceController: CPInterfaceController?
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didConnect interfaceController: CPInterfaceController
) {
self.interfaceController = interfaceController
downloadImageAndSetupTemplates()
}
func templateApplicationScene(
_ templateApplicationScene: CPTemplateApplicationScene,
didDisconnectInterfaceController interfaceController: CPInterfaceController
) {
self.interfaceController = nil
}
private func downloadImageAndSetupTemplates() {
let urlString = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRcYUjd1FYkF04-8Vb7PKI1mGoF2quLPHKjvnR7V4ReZR8UjW-0NJ_kC7q13eISZGoTCLHaDPVbOthhH9QNq-YA0uuSUjfAoB3PPs1aXQ&s=10"
guard let url = URL(string: urlString) else {
setupTemplates(with: UIImage(systemName: "photo")!)
return
}
URLSession.shared.dataTask(with: url) { [weak self] data, _, _ in
let image: UIImage
if let data = data, let downloaded = UIImage(data: data) {
image = downloaded
} else {
image = UIImage(systemName: "photo")!
}
DispatchQueue.main.async {
self?.setupTemplates(with: image)
}
}.resume()
}
private func setupTemplates(with image: UIImage) {
// Tab 1 : un seul CPListImageRowItem avec 12 CPListImageRowItemRowElement
let elements: [CPListImageRowItemRowElement] = (1...12).map { index in
CPListImageRowItemRowElement(image: image, title: "test \(index)", subtitle: nil)
}
let rowItem = CPListImageRowItem(text: "Images", elements: elements, allowsMultipleLines: true)
rowItem.listImageRowHandler = { item, elementIndex, completion in
print("tapped element \(elementIndex)")
completion()
}
let tab1Section = CPListSection(items: [rowItem])
let tab1Template = CPListTemplate(title: "CPListImageRowItemRowElement", sections: [tab1Section])
// Tab 2 : 12 CPListItem simples
let tab2Items: [CPListItem] = (1...12).map { index in
let item = CPListItem(text: "Item \(index)", detailText: "Detail \(index)")
item.handler = { _, completion in
print("handler Tab 2")
completion()
}
return item
}
let tab2Section = CPListSection(items: tab2Items)
let tab2Template = CPListTemplate(title: "CPListItem", sections: [tab2Section])
// CPTabBarTemplate avec les deux tabs
let tabBar = CPTabBarTemplate(templates: [tab1Template, tab2Template])
interfaceController?.setRootTemplate(tabBar, animated: true)
}
}
Here is a quick video:
We are facing an issue where our App Clip card appears when scanning the QR code, but displays “App Clip Unavailable” even though the main app is already live on the App Store.
App Details
• App Name: ExpRE – Experiencing Reality
• Main App Bundle ID: com.livingmedia.adplayer
• App Clip Bundle ID: com.livingmedia.adplayer.Clip
• Apple ID: 6758887250
• Team ID: 9NU8HZB68A
Current Status:
• Main app status: Ready for Distribution (visible on App Store)
• App Clip Advanced Experience status: Received
• App Clip Experience URL: https://aaj-tak-test-app.web.app
Issue Description
When scanning the QR code linked to the App Clip
Experience:
• The App Clip card with image appears
• But the card shows the message:
“App Clip Unavailable”
Additional Observations
• The default App Clip link opens correctly:
https://appclip.apple.com/id?p=com.livingmedia.adplayer.Clip
• Advanced App Clip Experience status still shows “Received”.
• Also if there is testflight build then clip card work.
But fresh install with QR with link show App clip Unavailable in card.
Question
Is there an additional propagation or approval step required after the status becomes Received for Advanced App Clip Experiences?
How long does it typically take for the App Clip to become publicly available after the main app is released?
In iphone developer I checked with Diagnostics in App clip testing.
I'm trying to understand the terminology around forward vs backward references in CloudKit.
Say I have two record types:
User
LeaderboardScore (a score belongs to a user)
The score record stores a user reference:
score["user"] = CKRecord.Reference(
recordID: userRecordID,
action: .deleteSelf
)
So:
LeaderboardScore → User
The user record does not store any references to scores
From a data-model perspective:
Is this considered a forward reference (child → parent)?
Or a back reference, since the score is "pointing back" to its owner?
My use case is having leaderboard in my app and so i have created a user table to store all the users and a score table for saving the scores of each user of the app.
Hi!
My users have reported (and I have observed) a blank Live Activity where only a black capsule is shown in the dynamic island. When tapping that capsule, the app opens, but inside the capsule, nothing is shown. The Live Activity is created through the AlarmKit API like this:
let identifier = UUID()
Task {
do {
_ = try await AlarmManager.shared.schedule(
id: identifier,
configuration: .init(
countdownDuration: countdownDuration,
attributes: attributes,
stopIntent: CancelTimerIntent(),
secondaryIntent: RestartTimerIntent(),
sound: Settings.shared.systemAlarmToneEnabled ? .default : .named(Settings.shared.alarmTone[.loop].filename)
)
)
Log.debug("Alarm scheduled successfully: \(identifier.uuidString)")
} catch {
Log.error("Error scheduling alarm with id \(identifier.uuidString), error: \(error)")
}
}
I've read some other forum posts where developers reported the same issue:
https://developer.apple.com/forums/thread/807335
https://developer.apple.com/forums/thread/812006
I assume, it has something to do with state management. However, in my case, this only happens very rarely. I use the app on a daily basis and the issue with the blank live activity only occurs like once a month, so I cannot reproduce it.
I also have some logic to resume an existing alarm or snooze:
do {
for alarm in try AlarmManager.shared.alarms {
switch alarm.state {
case .paused:
try AlarmManager.shared.resume(id: alarm.id)
case .alerting:
try AlarmManager.shared.countdown(id: alarm.id)
default:
break
}
}
} catch {
Log.error("Error resuming alarm: \(error)")
}
Is there any way I can debug this issue properly?
I have checked the Device Logs and the Console in Xcode and didn't find any hints. Only one log made me a little suspicious, but I read that this might happen occasionally and may be ignored:
Couldn't read values in CFPrefsPlistSource<0x10ae0d080> (Domain: group.myappgroupidentifier User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
Any ideas on how I could proceed to find the cause of this empty (apparently crashed) Live Activity?
Topic:
App & System Services
SubTopic:
Widgets & Live Activities