Posts under App & System Services topic

Post

Replies

Boosts

Views

Activity

New features for APNs token authentication now available
Team-scoped keys introduce the ability to restrict your token authentication keys to either development or production environments. Topic-specific keys in addition to environment isolation allow you to associate each key with a specific Bundle ID streamlining key management. For detailed instructions on accessing these features, read our updated documentation on establishing a token-based connection to APNs.
0
0
3.6k
Feb ’25
Meet State Reporting and the new MetricKit
Hello developers! Thank you for your dedication to creating apps with great performance. We’re excited to kick off another year of partnering with you on improving power and performance in your apps. At WWDC26, check out the following new things in the latest platform SDKs and Xcode 27 beta for performance. You can also join us online for a Power and Performance Group Lab on Tuesday, June 9 at 11 AM Pacific. Meet State Reporting and the new MetricKit State reporting: The new StateReporting framework lets your application express its state to downstream tools like Instruments and MetricKit. Make your telemetry and traces much more useful by adopting this simple API. MetricKit: In the 27 releases, the Swift-first MetricManager API replaces the MXMetricManager API. Combined with State Reporting, the new MetricKit provides more granular metrics to isolate performance problems faster. It also provides a more expressive API that is great to use in Swift, with improved Swift concurrency and Codable support. With this year’s releases, the MXMetricManager API is considered legacy. ▶️ To learn more, watch Meet the new MetricKit. Discover new features in Xcode organizer Metric goals: Xcode organizer now provides a goal metric for Battery Usage, Disk Writes, Hang Rate, Hitches, Memory, and Storage metrics, allowing you to prioritize performance engineering across more areas. Generate recommendations: Quickly resolve the highest impact performance issues in your app by using Generate Recommendations for Crash, Energy, Disk Write, Hang and Launch diagnostics. Insights overview: The new insights overview in Xcode organizer summarizes high-impact performance regressions for metrics and diagnostic reports, helping you plan and prioritize performance engineering work. Storage metrics: Storage metrics are now available in Xcode organizer, allowing you to monitor your app's Documents & Data and App Size across releases and catch regressions in cache usage and bundle size. Hitches metric: The new Hitches metric replaces the Scrolling metric in the organizer and now displays hitches for all animations in your app, giving you a comprehensive view of animation performance. ▶️ To learn more about other advancements in Xcode, watch What’s new in Xcode 27. Improve app responsiveness with Instruments Foundation Models: The Foundation Models instrument is redesigned with a tree view that lets you drill into individual requests, inspecting tool call arguments and results, inference prompts and responses, and token statistics. Use it to understand caching behavior, measure latency, and optimize throughput. System Trace: System calls, VM faults, and thread states are now unified into a single plot, with a new blending algorithm that stays readable even at high density. Once you spot something worth investigating, left/right key navigation lets you follow a thread's activity step by step, and the inspector provides quick actions like pinning the thread that made another thread runnable. System Trace now also draws thread priority and QoS over time, making it easier to identify priority inversions and unexpected QoS degradations that affect responsiveness. Swift Concurrency: New Main Actor and Global Concurrent Executor tracks let you visualize running tasks and executor queue depth over time, making it easier to spot task scheduling delays and actor contention. Tasks are now grouped into collections for faster navigation. Swift Tasks, Actors, and Executors instruments can now surface Call Trees, Flame Graphs, and Top Functions scoped to each entity — so you can pinpoint exactly where concurrency overhead lives. Top Functions: Helper functions and runtime internals can be expensive but hard to spot in a standard call tree. The new aggregation mode in Top Functions surfaces any function's total execution time across the entire call stack, making it easy to identify and prioritize hidden hotspots. Run Comparison: Compare call tree data across builds to identify regressions and performance wins. Results can be explored as an outline, flame graph, or top functions — choose whichever view best fits your workflow. ▶️ To learn more about profiling your app with Instruments, watch “Profile, fix, and verify: Improve app responsiveness with Instruments” ▶️ To learn about Foundation Models optimization, watch “Debug and profile agentic app experiences with Instruments”. If you have any questions about using State Reporting or the new MetricKit, create a post on the forums. For help creating a post, see Tips on writing a forum posts.
0
0
1.2k
Jun ’26
How does the Health app reconcile overlapping sleep samples written to HealthKit?
I'm trying to understand the exact rules the Health app uses to reconcile (deduplicate/merge/discard) overlapping sleep samples, and I'm hoping an Apple engineer can clarify the behavior. Background: My Apple Watch wrote sleep samples to HealthKit twice within the same day, and the two writes overlap substantially: Same stage, overlapping in time — e.g., two "Core" sleep samples that overlap each other in time. Different stages, overlapping in time — e.g., Deep and Core overlap, and Core and REM (Rapid Eye Movement) also overlap. Observation: Even though the raw samples contain these overlaps, the Health app ultimately displays non-overlapping data (i.e., it has reconciled the overlaps somehow). I'm confused about the exact reconciliation rules the Health app applies to such overlapping data. To make the problem clearer, I've visualized the raw HealthKit samples. In the attached chart, you can see the same stage was written multiple times at different timestamps, shown in chronological order. However, the data ultimately displayed by the Health app differs significantly from the raw data — samples appear to have been reconciled, dropped, and merged in various ways. Question: What are the detailed rules the Health app uses to reconcile overlapping sleep samples? Specifically: When samples of the same stage overlap in time, how is the overlap resolved? When samples of different stages overlap in time, which stage takes precedence, and how are the boundaries adjusted? Are samples merged, truncated, or discarded entirely? Under what conditions? Any clarification from the HealthKit team would be greatly appreciated. Appendix 1 — Raw data visualization. All sleep samples as shown in the Health app (source: the complete sleep dataset in the Health app). Appendix 2 — Final presentation. How the Health app presents the data after reconciling the raw samples. Note — Comparing Appendix 2 with Appendix 1, the following differences are clearly visible: 1.A portion of Deep sleep was discarded. 2.Four awake segments were discarded. 3.Multiple REM segments were also discarded. 4.Core sleep was partially merged.
0
0
5
46m
AccessorySetupKit + CBCentralManager migration & scanning regression after accessory picker authorization
Hello everyone: Description Environment iOS: 26.5 Xcode: 26.3 App version: 1.0 / 2.0 Scenario background App communicates with unpaired Bluetooth peripherals. App v1.0: Use only CBCentralManager for scanning and connecting peripherals(D2, D3…). No AccessorySetupKit involved. App v2.0: Hybrid approach: ASAccessorySession + CBCentralManager. CBCentralManager is initialized after ASAccessorySession becomes active. Info.plist configuration <key>NSAccessorySetupKitSupports</key> <array> <string>Bluetooth</string> </array> <key>NSAccessorySetupBluetoothServices</key> <array> <string>xxxx</string> </array> <key>NSAccessorySetupBluetoothNames</key> <array> <string>MyDevice</string> </array> Observed test behavior For users upgrading from v1.0 to v2.0: ASAccessorySession.accessories returns empty. Old CBCentralManager instance(C1) works fine: can scan and connect peripherals D1, D2, D3. Calling showPicker() while C1 is alive throws error: Error Domain=ASErrorDomain Code=550 Destroy C1 before invoking showPicker(). After user authorizes new accessory D1 via picker, create a brand‑new CBCentralManager instance(C2). Regression: C2 can only scan & communicate with authorized D1. Peripherals D2, D3 can no longer be discovered. Questions In v1.0 we stored CBPeripheral.identifier for unpaired devices D2, D3. How to implement seamless migration after upgrading to v2.0? After user authorizes D1 in v2.0, is there a callback trigger when D2 / D3 come into proximity? Can we auto‑launch showPicker() on that trigger? AccessorySetupKit workflow feels restrictive. Is multi‑device one‑tap authorization planned for peripherals like D2, D3 which may not be nearby at authorization time?
2
0
45
3h
WeatherKit REST returns 401 NOT_ENABLED with valid JWT (capability enabled, key recreated)
Hey Everyone, I am looking for some help as I am completely lost in what to do, maybe I am missing something simple, but, our server-side WeatherKit REST integration has returned 401 on every request for several weeks, and the evidence points to service enablement on Apple's side rather than our configuration. Details: The 401 response body is {"reason": "NOT_ENABLED"}, per the documentation this indicates the WeatherKit service is not enabled for the App ID, not a malformed token. Deliberately corrupting the JWT produces a different rejection, which we can reproduce at will, so token validation is clearly passing. The JWT is structurally correct: header {alg, kid, id: "TEAM.BUNDLE"}, payload {iss: TEAM, sub: BUNDLE}. The same Team ID and signing flow produce a working MapKit JS token in production today. In Certificates, Identifiers & Profiles, the WeatherKit capability is checked for the App ID under both App Services and Capabilities, and has been for weeks. We have since minted a brand-new key (new .p8, re-encoded and verified) and the result is unchanged. Bundle ID: run.tayro.app. The failure is identical from our production servers and from curl. Developer Support declined to escalate twice, saying this is outside their scope so I'm posting here for help :) . Has anyone seen NOT_ENABLED persist despite the portal showing the capability enabled? And long shot but... maybe someone from the WeatherKit team can check the service enablement state for this App ID? or point me at the right channel to request that?
0
0
11
5h
Intermittent missing historical step counts from HKStatisticsCollectionQuery on iOS 27 beta
Hello, We received a customer report about intermittent missing historical step-count data when using HKStatisticsCollectionQuery on iOS 27 beta. When the query was executed on August 16, only the most recent two days—August 16 and August 15—returned correct step counts. Earlier dates returned nil from sumQuantity() and were consequently treated as zero. However, queries executed on August 14 and August 18 returned the expected data. Therefore, the problem appears to be intermittent rather than consistently reproducible. The customer confirmed that all affected historical step counts were visible in the Apple Health app, including the dates returned as zero by our query. We have not received the same type of customer report from devices running iOS 26 or earlier. Here is a simplified version of our query: guard let stepType = HKObjectType.quantityType( forIdentifier: .stepCount ) else { return } var calendar = Calendar(identifier: .gregorian) calendar.timeZone = TimeZone(identifier: "Asia/Seoul")! let queryStartDate = calendar.startOfDay(for: parsedStartDate) let tomorrow = calendar.date(byAdding: .day, value: 1, to: Date())! let queryEndDate = calendar.startOfDay(for: tomorrow) let datePredicate = HKQuery.predicateForSamples( withStart: queryStartDate, end: queryEndDate, options: .strictStartDate ) let nonUserEnteredPredicate = HKQuery.predicateForObjects( withMetadataKey: HKMetadataKeyWasUserEntered, operatorType: .notEqualTo, value: NSNumber(value: true) ) let predicate = NSCompoundPredicate( andPredicateWithSubpredicates: [ datePredicate, nonUserEnteredPredicate ] ) let anchorDate = calendar.startOfDay(for: Date()) var interval = DateComponents() interval.day = 1 let query = HKStatisticsCollectionQuery( quantityType: stepType, quantitySamplePredicate: predicate, options: .cumulativeSum, anchorDate: anchorDate, intervalComponents: interval ) query.initialResultsHandler = { _, results, error in guard let results, error == nil else { print("Query error: \(String(describing: error))") return } results.enumerateStatistics( from: queryStartDate, to: queryEndDate ) { statistics, _ in let steps = statistics .sumQuantity()? .doubleValue(for: .count()) ?? 0 print(statistics.startDate, statistics.endDate, steps) } } healthStore.execute(query) Observed behavior Query executed on August 14: historical step counts returned correctly Query executed on August 16: August 16 and August 15 returned correctly August 14 and earlier returned nil from sumQuantity() Query executed on August 18: historical step counts returned correctly again No query error was reported All step counts remained visible in the customer's Apple Health app Expected behavior The query should consistently return cumulative daily step counts when matching HealthKit samples exist and are visible in the Health app. Because this was reported through customer support, we do not currently know the exact iOS 27 beta build number. We are also unable to reproduce it consistently on our own test devices. Questions Is there a known intermittent issue with historical .stepCount queries on iOS 27 beta? Can HealthKit temporarily return incomplete statistics while data is being indexed, synchronized, or migrated? Is there a recommended way to detect that the returned statistics are temporarily incomplete? Should applications retry the query when older statistics unexpectedly return nil without an error? We have not received reports of this behavior from customers using iOS 26 or earlier. Thank you.
1
0
36
5h
MapKit JS quota limit architecture decision
Hello, I have a question similar to this post regarding MapKit JS quota limits. I understand that we can request rate limit increases, but it is not a guaranteed increase. My app is rapidly growing. What if Apple decides to not award the limit increase? Then, the directions service of my app will stop working, which would be catastrophic for my company. I need to know if the rate limit increases are guaranteed. I need to decide early on whether to use MapKit JS or another service on, because the more time that passes, the more entangled my code will get with MapKit JS. Can we get some more information on this?
5
1
508
8h
Apps do not trigger pop-up asking for permission to access local network on macOS Sequoia/Tahoe
We are having an issue with the Local Network permission pop-up not getting triggered for our apps that need to communicate with devices via local network interfaces/addresses. As we understand, apps using UDP should trigger this, causing macOS to prompt for access, or, if denied, fail to connect. However, we are facing issues with macOS not prompting this popup at all. Here are important and related points: Our application is packaged as a .app package and distributed independently (not on the App Store). The application controls hardware that we manufacture. In order to find the hardware on the network, we send a UDP broadcast with a message for our hardware on the local network, and the hardware responds with a message back. However, the popup (to ask for permission) never shows up. The application is not able to find the hardware device. It is interesting to note that data is still sent out to the network (without the popup) but we receive back the wrong data. The behaviour is consistent macOS Sequoia (and above) with both Apple And Intel silicon. Workarounds that have been tried: Manual Authorization: One solution suggested in various blogs was to go to "Settings → Privacy and Security-> Local network", find your application and grant access. However, the application never shows up in the list here. Firewall: No difference is seen in behaviour with firewall being ON OR OFF. Setting NSLocalNetworkUsageDescription: We have also tried setting the Info.plist adding the NSLocalNetworkUsageDescription with a meaningful string and updating the NSBonjourServices. Running Via terminal (WORKS): Running the application via terminal sees no issues. The application runs correctly and is able to send UDP and receive correct data (and find the devices on the network). But this is not an appropriate solution. How can we get this bug/issue fixed in macOS Sequoia (and above)? Are there any other solutions/workarounds that we can try on our end?
15
1
1.6k
8h
iOS 26.6: “When App Is Closed” automation fires when opening Control Center / Notification Center
After updating to iOS 26.6 I noticed a regression in Shortcuts automations. I created two simple automations: When App Is Opened → Show Notification “OPEN” When App Is Closed → Show Notification “CLOSE” Steps: Open Safari (or any app). Open Control Center or Notification Center. Actual result: “CLOSE” is triggered immediately. Dismissing Control Center or Notification Center does not trigger “OPEN”. Expected: Opening system overlays should not generate an App Closed event because the foreground application remains active. Device: iPhone 13 mini iOS: 26.6 Can anyone else reproduce this?
1
1
239
8h
How to change the business company?
Hello Apple Team, I have my account, which I wanted to use for development. In the past I successfully submitted an app, and it even won a red dot award, then I didn't code for while for Apple Eco-System mostly for web. Now I wanted to submit another app. I wanted to change my business name first, but that was not possible until I renewed my membership. After I renewed the membership, and paid 99 EUR, the employee told me, I need to register again, and pay another 99 EUR. I don't understand, is it possible to just change the business name? Will I get a refund? 99 EUR is not nothing for me (just to be able to develop an app). Happy to hear your feedback.
0
0
12
10h
DriverKit entitlement eligibility for independently supporting an EOL third-party USB audio device
I am developing an independent macOS compatibility driver for the Avid/Digidesign Eleven Rack, an EOL USB audio device that does not have an Apple-silicon-compatible OEM driver. The existing hardware identifies as: Vendor ID: 0x0DBA — Digidesign/Avid Product ID: 0xB011 — Eleven Rack Transport: USB 2.0 high-speed isochronous audio The proposed implementation uses AudioDriverKit and USBDriverKit. It consists of a DriverKit system extension packaged inside a macOS control application. The USB entitlement would be restricted to this exact VID/PID. I am an independent developer and do not own the Digidesign/Avid VID. I am not manufacturing hardware or attempting to use that VID for a new USB product. The driver would only match existing Eleven Rack devices. The implementation is independently written for interoperability, and no Avid executable code would be included. I currently have a working direct user-space USB proof of concept, but I cannot properly activate and test the AudioDriverKit extension with SIP enabled without the required entitlements. Before enrolling in the paid Apple Developer Program, I would appreciate clarification on the following: Does Apple consider DriverKit development and distribution entitlement requests from independent developers supporting existing EOL hardware when the developer does not own the device’s VID? Is written authorization from the VID owner always required, or are these requests evaluated individually? Would restricting the USB transport entitlement to the exact 0x0DBA:0xB011 device affect eligibility? Is there a way to obtain an initial eligibility determination before purchasing Apple Developer Program membership? The anticipated entitlements are: com.apple.developer.driverkit com.apple.developer.driverkit.family.audio com.apple.developer.driverkit.transport.usb com.apple.developer.system-extension.install for the host application Restricted user-client access between the host application and driver I understand that the forum cannot grant an entitlement. I am trying to determine the appropriate process and whether manufacturer authorization is a prerequisite before submitting a formal request.
1
0
21
10h
NSPersistentCloudKitContainer export blocked account-wide by failing _pcs_data RecordDelete (BAD_REQUEST)
Since ~July 10, NSPersistentCloudKitContainer export has failed on every device on my iCloud account; import still works. In CloudKit Console → Logs (Production), the only failing operations are RecordDelete/RecordSave of record type pcs_data (error BAD_REQUEST) in the private com.apple.coredata.cloudkit.zone. No CD* app-record failures; the app schema is fully deployed to Production. Advanced Data Protection is enabled on the account, so PCS keys are managed end-to-end on-device. This looks like a wedged PCS key state rather than an app/schema problem. Tried with no effect: toggling ADP off/on, toggling iCloud Keychain, multiple reboots, app reinstall, extended foreground on Wi-Fi. Still failing after updating from iOS 27 Seed 3 to beta 4. Is there a way to get the account's Protected Cloud Storage key state reset so export can resume? Happy to share the Feedback number and sysdiagnoses privately with an Apple engineer.
3
0
520
11h
App Icon Does Not Update to the Latest Default Icon on Some iOS Devices After App Update
Environment Platform: iOS iOS versions tested: : 26.5.2, 26.5 Xcode: 26.3 Language: Swift UI framework: SwiftUI App distribution: App Store Device models tested: : iPhone 17, iPhone 16, iPhone 15 pro max, iPhone 17 pro max Issue We are experiencing an issue where the app icon does not update to the latest app icon after an app update on some devices. Initially, our app used Apple's alternate app icon functionality through setAlternateIconName to dynamically change the app icon. However, we observed that the alternate icon was not being updated correctly on some devices. As it was not working , we removed the alternate icon approach and changed the primary/default app icon in the application itself. We then submitted an updated app version with the new default icon. After updating the app, the new app icon is displayed correctly on some devices, but on some other devices the previous/old app icon continues to be displayed, even though the app has been successfully updated to the latest version. The issue appears to be device-specific, as the same app version can display the new icon on one device while continuing to display the old icon on another device. Expected Behavior After installing an app update containing a new default app icon, the new app icon should be displayed on the Home Screen and in relevant system locations such as Shortcuts. Actual Behavior On some devices, after successfully updating the application to the new version, the old app icon continues to be displayed. The application itself is updated successfully and launches normally. The issue is specifically with the icon displayed by the system. Steps to Reproduce Install an older version of the application containing the old app icon. Update the application to a newer version where the default/primary app icon has been changed. Verify that the application has been updated to the latest version. Return to the Home Screen. Observe the application icon. If applicable, check the application icon in the Shortcuts interface. Expected: The new app icon is displayed. Actual: On some devices, the previous app icon is still displayed. Additional Observations We observed different behaviors on affected devices: On one affected device, the old icon remained after the app update but changed to the new icon after restarting the device. On another affected device, the icon changed to the new icon after some time without reinstalling the application. However, on that device, the old icon continued to be displayed in the Shortcuts interface even after the Home Screen icon had changed to the new icon. Reinstalling the application causes the new icon to appear correctly. These observations make the behavior appear to be related to how iOS refreshes or caches application icons after an app update. Additional Information We initially attempted to use Apple's alternate app icon functionality through setAlternateIconName. The alternate icon approach did not update the icon consistently across all tested devices. We therefore changed the application's default/primary icon instead of relying on alternate icons. The issue still occurs on some devices even after changing the default app icon. The application itself functions normally after the update; only the displayed app icon remains unchanged on the affected devices. The issue appears to occur specifically with updating an existing installation rather than installing the application for the first time. Questions Is there any known iOS behavior where the previous Home Screen icon can remain cached after an app update? Is there a recommended way to ensure that iOS refreshes the Home Screen icon after changing the default app icon? Could this behavior be related to the previous use of alternate app icons through setAlternateIconName? Why might the Home Screen icon update after a restart or after some time while the icon shown in Shortcuts continues to display the previous icon? Are there any specific requirements for CFBundleIcons, asset catalogs, Info.plist, or other configuration that we should verify when changing the primary app icon? Is this a known issue on any specific iOS versions or device configurations? We would appreciate any guidance on whether this is expected iOS behavior, an icon caching issue, or if there is something specific we should change in our application configuration.
1
0
69
11h
All Production RecordSaves rejected (BAD_REQUEST, _pcs_data) for every user of my container; Development works — FB24378074
My SwiftData app (NSPersistentCloudKitContainer mirroring, private database only) cannot save any record to its CloudKit Production environment, for any user. Development works flawlessly for the same devices, accounts, and code. Signature, from CloudKit Console Production logs: every RecordSave to zone com.apple.coredata.cloudkit.zone fails with overallStatus USER_ERROR, error BAD_REQUEST, returnedRecordTypes "_pcs_data". Reads and zone setup succeed in the same sessions (ZoneSave, SubscriptionCreate, DatabaseChanges, ZoneChanges). Zero successful RecordSaves have ever occurred in this container's Production environment. Facts established so far: 4 of 4 users fail identically (my account + 3 TestFlight testers on unrelated iCloud accounts, iPhone and iPad, iOS 26.6/26.6.x) — so this is not one account's Advanced Data Protection key state. Schema was deployed Dev to Production via Console; the Deploy sheet now reports zero pending changes, and Export Schema from BOTH environments yields identical record type sets. _pcs_data appears in neither export — it is a server-managed system type, so there is no developer action (Console or cktool) that can add it to Production. The model declares no encrypted attributes (allowsCloudEncryption appears nowhere). Entitlements verified with codesign on the shipped TestFlight binary: icloud-container-identifiers, icloud-services=CloudKit, production environment — all correct. Client-side the failure is silent: CKAccountStatus is .available, the container initializes, no error surfaces; the mirroring delegate just stops exporting. Tried without effect: reboots, reinstalls, force-quits, per-app iCloud toggles; storage has ample headroom. This matches the signature in thread 838743 (FB23731287, FB24150787), where multiple developers report the same behavior, unresolved. Filed as FB24378074, which now carries: a CloudKit-profile sysdiagnose captured during a timestamped reproduction, the matching server-side requestId/operationId for that exact save (9265D1CA-86BF-4CEB-A432-43F3F39C891E / A2A2B0F98B389DF8), schema exports from both environments, and a full fault-elimination audit. Question for DTS: what makes a Production environment reject _pcs_data record saves that Development accepts, and what is the supported path to repair this container's Production PCS handling? A live TestFlight beta (a family app; device-to-device sync fully down for all users) is waiting on this. Happy to run further diagnostics on request — a minimal repro project against a fresh container is prepared. Case-ID: 21696635
1
0
40
11h
Detecting Full Disk Access on macOS 27 — TCC.db path no longer usable
We have been using this path to detect whether Full Disk Access is granted: ~/Library/Application Support/com.apple.TCC/TCC.db Since macOS [27], reading this path fails with access denied even when Full Disk Access has been granted to the app, so the check now reports a false negative. Questions: Is there an API an app can use to detect whether Full Disk Access has been granted to it? 2. If not, is there another supported method to detect it? 3. If this path is no longer usable, which path can we probe to reliably determine that Full Disk Access is granted?
3
0
237
11h
Default App Clip URL (appclip.apple.com) shows website preview instead of triggering App Clip card
We have a published, approved App Clip that works correctly via QR code and the Safari Smart App Banner, but URL-based invocation does not trigger the App Clip card in any context. Most notably, Apple's own default App Clip URL does not work either: https://appclip.apple.com/id?p=hazel-torus.Clip **Tapping this link in Messages or Notes does nothing. ** Long-pressing it shows a generic website link preview rather than the App Clip card, even though appclip.apple.com is Apple's domain and requires no configuration on our end. Setup details: App Clip bundle ID: hazel-torus.Clip Team ID: 2UNR2APH47 App Clip experience URL: https://passportreader.app/open AASA includes a correctly formatted appclips key with 2UNR2APH47.hazel-torus.Clip (confirmed via https://app-site-association.cdn-apple.com/a/v1/passportreader.app that AASA is correctly cached) Associated Domains entitlements (appclips:passportreader.app) are present on the App Clip target App and App Clip experience are both Approved / Ready for Sale Tested on two physical devices, neither with the full app installed Since QR and Safari banner invocation work, the App Clip itself and its entitlements appear correctly configured. The fact that even Apple's own appclip.apple.com URL fails, and is treated as an arbitrary website link, suggests this may be a backend indexing issue specific to this App Clip rather than a client-side configuration problem. Has anyone else encountered this, or know what could cause appclip.apple.com to not be recognized as an App Clip URL?
13
0
1k
11h
Diagnosing MetricKit crash reports with EXC_CRASH / SIGKILL with no termination reason
I'm collecting and uploading MetricKit crash diagnostic reports from my app in the field, and the huge majority of the reports I get back have exception type EXC_CRASH, signal SIGKILL with no terminationReason. The report lists thread 0 as attributed, but it doesn't have any of my code active. Here's an example symbolicated trace of thread 0: mach_msg2_trap (in libsystem_kernel.dylib) + 8 mach_msg2_internal (in libsystem_kernel.dylib) + 76 mach_msg_overwrite (in libsystem_kernel.dylib) + 424 mach_msg (in libsystem_kernel.dylib) + 24 __CFRunLoopServiceMachPort (in CoreFoundation) + 160 __CFRunLoopRun (in CoreFoundation) + 1188 _CFRunLoopRunSpecificWithOptions (in CoreFoundation) + 532 GSEventRunModal (in GraphicsServices) + 120 -[UIApplication _run] (in UIKitCore) + 796 UIApplicationMain (in UIKitCore) + 332 main (in BRFree) (main.m:0) start (in dyld) + 6928 There is code from my app in other threads, but they're all waiting on NSConditions and not doing anything. I thought they might be 0xdead10cc crashes, but there are other reports that have "terminationReason": "Namespace RUNNINGBOARD, Code 0xdead10cc". Can anyone help me narrow down what could be causing these crashes? I would file a DTS support ticket, but it won't let me without either a request from someone at Apple or a focused test project. If an engineer sees this thread and gives me a green light for a code-level support request, I can provide a sampling of the MetricKit reports.
3
0
47
12h
iOS 27 Public Beta - CoreBluetooth disconnects during BLE credential send open command to access control readers
Hello Apple Developer Team, We are observing a BLE connectivity issue in our application BlueDiamond Mobile Elite after upgrading devices to iOS 27 Public Beta. Environment App: BlueDiamond Mobile Elite Platform: iOS 27 Public Beta Framework: CoreBluetooth Device Type: iPhone BLE Peripheral: Access control/BLE reader Testing Status: BLE scanning works correctly. Reader discovery works correctly. Connection establishment succeeds. Service and characteristic discovery complete successfully. Issue occurs during credential transmission. Problem Description After connecting to a BLE reader, our application sends mobile credentials to the reader using CoreBluetooth. The workflow is: Scan for BLE readers. Discover target reader. Connect to reader. Discover services and characteristics. Start credential transfer. BLE connection disconnects unexpectedly during or immediately after the credential write operation. The disconnect occurs before the credential transaction completes successfully. Observed Behavior BLE scanning is functioning normally on iOS 27 Public Beta. The reader is discovered without issues. Connection is established successfully. Credential provisioning/credential write operation triggers the problem. centralManager(_:didDisconnectPeripheral:error:) is invoked after the credential transfer attempt. The credential is not successfully delivered to the reader. Expected Behavior The BLE connection should remain active throughout the credential provisioning process and disconnect only after the transaction is completed or when explicitly terminated by the application. Additional Information The same credential issuance flow worked correctly on previous iOS versions. We have already addressed another iOS 27 compatibility issue related to QR code access by updating to Apple's recommended APIs. We are currently investigating whether the BLE disconnection is caused by: Changes in CoreBluetooth behavior in iOS 27 Public Beta. MTU/write packet handling. Write-with-response versus write-without-response behavior. Peripheral firmware compatibility. Credential payload size or transfer timing. Questions Are there any known CoreBluetooth regressions or behavior changes in iOS 27 Public Beta related to characteristic writes or BLE credential provisioning? Has anyone observed unexpected peripheral disconnects during write operations on iOS 27 Public Beta? Are there any recommended changes for applications performing secure credential transfers to BLE peripherals? Any guidance would be greatly appreciated.
1
0
596
12h
New features for APNs token authentication now available
Team-scoped keys introduce the ability to restrict your token authentication keys to either development or production environments. Topic-specific keys in addition to environment isolation allow you to associate each key with a specific Bundle ID streamlining key management. For detailed instructions on accessing these features, read our updated documentation on establishing a token-based connection to APNs.
Replies
0
Boosts
0
Views
3.6k
Activity
Feb ’25
Meet State Reporting and the new MetricKit
Hello developers! Thank you for your dedication to creating apps with great performance. We’re excited to kick off another year of partnering with you on improving power and performance in your apps. At WWDC26, check out the following new things in the latest platform SDKs and Xcode 27 beta for performance. You can also join us online for a Power and Performance Group Lab on Tuesday, June 9 at 11 AM Pacific. Meet State Reporting and the new MetricKit State reporting: The new StateReporting framework lets your application express its state to downstream tools like Instruments and MetricKit. Make your telemetry and traces much more useful by adopting this simple API. MetricKit: In the 27 releases, the Swift-first MetricManager API replaces the MXMetricManager API. Combined with State Reporting, the new MetricKit provides more granular metrics to isolate performance problems faster. It also provides a more expressive API that is great to use in Swift, with improved Swift concurrency and Codable support. With this year’s releases, the MXMetricManager API is considered legacy. ▶️ To learn more, watch Meet the new MetricKit. Discover new features in Xcode organizer Metric goals: Xcode organizer now provides a goal metric for Battery Usage, Disk Writes, Hang Rate, Hitches, Memory, and Storage metrics, allowing you to prioritize performance engineering across more areas. Generate recommendations: Quickly resolve the highest impact performance issues in your app by using Generate Recommendations for Crash, Energy, Disk Write, Hang and Launch diagnostics. Insights overview: The new insights overview in Xcode organizer summarizes high-impact performance regressions for metrics and diagnostic reports, helping you plan and prioritize performance engineering work. Storage metrics: Storage metrics are now available in Xcode organizer, allowing you to monitor your app's Documents & Data and App Size across releases and catch regressions in cache usage and bundle size. Hitches metric: The new Hitches metric replaces the Scrolling metric in the organizer and now displays hitches for all animations in your app, giving you a comprehensive view of animation performance. ▶️ To learn more about other advancements in Xcode, watch What’s new in Xcode 27. Improve app responsiveness with Instruments Foundation Models: The Foundation Models instrument is redesigned with a tree view that lets you drill into individual requests, inspecting tool call arguments and results, inference prompts and responses, and token statistics. Use it to understand caching behavior, measure latency, and optimize throughput. System Trace: System calls, VM faults, and thread states are now unified into a single plot, with a new blending algorithm that stays readable even at high density. Once you spot something worth investigating, left/right key navigation lets you follow a thread's activity step by step, and the inspector provides quick actions like pinning the thread that made another thread runnable. System Trace now also draws thread priority and QoS over time, making it easier to identify priority inversions and unexpected QoS degradations that affect responsiveness. Swift Concurrency: New Main Actor and Global Concurrent Executor tracks let you visualize running tasks and executor queue depth over time, making it easier to spot task scheduling delays and actor contention. Tasks are now grouped into collections for faster navigation. Swift Tasks, Actors, and Executors instruments can now surface Call Trees, Flame Graphs, and Top Functions scoped to each entity — so you can pinpoint exactly where concurrency overhead lives. Top Functions: Helper functions and runtime internals can be expensive but hard to spot in a standard call tree. The new aggregation mode in Top Functions surfaces any function's total execution time across the entire call stack, making it easy to identify and prioritize hidden hotspots. Run Comparison: Compare call tree data across builds to identify regressions and performance wins. Results can be explored as an outline, flame graph, or top functions — choose whichever view best fits your workflow. ▶️ To learn more about profiling your app with Instruments, watch “Profile, fix, and verify: Improve app responsiveness with Instruments” ▶️ To learn about Foundation Models optimization, watch “Debug and profile agentic app experiences with Instruments”. If you have any questions about using State Reporting or the new MetricKit, create a post on the forums. For help creating a post, see Tips on writing a forum posts.
Replies
0
Boosts
0
Views
1.2k
Activity
Jun ’26
How does the Health app reconcile overlapping sleep samples written to HealthKit?
I'm trying to understand the exact rules the Health app uses to reconcile (deduplicate/merge/discard) overlapping sleep samples, and I'm hoping an Apple engineer can clarify the behavior. Background: My Apple Watch wrote sleep samples to HealthKit twice within the same day, and the two writes overlap substantially: Same stage, overlapping in time — e.g., two "Core" sleep samples that overlap each other in time. Different stages, overlapping in time — e.g., Deep and Core overlap, and Core and REM (Rapid Eye Movement) also overlap. Observation: Even though the raw samples contain these overlaps, the Health app ultimately displays non-overlapping data (i.e., it has reconciled the overlaps somehow). I'm confused about the exact reconciliation rules the Health app applies to such overlapping data. To make the problem clearer, I've visualized the raw HealthKit samples. In the attached chart, you can see the same stage was written multiple times at different timestamps, shown in chronological order. However, the data ultimately displayed by the Health app differs significantly from the raw data — samples appear to have been reconciled, dropped, and merged in various ways. Question: What are the detailed rules the Health app uses to reconcile overlapping sleep samples? Specifically: When samples of the same stage overlap in time, how is the overlap resolved? When samples of different stages overlap in time, which stage takes precedence, and how are the boundaries adjusted? Are samples merged, truncated, or discarded entirely? Under what conditions? Any clarification from the HealthKit team would be greatly appreciated. Appendix 1 — Raw data visualization. All sleep samples as shown in the Health app (source: the complete sleep dataset in the Health app). Appendix 2 — Final presentation. How the Health app presents the data after reconciling the raw samples. Note — Comparing Appendix 2 with Appendix 1, the following differences are clearly visible: 1.A portion of Deep sleep was discarded. 2.Four awake segments were discarded. 3.Multiple REM segments were also discarded. 4.Core sleep was partially merged.
Replies
0
Boosts
0
Views
5
Activity
46m
AccessorySetupKit + CBCentralManager migration & scanning regression after accessory picker authorization
Hello everyone: Description Environment iOS: 26.5 Xcode: 26.3 App version: 1.0 / 2.0 Scenario background App communicates with unpaired Bluetooth peripherals. App v1.0: Use only CBCentralManager for scanning and connecting peripherals(D2, D3…). No AccessorySetupKit involved. App v2.0: Hybrid approach: ASAccessorySession + CBCentralManager. CBCentralManager is initialized after ASAccessorySession becomes active. Info.plist configuration <key>NSAccessorySetupKitSupports</key> <array> <string>Bluetooth</string> </array> <key>NSAccessorySetupBluetoothServices</key> <array> <string>xxxx</string> </array> <key>NSAccessorySetupBluetoothNames</key> <array> <string>MyDevice</string> </array> Observed test behavior For users upgrading from v1.0 to v2.0: ASAccessorySession.accessories returns empty. Old CBCentralManager instance(C1) works fine: can scan and connect peripherals D1, D2, D3. Calling showPicker() while C1 is alive throws error: Error Domain=ASErrorDomain Code=550 Destroy C1 before invoking showPicker(). After user authorizes new accessory D1 via picker, create a brand‑new CBCentralManager instance(C2). Regression: C2 can only scan & communicate with authorized D1. Peripherals D2, D3 can no longer be discovered. Questions In v1.0 we stored CBPeripheral.identifier for unpaired devices D2, D3. How to implement seamless migration after upgrading to v2.0? After user authorizes D1 in v2.0, is there a callback trigger when D2 / D3 come into proximity? Can we auto‑launch showPicker() on that trigger? AccessorySetupKit workflow feels restrictive. Is multi‑device one‑tap authorization planned for peripherals like D2, D3 which may not be nearby at authorization time?
Replies
2
Boosts
0
Views
45
Activity
3h
WeatherKit REST returns 401 NOT_ENABLED with valid JWT (capability enabled, key recreated)
Hey Everyone, I am looking for some help as I am completely lost in what to do, maybe I am missing something simple, but, our server-side WeatherKit REST integration has returned 401 on every request for several weeks, and the evidence points to service enablement on Apple's side rather than our configuration. Details: The 401 response body is {"reason": "NOT_ENABLED"}, per the documentation this indicates the WeatherKit service is not enabled for the App ID, not a malformed token. Deliberately corrupting the JWT produces a different rejection, which we can reproduce at will, so token validation is clearly passing. The JWT is structurally correct: header {alg, kid, id: "TEAM.BUNDLE"}, payload {iss: TEAM, sub: BUNDLE}. The same Team ID and signing flow produce a working MapKit JS token in production today. In Certificates, Identifiers & Profiles, the WeatherKit capability is checked for the App ID under both App Services and Capabilities, and has been for weeks. We have since minted a brand-new key (new .p8, re-encoded and verified) and the result is unchanged. Bundle ID: run.tayro.app. The failure is identical from our production servers and from curl. Developer Support declined to escalate twice, saying this is outside their scope so I'm posting here for help :) . Has anyone seen NOT_ENABLED persist despite the portal showing the capability enabled? And long shot but... maybe someone from the WeatherKit team can check the service enablement state for this App ID? or point me at the right channel to request that?
Replies
0
Boosts
0
Views
11
Activity
5h
Intermittent missing historical step counts from HKStatisticsCollectionQuery on iOS 27 beta
Hello, We received a customer report about intermittent missing historical step-count data when using HKStatisticsCollectionQuery on iOS 27 beta. When the query was executed on August 16, only the most recent two days—August 16 and August 15—returned correct step counts. Earlier dates returned nil from sumQuantity() and were consequently treated as zero. However, queries executed on August 14 and August 18 returned the expected data. Therefore, the problem appears to be intermittent rather than consistently reproducible. The customer confirmed that all affected historical step counts were visible in the Apple Health app, including the dates returned as zero by our query. We have not received the same type of customer report from devices running iOS 26 or earlier. Here is a simplified version of our query: guard let stepType = HKObjectType.quantityType( forIdentifier: .stepCount ) else { return } var calendar = Calendar(identifier: .gregorian) calendar.timeZone = TimeZone(identifier: "Asia/Seoul")! let queryStartDate = calendar.startOfDay(for: parsedStartDate) let tomorrow = calendar.date(byAdding: .day, value: 1, to: Date())! let queryEndDate = calendar.startOfDay(for: tomorrow) let datePredicate = HKQuery.predicateForSamples( withStart: queryStartDate, end: queryEndDate, options: .strictStartDate ) let nonUserEnteredPredicate = HKQuery.predicateForObjects( withMetadataKey: HKMetadataKeyWasUserEntered, operatorType: .notEqualTo, value: NSNumber(value: true) ) let predicate = NSCompoundPredicate( andPredicateWithSubpredicates: [ datePredicate, nonUserEnteredPredicate ] ) let anchorDate = calendar.startOfDay(for: Date()) var interval = DateComponents() interval.day = 1 let query = HKStatisticsCollectionQuery( quantityType: stepType, quantitySamplePredicate: predicate, options: .cumulativeSum, anchorDate: anchorDate, intervalComponents: interval ) query.initialResultsHandler = { _, results, error in guard let results, error == nil else { print("Query error: \(String(describing: error))") return } results.enumerateStatistics( from: queryStartDate, to: queryEndDate ) { statistics, _ in let steps = statistics .sumQuantity()? .doubleValue(for: .count()) ?? 0 print(statistics.startDate, statistics.endDate, steps) } } healthStore.execute(query) Observed behavior Query executed on August 14: historical step counts returned correctly Query executed on August 16: August 16 and August 15 returned correctly August 14 and earlier returned nil from sumQuantity() Query executed on August 18: historical step counts returned correctly again No query error was reported All step counts remained visible in the customer's Apple Health app Expected behavior The query should consistently return cumulative daily step counts when matching HealthKit samples exist and are visible in the Health app. Because this was reported through customer support, we do not currently know the exact iOS 27 beta build number. We are also unable to reproduce it consistently on our own test devices. Questions Is there a known intermittent issue with historical .stepCount queries on iOS 27 beta? Can HealthKit temporarily return incomplete statistics while data is being indexed, synchronized, or migrated? Is there a recommended way to detect that the returned statistics are temporarily incomplete? Should applications retry the query when older statistics unexpectedly return nil without an error? We have not received reports of this behavior from customers using iOS 26 or earlier. Thank you.
Replies
1
Boosts
0
Views
36
Activity
5h
MapKit JS quota limit architecture decision
Hello, I have a question similar to this post regarding MapKit JS quota limits. I understand that we can request rate limit increases, but it is not a guaranteed increase. My app is rapidly growing. What if Apple decides to not award the limit increase? Then, the directions service of my app will stop working, which would be catastrophic for my company. I need to know if the rate limit increases are guaranteed. I need to decide early on whether to use MapKit JS or another service on, because the more time that passes, the more entangled my code will get with MapKit JS. Can we get some more information on this?
Replies
5
Boosts
1
Views
508
Activity
8h
Apps do not trigger pop-up asking for permission to access local network on macOS Sequoia/Tahoe
We are having an issue with the Local Network permission pop-up not getting triggered for our apps that need to communicate with devices via local network interfaces/addresses. As we understand, apps using UDP should trigger this, causing macOS to prompt for access, or, if denied, fail to connect. However, we are facing issues with macOS not prompting this popup at all. Here are important and related points: Our application is packaged as a .app package and distributed independently (not on the App Store). The application controls hardware that we manufacture. In order to find the hardware on the network, we send a UDP broadcast with a message for our hardware on the local network, and the hardware responds with a message back. However, the popup (to ask for permission) never shows up. The application is not able to find the hardware device. It is interesting to note that data is still sent out to the network (without the popup) but we receive back the wrong data. The behaviour is consistent macOS Sequoia (and above) with both Apple And Intel silicon. Workarounds that have been tried: Manual Authorization: One solution suggested in various blogs was to go to "Settings → Privacy and Security-> Local network", find your application and grant access. However, the application never shows up in the list here. Firewall: No difference is seen in behaviour with firewall being ON OR OFF. Setting NSLocalNetworkUsageDescription: We have also tried setting the Info.plist adding the NSLocalNetworkUsageDescription with a meaningful string and updating the NSBonjourServices. Running Via terminal (WORKS): Running the application via terminal sees no issues. The application runs correctly and is able to send UDP and receive correct data (and find the devices on the network). But this is not an appropriate solution. How can we get this bug/issue fixed in macOS Sequoia (and above)? Are there any other solutions/workarounds that we can try on our end?
Replies
15
Boosts
1
Views
1.6k
Activity
8h
iOS 26.6: “When App Is Closed” automation fires when opening Control Center / Notification Center
After updating to iOS 26.6 I noticed a regression in Shortcuts automations. I created two simple automations: When App Is Opened → Show Notification “OPEN” When App Is Closed → Show Notification “CLOSE” Steps: Open Safari (or any app). Open Control Center or Notification Center. Actual result: “CLOSE” is triggered immediately. Dismissing Control Center or Notification Center does not trigger “OPEN”. Expected: Opening system overlays should not generate an App Closed event because the foreground application remains active. Device: iPhone 13 mini iOS: 26.6 Can anyone else reproduce this?
Replies
1
Boosts
1
Views
239
Activity
8h
How to change the business company?
Hello Apple Team, I have my account, which I wanted to use for development. In the past I successfully submitted an app, and it even won a red dot award, then I didn't code for while for Apple Eco-System mostly for web. Now I wanted to submit another app. I wanted to change my business name first, but that was not possible until I renewed my membership. After I renewed the membership, and paid 99 EUR, the employee told me, I need to register again, and pay another 99 EUR. I don't understand, is it possible to just change the business name? Will I get a refund? 99 EUR is not nothing for me (just to be able to develop an app). Happy to hear your feedback.
Replies
0
Boosts
0
Views
12
Activity
10h
DriverKit entitlement eligibility for independently supporting an EOL third-party USB audio device
I am developing an independent macOS compatibility driver for the Avid/Digidesign Eleven Rack, an EOL USB audio device that does not have an Apple-silicon-compatible OEM driver. The existing hardware identifies as: Vendor ID: 0x0DBA — Digidesign/Avid Product ID: 0xB011 — Eleven Rack Transport: USB 2.0 high-speed isochronous audio The proposed implementation uses AudioDriverKit and USBDriverKit. It consists of a DriverKit system extension packaged inside a macOS control application. The USB entitlement would be restricted to this exact VID/PID. I am an independent developer and do not own the Digidesign/Avid VID. I am not manufacturing hardware or attempting to use that VID for a new USB product. The driver would only match existing Eleven Rack devices. The implementation is independently written for interoperability, and no Avid executable code would be included. I currently have a working direct user-space USB proof of concept, but I cannot properly activate and test the AudioDriverKit extension with SIP enabled without the required entitlements. Before enrolling in the paid Apple Developer Program, I would appreciate clarification on the following: Does Apple consider DriverKit development and distribution entitlement requests from independent developers supporting existing EOL hardware when the developer does not own the device’s VID? Is written authorization from the VID owner always required, or are these requests evaluated individually? Would restricting the USB transport entitlement to the exact 0x0DBA:0xB011 device affect eligibility? Is there a way to obtain an initial eligibility determination before purchasing Apple Developer Program membership? The anticipated entitlements are: com.apple.developer.driverkit com.apple.developer.driverkit.family.audio com.apple.developer.driverkit.transport.usb com.apple.developer.system-extension.install for the host application Restricted user-client access between the host application and driver I understand that the forum cannot grant an entitlement. I am trying to determine the appropriate process and whether manufacturer authorization is a prerequisite before submitting a formal request.
Replies
1
Boosts
0
Views
21
Activity
10h
NSPersistentCloudKitContainer export blocked account-wide by failing _pcs_data RecordDelete (BAD_REQUEST)
Since ~July 10, NSPersistentCloudKitContainer export has failed on every device on my iCloud account; import still works. In CloudKit Console → Logs (Production), the only failing operations are RecordDelete/RecordSave of record type pcs_data (error BAD_REQUEST) in the private com.apple.coredata.cloudkit.zone. No CD* app-record failures; the app schema is fully deployed to Production. Advanced Data Protection is enabled on the account, so PCS keys are managed end-to-end on-device. This looks like a wedged PCS key state rather than an app/schema problem. Tried with no effect: toggling ADP off/on, toggling iCloud Keychain, multiple reboots, app reinstall, extended foreground on Wi-Fi. Still failing after updating from iOS 27 Seed 3 to beta 4. Is there a way to get the account's Protected Cloud Storage key state reset so export can resume? Happy to share the Feedback number and sysdiagnoses privately with an Apple engineer.
Replies
3
Boosts
0
Views
520
Activity
11h
App Icon Does Not Update to the Latest Default Icon on Some iOS Devices After App Update
Environment Platform: iOS iOS versions tested: : 26.5.2, 26.5 Xcode: 26.3 Language: Swift UI framework: SwiftUI App distribution: App Store Device models tested: : iPhone 17, iPhone 16, iPhone 15 pro max, iPhone 17 pro max Issue We are experiencing an issue where the app icon does not update to the latest app icon after an app update on some devices. Initially, our app used Apple's alternate app icon functionality through setAlternateIconName to dynamically change the app icon. However, we observed that the alternate icon was not being updated correctly on some devices. As it was not working , we removed the alternate icon approach and changed the primary/default app icon in the application itself. We then submitted an updated app version with the new default icon. After updating the app, the new app icon is displayed correctly on some devices, but on some other devices the previous/old app icon continues to be displayed, even though the app has been successfully updated to the latest version. The issue appears to be device-specific, as the same app version can display the new icon on one device while continuing to display the old icon on another device. Expected Behavior After installing an app update containing a new default app icon, the new app icon should be displayed on the Home Screen and in relevant system locations such as Shortcuts. Actual Behavior On some devices, after successfully updating the application to the new version, the old app icon continues to be displayed. The application itself is updated successfully and launches normally. The issue is specifically with the icon displayed by the system. Steps to Reproduce Install an older version of the application containing the old app icon. Update the application to a newer version where the default/primary app icon has been changed. Verify that the application has been updated to the latest version. Return to the Home Screen. Observe the application icon. If applicable, check the application icon in the Shortcuts interface. Expected: The new app icon is displayed. Actual: On some devices, the previous app icon is still displayed. Additional Observations We observed different behaviors on affected devices: On one affected device, the old icon remained after the app update but changed to the new icon after restarting the device. On another affected device, the icon changed to the new icon after some time without reinstalling the application. However, on that device, the old icon continued to be displayed in the Shortcuts interface even after the Home Screen icon had changed to the new icon. Reinstalling the application causes the new icon to appear correctly. These observations make the behavior appear to be related to how iOS refreshes or caches application icons after an app update. Additional Information We initially attempted to use Apple's alternate app icon functionality through setAlternateIconName. The alternate icon approach did not update the icon consistently across all tested devices. We therefore changed the application's default/primary icon instead of relying on alternate icons. The issue still occurs on some devices even after changing the default app icon. The application itself functions normally after the update; only the displayed app icon remains unchanged on the affected devices. The issue appears to occur specifically with updating an existing installation rather than installing the application for the first time. Questions Is there any known iOS behavior where the previous Home Screen icon can remain cached after an app update? Is there a recommended way to ensure that iOS refreshes the Home Screen icon after changing the default app icon? Could this behavior be related to the previous use of alternate app icons through setAlternateIconName? Why might the Home Screen icon update after a restart or after some time while the icon shown in Shortcuts continues to display the previous icon? Are there any specific requirements for CFBundleIcons, asset catalogs, Info.plist, or other configuration that we should verify when changing the primary app icon? Is this a known issue on any specific iOS versions or device configurations? We would appreciate any guidance on whether this is expected iOS behavior, an icon caching issue, or if there is something specific we should change in our application configuration.
Replies
1
Boosts
0
Views
69
Activity
11h
All Production RecordSaves rejected (BAD_REQUEST, _pcs_data) for every user of my container; Development works — FB24378074
My SwiftData app (NSPersistentCloudKitContainer mirroring, private database only) cannot save any record to its CloudKit Production environment, for any user. Development works flawlessly for the same devices, accounts, and code. Signature, from CloudKit Console Production logs: every RecordSave to zone com.apple.coredata.cloudkit.zone fails with overallStatus USER_ERROR, error BAD_REQUEST, returnedRecordTypes "_pcs_data". Reads and zone setup succeed in the same sessions (ZoneSave, SubscriptionCreate, DatabaseChanges, ZoneChanges). Zero successful RecordSaves have ever occurred in this container's Production environment. Facts established so far: 4 of 4 users fail identically (my account + 3 TestFlight testers on unrelated iCloud accounts, iPhone and iPad, iOS 26.6/26.6.x) — so this is not one account's Advanced Data Protection key state. Schema was deployed Dev to Production via Console; the Deploy sheet now reports zero pending changes, and Export Schema from BOTH environments yields identical record type sets. _pcs_data appears in neither export — it is a server-managed system type, so there is no developer action (Console or cktool) that can add it to Production. The model declares no encrypted attributes (allowsCloudEncryption appears nowhere). Entitlements verified with codesign on the shipped TestFlight binary: icloud-container-identifiers, icloud-services=CloudKit, production environment — all correct. Client-side the failure is silent: CKAccountStatus is .available, the container initializes, no error surfaces; the mirroring delegate just stops exporting. Tried without effect: reboots, reinstalls, force-quits, per-app iCloud toggles; storage has ample headroom. This matches the signature in thread 838743 (FB23731287, FB24150787), where multiple developers report the same behavior, unresolved. Filed as FB24378074, which now carries: a CloudKit-profile sysdiagnose captured during a timestamped reproduction, the matching server-side requestId/operationId for that exact save (9265D1CA-86BF-4CEB-A432-43F3F39C891E / A2A2B0F98B389DF8), schema exports from both environments, and a full fault-elimination audit. Question for DTS: what makes a Production environment reject _pcs_data record saves that Development accepts, and what is the supported path to repair this container's Production PCS handling? A live TestFlight beta (a family app; device-to-device sync fully down for all users) is waiting on this. Happy to run further diagnostics on request — a minimal repro project against a fresh container is prepared. Case-ID: 21696635
Replies
1
Boosts
0
Views
40
Activity
11h
Detecting Full Disk Access on macOS 27 — TCC.db path no longer usable
We have been using this path to detect whether Full Disk Access is granted: ~/Library/Application Support/com.apple.TCC/TCC.db Since macOS [27], reading this path fails with access denied even when Full Disk Access has been granted to the app, so the check now reports a false negative. Questions: Is there an API an app can use to detect whether Full Disk Access has been granted to it? 2. If not, is there another supported method to detect it? 3. If this path is no longer usable, which path can we probe to reliably determine that Full Disk Access is granted?
Replies
3
Boosts
0
Views
237
Activity
11h
Default App Clip URL (appclip.apple.com) shows website preview instead of triggering App Clip card
We have a published, approved App Clip that works correctly via QR code and the Safari Smart App Banner, but URL-based invocation does not trigger the App Clip card in any context. Most notably, Apple's own default App Clip URL does not work either: https://appclip.apple.com/id?p=hazel-torus.Clip **Tapping this link in Messages or Notes does nothing. ** Long-pressing it shows a generic website link preview rather than the App Clip card, even though appclip.apple.com is Apple's domain and requires no configuration on our end. Setup details: App Clip bundle ID: hazel-torus.Clip Team ID: 2UNR2APH47 App Clip experience URL: https://passportreader.app/open AASA includes a correctly formatted appclips key with 2UNR2APH47.hazel-torus.Clip (confirmed via https://app-site-association.cdn-apple.com/a/v1/passportreader.app that AASA is correctly cached) Associated Domains entitlements (appclips:passportreader.app) are present on the App Clip target App and App Clip experience are both Approved / Ready for Sale Tested on two physical devices, neither with the full app installed Since QR and Safari banner invocation work, the App Clip itself and its entitlements appear correctly configured. The fact that even Apple's own appclip.apple.com URL fails, and is treated as an arbitrary website link, suggests this may be a backend indexing issue specific to this App Clip rather than a client-side configuration problem. Has anyone else encountered this, or know what could cause appclip.apple.com to not be recognized as an App Clip URL?
Replies
13
Boosts
0
Views
1k
Activity
11h
Command-line tool for .ips files?
So apparently Monterey has switched to creating .ips files instead of .crash files for application crashes. Console.app can convert these .ips files to "old-style" crash format. But is there a command-line tool to do the same thing?
Replies
11
Boosts
1
Views
7.9k
Activity
12h
Diagnosing MetricKit crash reports with EXC_CRASH / SIGKILL with no termination reason
I'm collecting and uploading MetricKit crash diagnostic reports from my app in the field, and the huge majority of the reports I get back have exception type EXC_CRASH, signal SIGKILL with no terminationReason. The report lists thread 0 as attributed, but it doesn't have any of my code active. Here's an example symbolicated trace of thread 0: mach_msg2_trap (in libsystem_kernel.dylib) + 8 mach_msg2_internal (in libsystem_kernel.dylib) + 76 mach_msg_overwrite (in libsystem_kernel.dylib) + 424 mach_msg (in libsystem_kernel.dylib) + 24 __CFRunLoopServiceMachPort (in CoreFoundation) + 160 __CFRunLoopRun (in CoreFoundation) + 1188 _CFRunLoopRunSpecificWithOptions (in CoreFoundation) + 532 GSEventRunModal (in GraphicsServices) + 120 -[UIApplication _run] (in UIKitCore) + 796 UIApplicationMain (in UIKitCore) + 332 main (in BRFree) (main.m:0) start (in dyld) + 6928 There is code from my app in other threads, but they're all waiting on NSConditions and not doing anything. I thought they might be 0xdead10cc crashes, but there are other reports that have "terminationReason": "Namespace RUNNINGBOARD, Code 0xdead10cc". Can anyone help me narrow down what could be causing these crashes? I would file a DTS support ticket, but it won't let me without either a request from someone at Apple or a focused test project. If an engineer sees this thread and gives me a green light for a code-level support request, I can provide a sampling of the MetricKit reports.
Replies
3
Boosts
0
Views
47
Activity
12h
iOS 27 Public Beta - CoreBluetooth disconnects during BLE credential send open command to access control readers
Hello Apple Developer Team, We are observing a BLE connectivity issue in our application BlueDiamond Mobile Elite after upgrading devices to iOS 27 Public Beta. Environment App: BlueDiamond Mobile Elite Platform: iOS 27 Public Beta Framework: CoreBluetooth Device Type: iPhone BLE Peripheral: Access control/BLE reader Testing Status: BLE scanning works correctly. Reader discovery works correctly. Connection establishment succeeds. Service and characteristic discovery complete successfully. Issue occurs during credential transmission. Problem Description After connecting to a BLE reader, our application sends mobile credentials to the reader using CoreBluetooth. The workflow is: Scan for BLE readers. Discover target reader. Connect to reader. Discover services and characteristics. Start credential transfer. BLE connection disconnects unexpectedly during or immediately after the credential write operation. The disconnect occurs before the credential transaction completes successfully. Observed Behavior BLE scanning is functioning normally on iOS 27 Public Beta. The reader is discovered without issues. Connection is established successfully. Credential provisioning/credential write operation triggers the problem. centralManager(_:didDisconnectPeripheral:error:) is invoked after the credential transfer attempt. The credential is not successfully delivered to the reader. Expected Behavior The BLE connection should remain active throughout the credential provisioning process and disconnect only after the transaction is completed or when explicitly terminated by the application. Additional Information The same credential issuance flow worked correctly on previous iOS versions. We have already addressed another iOS 27 compatibility issue related to QR code access by updating to Apple's recommended APIs. We are currently investigating whether the BLE disconnection is caused by: Changes in CoreBluetooth behavior in iOS 27 Public Beta. MTU/write packet handling. Write-with-response versus write-without-response behavior. Peripheral firmware compatibility. Credential payload size or transfer timing. Questions Are there any known CoreBluetooth regressions or behavior changes in iOS 27 Public Beta related to characteristic writes or BLE credential provisioning? Has anyone observed unexpected peripheral disconnects during write operations on iOS 27 Public Beta? Are there any recommended changes for applications performing secure credential transfers to BLE peripherals? Any guidance would be greatly appreciated.
Replies
1
Boosts
0
Views
596
Activity
12h