I’m embedding an NSTextView (TextKit 2) inside a SwiftUI app using NSViewRepresentable. I’m trying to highlight dynamic subranges (changing as the user types) by providing per-range rendering attributes via NSTextLayoutManager’s rendering-attributes mechanism.
The issue: the highlight is unreliable.
Often, the highlight doesn’t appear at all even though the delegate/data source is returning attributes for the expected range.
Sometimes it appears once, but then it stops updating even when the underlying “highlight range” changes.
This feels related to SwiftUI - AppKit layout issue when using NSViewRepresentable (as said in https://developer.apple.com/documentation/swiftui/nsviewrepresentable).
What I’ve tried
Updating the state that drives the highlight range and invalidating layout fragments / asking for relayout
Ensuring all updates happen on the main thread.
Calling setNeedsDisplay(_:) on the NSViewRepresentable’s underlying view.
Toggling the SwiftUI view identity (e.g. .id(...)) to force reconstruction (works, but too expensive / loses state).
Question
In a SwiftUI + NSViewRepresentable setup with TextKit 2, what is the correct way to make NSTextLayoutManager re-query and redraw rendering attributes when my highlight ranges change?
Is there a recommended invalidation call for TextKit 2 to trigger re-rendering of rendering attributes?
Or is this a known limitation when hosting NSTextView inside SwiftUI, where rendering attributes aren’t reliably invalidated?
If this approach is fragile, is there a better pattern for dynamic highlights that avoids mutating the attributed string (to prevent layout/scroll jitter)?
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
Navigating to the Contact Us website (https://developer.apple.com/contact/) results in an "Error:" showing at the top of the page. I cannot select options for starting a new issue or accessing recent ones - and sometimes nothing shows up on the page at all (attached screenshot).
I've been trying to get in to request an expedited review since Thursday afternoon.
I checked the System Status page and there are no reported issues.
I am using Microsoft Edge and also logged in via Safari - still wasn't able to access the Contact Us issues.
Hello!
I recall guidance for Alternate App Icons used to be under 4.6 and stated that:
each change is initiated by the user and the app includes settings to revert to the original icon.
However, I see that section 4.6 was removed on June 10, 2024, and now shows up as "Intentionally omitted".
Does this mean that under the current guidance an app is now allowed to trigger an icon change without the user input, and does not need to provide the option to revert it back?
Thanks!
I decided to try out XCode 26.2s new AI abilities but I only get a "Your request couldn't be completed". When clicking the details button I get see this error:
InferenceError::unspecifiedUnderlyingError::Error(message: "Unknown parameter: 'tool_call_outputs'.", type: "invalid_request_error", code: Optional("unknown_parameter"), privacyPassRedemptionResponse: nil, userFacingLocalizedErrorMessage: nil)
How do I fix that?
Hi,
I'm encountering a weird issue on iOS that happens:
for files with diacritics in their name, like "Gòmez.pdf" or "Télé.mp4",
when the iPhone or iPad main language is not set to English,
if the file has been created with a relatively low-level Unix function like fopen() or copyfile().
Then, the file cannot be previsualized using QuickLook or opened using other apps. Most of the time it fails silently, but on some occasions I get the following error message: "You do not have permission to save the file "filename.pdf" in the folder "myFolder"".
The issue is present in, at least, iOS 16 and 26. It seems worse in iOS 26. It seems that all three conditions are required, I don't see the issue when the iPhone or iPad is set to use English as the main language. I also don't see the issue if I rename the files in the Files app.
I'm probably doing something wrong, but what can it be?
(it's kind of weird that my recommendation for users becomes: if you want to use international characters in your file names, you need to set the iPad language to English...)
Hello,
My app has been in “Waiting for Review” since Feb 13. I’ve contacted Apple Support via Contact Us but received no response.
Any advice on how to escalate would be appreciated.
Thank you!
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Tags:
App Review
App Store Connect
App Submission
I have paid for the enrollment membership program 7 days ago.
Yet I always see the message saying "Complete your purchase to continue the enrollment".
Do I have to wait more ? Should I try paying a second time ?
Will the end of my membership be extended by that waiting period ?
Despite two support requests, I am still left waiting without knowing if I have to do something or not.
I feel like this is really unprofessional from a multi-billion dollars company...
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Area
Health & Fitness → HealthKit → Health Records (FHIR Ingestion)
Summary
On devices running iOS 26.2, FHIR Clinical Records successfully connect and validate, but no data (Procedure, DiagnosticReport, Observation, etc.) is ingested into the Health app.
The same FHIR server and patient connection works correctly on iOS 18.1, where all data syncs and displays as expected.
On iOS 26.2:
FHIR validation passes in Health Records
“Last Download Date” updates
Patient data is visible in connection
No clinical data appears in Health app
No apps are listed under Privacy → Health
Device shows “No Data Found”
Crash logs show healthappd terminating during ingestion
This appears to be a regression in the HealthPlatform / HealthKit ingestion pipeline in iOS 26.
Steps to Reproduce
Use an iPhone running iOS 26.2
Open Health app
Add Health Record from FHIR server
Authenticate successfully
Confirm FHIR validation screen shows all resources as “Passed”
Wait for sync to complete
Expected Result
Procedures, DiagnosticReports, Observations, etc. should appear in Health app
Data should be written to HealthKit
Apps should appear under Settings → Privacy & Security → Health
Actual Result
No data appears in Health app
No Procedures, DiagnosticReports, Observations, etc.
Apps section under Health permissions shows “None”
Device shows “No Data Found”
Last Download Date updates correctly
Validation Results (All Passed)
The following FHIR resources show “Passed” in Health validation:
AllergyIntolerance
Condition
DiagnosticReport
DiagnosticReport-ClinicalNotes-Cardiology
DiagnosticReport-ClinicalNotes-Pathology
DiagnosticReport-ClinicalNotes-Radiology
DocumentReference-ClinicalNotes
Immunization
MedicationRequest
Observation-Labs
Observation-VitalSigns
Patient
Procedure
Server responses are correct and return expected data when tested via Postman.
Crash Log Details
Crash occurs in process:
healthappd
Frameworks involved:
HealthPlatform.framework
HealthKit
Combine
Exception:
EXC_BAD_ACCESS
SIGKILL
EXC_ARM_PAC_FAIL
Thread:
com.apple.HealthKit.HKHealthStoreImplementation.client
Stack trace includes:
objc_msgSend
HKSharedSummary
DictionaryStorage.deinit
swift_release_dealloc
objc_destructInstance
Publishers.MergeMany
Future.init
This indicates the ingestion pipeline crashes before data is written to HealthKit.
Comparison Across OS Versions
iOS Version
Result
iOS 18.1
Data syncs correctly
iOS 26.2
No data syncs, healthappd crash
Same:
Same FHIR server
Same patient
Same authentication
Same device model
Same iCloud settings
Additional Notes
OAuth flow succeeds
FHIR validation passes
Server responses are correct
Postman returns correct JSON
No TLS errors
No permission errors
Issue only occurs on iOS 26+
This appears to be a regression in the FHIR ingestion engine introduced after iOS 18.1.
Topic:
App & System Services
SubTopic:
Health & Fitness
Area
Health & Fitness → HealthKit → Health Records (FHIR Ingestion)
Summary
On devices running iOS 26.2, FHIR Clinical Records successfully connect and validate, but no data (Procedure, DiagnosticReport, Observation, etc.) is ingested into the Health app.
The same FHIR server and patient connection works correctly on iOS 18.1, where all data syncs and displays as expected.
On iOS 26.2:
FHIR validation passes in Health Records
“Last Download Date” updates
Patient data is visible in connection
No clinical data appears in Health app
No apps are listed under Privacy → Health
Device shows “No Data Found”
Crash logs show healthappd terminating during ingestion
This appears to be a regression in the HealthPlatform / HealthKit ingestion pipeline in iOS 26.
Steps to Reproduce
Use an iPhone running iOS 26.2
Open Health app
Add Health Record from FHIR server
Authenticate successfully
Confirm FHIR validation screen shows all resources as “Passed”
Wait for sync to complete
Expected Result
Procedures, DiagnosticReports, Observations, etc. should appear in Health app
Data should be written to HealthKit
Apps should appear under Settings → Privacy & Security → Health
Actual Result
No data appears in Health app
No Procedures, DiagnosticReports, Observations, etc.
Apps section under Health permissions shows “None”
Device shows “No Data Found”
Last Download Date updates correctly
Validation Results (All Passed)
The following FHIR resources show “Passed” in Health validation:
AllergyIntolerance
Condition
DiagnosticReport
DiagnosticReport-ClinicalNotes-Cardiology
DiagnosticReport-ClinicalNotes-Pathology
DiagnosticReport-ClinicalNotes-Radiology
DocumentReference-ClinicalNotes
Immunization
MedicationRequest
Observation-Labs
Observation-VitalSigns
Patient
Procedure
Server responses are correct and return expected data when tested via Postman.
Crash Log Details
Crash occurs in process:
healthappd
Frameworks involved:
HealthPlatform.framework
HealthKit
Combine
Exception:
EXC_BAD_ACCESS
SIGKILL
EXC_ARM_PAC_FAIL
Thread:
com.apple.HealthKit.HKHealthStoreImplementation.client
Stack trace includes:
objc_msgSend
HKSharedSummary
DictionaryStorage.deinit
swift_release_dealloc
objc_destructInstance
Publishers.MergeMany
Future.init
This indicates the ingestion pipeline crashes before data is written to HealthKit.
Comparison Across OS Versions
iOS Version
Result
iOS 18.1
Data syncs correctly
iOS 26.2
No data syncs, healthappd crash
Same:
Same FHIR server
Same patient
Same authentication
Same device model
Same iCloud settings
Additional Notes
OAuth flow succeeds
FHIR validation passes
Server responses are correct
Postman returns correct JSON
No TLS errors
No permission errors
Issue only occurs on iOS 26+
This appears to be a regression in the FHIR ingestion engine introduced after iOS 18.1.
Topic:
App & System Services
SubTopic:
Health & Fitness
Hi,
I’m trying to reliably detect when system screen recording finishes, and I’m observing behavior that I don’t fully understand when a Live Activity is expanded via Dynamic Island.
Environment
Devices: iPhone 16 Pro
iOS: 26.2
Xcode: 26.2
Using UIScreen.isCaptured and UIWindowScene.sceneCaptureState
Implementation:
I observe capture state like this:
private var observation: NSKeyValueObservation?
func startObserving() {
observation = UIScreen.main.observe(\.isCaptured, options: [.new]) { _, change in
print("isCaptured:", change.newValue ?? false)
}
}
I also check: window.traitCollection.sceneCaptureState
Steps to Reproduce
Start system screen recording from Control Center.
Confirm UIScreen.main.isCaptured == true.
Expand a Live Activity via the Dynamic Island (e.g. timer or call).
Observe capture state values while the Live Activity UI is expanded.
Observed Behavior
While screen recording is still active:
UIScreen.main.isCaptured becomes false
sceneCaptureState becomes .inactive
This state persists while the recording Live Activity is expanded
The system recording indicator remains visible
The device continues recording
Expected Behavior (or Clarification Needed)
My understanding was that UIScreen.isCaptured indicates whether the device screen is currently being captured (e.g. screen recording or mirroring).
However, this behavior suggests that both isCaptured and sceneCaptureState reflect whether the current scene is part of the capture surface, rather than whether device-level recording is active.
Is this the intended behavior when system-owned surfaces (such as expanded Live Activities) are promoted above the app’s scene?
If so:
Is there any supported way to reliably detect device-level screen recording state (as opposed to scene-level capture participation), in order to trigger logic when recording finishes?
Thank you for any clarification.
Topic:
UI Frameworks
SubTopic:
UIKit
I'm using NEPacketTunnelProvider to intercept DNS queries, forward them upstream,
and inject the responses back via writePacketObjects().
This works correctly for responses under ~500 bytes. For larger responses (~893
bytes, e.g. DNS CERT records), writePacketObjects() returns without error but
mDNSResponder never receives the packet — it retries 3–4 times and then times out.
What I have verified:
IP and UDP checksums are correct
UDP length and IP total length fields are correct
Maximum packet size (MTU) set to 1500 in NEIPv4Settings/NEIPv6Settings
Approaches tried:
Injecting the full 921-byte packet — writePacketObjects() succeeds but the
packet never reaches mDNSResponder
IP-level fragmentation — fragments appear to be silently dropped
Setting the TC (truncation) bit — mDNSResponder does not retry over TCP
Truncating the response to ≤512 bytes — the packet arrives but the data is
incomplete
Questions:
Is there a supported way to deliver a DNS response larger than 512 bytes
through NEPacketTunnelFlow?
Does NEPacketTunnelProvider impose an undocumented packet size limit below
the configured MTU?
Does mDNSResponder silently discard responses larger than 512 bytes when the
original query had no EDNS0 OPT record? Is there a way to signal that larger
responses are supported?
Are IP-level fragments reliably delivered through writePacketObjects()?
Tested on iOS 26.3, physical device.
Topic:
App & System Services
SubTopic:
Networking
My app has been sitting in "Waiting For Review" for a month now, this coming week. I understand that it takes some time to review an app but I didn't realize it takes this long. I have deployed apps in the past and it took 1-2 days only. I just couldn't understand what's taking it that long this time. The app ID of the app I recently submitted is 6756655072. Please provide at least a specific timeframe of the review process so developers can also manage properly. It's really difficult to be patient in something that doesn't even respond properly. Please help and hope you see this post from a dev's point of view. Thank you.
We have a VPN app that uses NEPacketTunnelProvider with includeAllNetworks = true. We've encountered an issue where push notifications are not delivered over Wi-Fi while the tunnel is active in a pre-MFA quarantine state (tunnel is up but traffic is blocked on server side), regardless of whether excludeAPNS is set to true or false.
Observed behavior
Wi-Fi excludeAPNS = true - Notifications not delivered
Wi-Fi excludeAPNS = false - Notifications not delivered
Cellular excludeAPNS = true - Notifications delivered
Cellular excludeAPNS = false - Notifications not delivered
On cellular, the behavior matches our expectations: setting excludeAPNS = true allows APNS traffic to bypass the tunnel and notifications arrive; setting it to false routes APNS through the tunnel and notifications are blocked (as expected for a non-forwarding tunnel). On Wi-Fi, notifications fail to deliver in both cases.
Our question
Is this expected behavior when includeAllNetworks is enabled on Wi-Fi, or is this a known issue / bug with APNS delivery? Is there something else in the Wi-Fi networking path that includeAllNetworks affects beyond routing, which could prevent APNS from functioning even when the traffic is excluded from the tunnel?
Sample Project
Below is the minimal code that reproduces this issue. The project has two targets: a main app and a Network Extension. The tunnel provider captures all IPv4 and IPv6 traffic via default routes but does not forward packets — simulating a pre-MFA quarantine state. The main app configures the tunnel with includeAllNetworks = true and provides a UI toggle for excludeAPNS.
PacketTunnelProvider.swift (Network Extension target):
import NetworkExtension
class PacketTunnelProvider: NEPacketTunnelProvider {
override func startTunnel(options: [String : NSObject]?, completionHandler: @escaping (Error?) -> Void) {
let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: "127.0.0.1")
let ipv4 = NEIPv4Settings(addresses: ["198.51.100.1"], subnetMasks: ["255.255.255.0"])
ipv4.includedRoutes = [NEIPv4Route.default()]
settings.ipv4Settings = ipv4
let ipv6 = NEIPv6Settings(addresses: ["fd00::1"], networkPrefixLengths: [64])
ipv6.includedRoutes = [NEIPv6Route.default()]
settings.ipv6Settings = ipv6
let dns = NEDNSSettings(servers: ["198.51.100.1"])
settings.dnsSettings = dns
settings.mtu = 1400
setTunnelNetworkSettings(settings) { error in
if let error = error {
completionHandler(error)
return
}
self.readPackets()
completionHandler(nil)
}
}
private func readPackets() {
packetFlow.readPackets { [weak self] packets, protocols in
self?.readPackets()
}
}
override func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
completionHandler()
}
override func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)?) {
if let handler = completionHandler {
handler(messageData)
}
}
override func sleep(completionHandler: @escaping () -> Void) {
completionHandler()
}
override func wake() {
}
}
ContentView.swift (Main app target) — trimmed to essentials:
import SwiftUI
import NetworkExtension
struct ContentView: View {
@State private var excludeAPNs = false
@State private var manager: NETunnelProviderManager?
var body: some View {
VStack {
Toggle("Exclude APNs", isOn: $excludeAPNs)
.onChange(of: excludeAPNs) { Task { await saveAndReload() } }
Button("Connect") { Task { await toggleVPN() } }
}
.padding()
.task { await loadManager() }
}
private func loadManager() async {
let managers = try? await NETunnelProviderManager.loadAllFromPreferences()
if let existing = managers?.first {
manager = existing
} else {
let m = NETunnelProviderManager()
let proto = NETunnelProviderProtocol()
proto.providerBundleIdentifier = "<your-extension-bundle-id>"
proto.serverAddress = "127.0.0.1"
proto.includeAllNetworks = true
proto.excludeAPNs = excludeAPNs
m.protocolConfiguration = proto
m.localizedDescription = "TestVPN"
m.isEnabled = true
try? await m.saveToPreferences()
try? await m.loadFromPreferences()
manager = m
}
if let proto = manager?.protocolConfiguration as? NETunnelProviderProtocol {
excludeAPNs = proto.excludeAPNs
}
}
private func saveAndReload() async {
guard let manager else { return }
if let proto = manager.protocolConfiguration as? NETunnelProviderProtocol {
proto.includeAllNetworks = true
proto.excludeAPNs = excludeAPNs
}
manager.isEnabled = true
try? await manager.saveToPreferences()
try? await manager.loadFromPreferences()
}
private func toggleVPN() async {
guard let manager else { return }
if manager.connection.status == .connected {
manager.connection.stopVPNTunnel()
} else {
await saveAndReload()
try? manager.connection.startVPNTunnel()
}
}
}
Steps to reproduce
Build and run the sample project with above code on a physical iOS device. Connect to a Wi-Fi network.
Set excludeAPNS = true using the toggle and tap Connect.
Send a push notification to the device to a test app with remote notification capability (e.g., via a test push service or the push notification console).
Observe that the notification is not delivered.
Disconnect. Switch to cellular. Reconnect with the same settings.
Send the same push notification — observe that it is delivered.
Environment
iOS 26.2
Xcode 26.2
Physical device (iPhone 15 Pro)
We are an App Developer for past 16 years so have seen a lot happen with App Review over the years (even back when 2 month review times were the norm). However, we have all come to expect app review to take only 48 hours typically.
We submitted several macOS Tahoe updates in Feb all approved within 24 to 48 hours, but 2 updates submitted on 25th Feb are stuck in 'waiting for review'. Very strange indeed and checking this forum, it seems many other devs are having the same issue, but from way earlier than us.
Is this a known issue currently? I suspect their are different app review queues by region and maybe even app category and popularity of the app, but even accounting for all that, this is unusual. There seems to be no logic to which apps are approved same day vs those kept stuck in 'waiting for review'.
Is it somehow possible to get the transport layer (UDP and TCP) payload amounts for TLS or QUIC connections established via the Network framework? (From within the app itself that establishes the connections.)
I am currently using the ntstat.h kernel socket calls, but I hope there is a simpler solution.
With ntstat, I have not yet been able to observe a specific connection. I have to search for the connection I am looking in all (userspace) connections.
Hello. We've developed a compatibility engine for the App Store. We collect very detailed profile information from users and use this information to dynamically calculate compatibility scores with the help of AI, recommending users to each other. The app is newly completed and we don't have any real users yet. My questions are:
We are at the initial approval stage,
Should we submit a completely empty application, or will the reviewer account create accounts with matching genders?
Should we create one or more fake users?
We have profiles that we created as demos (to inspire users) and indicated with a badge as "demo"s, but these don't appear in the "Explore" section. Should we add these people to the explore section?
Assuming the people appearing in the explore section are demos, should the "request to meet" button be active for these demo content? Should it be possible to chat with demo people?
After the submission is approved, will we delete the fake people or remove the demo people from the Explore section again? Is this possible?
Which approach is correct to avoid being perceived as "fake content"?
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store
App Review
App Store Connect
Custom Apps
Hi,
where i can change the company information? We have renamed our company and are moving to an other adress.
Topic:
Community
SubTopic:
Apple Developers
Hi,
where can i find my invoice for the subscription I pay yearly to apple?
Topic:
Developer Tools & Services
SubTopic:
Apple Developer Program
Hello,
I am seeing sever delay in app review completion of my app. The version I submitted for review is pending since Feb 15th. This is the first time it happened like this as earlier it was quicker.
I tried to contact apple through support email but have not received any update.
Any suggestions on what I can do?
Thank you.
Topic:
App Store Distribution & Marketing
SubTopic:
App Review
Hello iOS developer community,
I submitted an app on App Store Connect on February 4, 2026, but I don't understand why, as of today (March 2, 2026), its status is still "Waiting for Review."
I have emailed Developer Support but only received the following automated reply: "Thanks for submitting your support request. We’ve received your support request and will get back to you as soon as possible. Your case ID is 102824763035."
It has been over ten days, and I still haven’t received any official follow-up or updates from Apple regarding this issue.
What should I do now?
The email address I use for my Apple Developer account is