Whenever I'm working on my content filter for macOS, I usually keep SIP disabled and with developer mode on (systemextensionsctl) as a convenience.
The issue: content filter stopped receiving any kind of traffic when SIP is disabled. I don't see any log lines in Console for new flows, and the filter can't block anything, since it doesn't get any flows. Issue started yesterday.
I tried several things and did some investigation, here are some findings:
Reboot: rebooting did not fix the issue (while keeping SIP disabled).
Reenabling SIP fixes the issue for both App Store and Xcode builds.
Code: latest published version also stopped working with SIP disabled. This version is stable and confirmed to work as reported by users.
Clean Xcode + rebuild did not fix the issue.
Lastly, I inspected the logs and did not see any errors standing out. I noticed the filter does get started (startFilter is called) and registered, but after that there are no errors/new flows or anything, just silence (logs below).
com.apple.networkextension default 15:22:22.270746-0300 : Calling startFilterWithCompletionHandler
com.extension.MyExtension info 15:22:22.270998-0300 Success applying filter settings
com.apple.networkextension debug 15:22:22.272705-0300 NESMFilterSession[My Extension:B9F3F30E-E0E0-4E53-8B32-EFC285E3CF6A]: Checking providerBundleIdentifier com.extension.MyExtension for pluginClass 4
com.apple.networkextension debug 15:22:22.272717-0300 Checking for com.extension.MyExtension - com.apple.networkextension.filter-data
com.apple.networkextension default 15:22:22.272728-0300 Found 1 registrations for com.extension.MyExtension (com.apple.networkextension.filter-data)
com.apple.networkextension debug 15:22:22.272778-0300 NESMFilterSession[My Extension:B9F3F30E-E0E0-4E53-8B32-EFC285E3CF6A]: com.extension.MyExtension is registered for pluginClass 4
Here are some additional info about my system:
macOS 15.1
Between yesterday and today, the only new Installation is XProtectPlistConfigData at 12:10AM
Thanks!
Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.
Post
Replies
Boosts
Views
Activity
Hello.
tell application "Microsoft Excel"
Where can I find complete help for all Excel commands?
Hey team, we are having some unexpected transactions being sent to us by the Store Kit service. Right after we process a transaction, another transaction, with a different id, is received on paymentQueue(_:updatedTransactions:) without the user interaction.
This is breaking some of our internal flows and there were some reports of users being charged twice. I'm trying to understand where did these transactions came from and how can we avoid that. Can you help me?
I've attached some transactions that had this issue:
match_incomplete_purchases.csv
I use the write-review query parameter in my App Store URL to bring up the review prompt in the App Store app:
https://apps.apple.com/app/id0123456789?action=write-review
(0123456789 is just an example ID, obviously replace that with your app ID)
This is exactly what is supposed to be done as per the documentation: https://developer.apple.com/documentation/storekit/requesting_app_store_reviews#4312600
However, on macOS it just opens the product page as if I never put the query parameter in the URL. It works fine on iOS 18.2.
I am using macOS 15.2 beta 3 (24C5079e)
Feedback ID: FB15866683
I recently updated both my phones iPhone 14 Pro Max and iPhone 16 Pro Max on iOS 18.1, and after update when I open camera and go to SLO-MO the screen starts flickering, even though after recoding when I play the video. Video is playing the same with the flickering screen. is it iOS update issue or something else.
I am unable to get a result from a simple AppleScript calculator set of commands.
The calculator shows the right result, but I cannot capture the result to place in the clipboard and read it.
I also ran this in the script editor.
Python File
After update to MacOS Sonoma 14.7.1 (23H222) my external monitor immediately started to flicker (noticeable even on 100Hz refresh rate). During the update the external monitor was connected to the laptop. Flickering persist on personal Windows laptop too. Tried to connect/disconnect current cables, flickering persists. Tried to switch to another cable Display port to HDMI, flickering persists. Monitor now is basically unusable, the update damaged it.
I have seen these 2 articles that I have attached below that seem to offer some assistance. But is there a more modern way to share secured information between macOS users on same machine?
Entitlements
File System Protections
STEPS TO REPRODUCE
do
{
let baseDir = try fileMgr.url(for: .applicationSupportDirectory, in: .localDomainMask, appropriateFor: nil, create: true).appendingPathComponent("com.MyCompany.AppName", conformingTo: .directory)
try fileMgr.createDirectory(at: baseDir, withIntermediateDirectories: true, attributes: nil)
}
catch
{
Swift.print("ERROR: can't create baseDir \(baseDir)")
exit(0)
}
We have a user that's shared screenshots indicating that they're the recipient of a subscription to our app through Family Sharing, but when we look for the transaction in Transaction.currentEntitlements there's nothing there, even after calling AppStore.sync. Should we expect to see a transaction in current entitlements? How can we determine whether it's our bug or Apple's?
The background asset keys (BAEssentiaMaxInstallSize/BAMaxInstallSize) referenced in the app's Info.plist will be displayed to users on the App Store, as outlined in the WWDC video and supported by Apple’s documentation.
Could you please clarify where exactly on the App Store's product page these values will be visible?
Is the size displayed on the App Store a sum of the app bundle size and the size specified in these keys within the Info.plist?
System Information: iPhone 13, iOS 17.6.1
Steps to reproduce:
Open my app, causing it to register for an APNS token
Kill my app to make sure it is not in the foreground
Send a push notification with a payload similar to this:
{"aps":{"alert":{"title":"My App Name","body":"10:24am 🚀🚀🚀"}},"price":19,"clock":175846989,"time":1731001868.379526}
And the following attributes:
Expiry: (Date that is 7 days from now)
Type: Alert
Priority: High (10)
Payload Size: 141 bytes
The notification appears in the Notification Center, as expected
Turn on Airplane Mode (WiFi=off)
Wait between 60 seconds - 8 hours (varies)
Send the same notification payload/attributes again
Wait between 60 seconds - 8 hours (varies)
Turn on WiFi
Wait 1-30 minutes (varies)
Expected behavior:
The notification appears in the Notification Center
Actual behavior:
Push notifications from other apps immediately appear in the Notification Center
Roughly 30% of the time: The push notification(s) from my app never arrive, even after waiting 30 minutes
Roughly 70% of the time: The notification appears in the notification center, and everything works fine
Thoughts:
Expiry must be set correctly because I've seen my notifications get queued and then delivered (correctly) in the CloudKit Push Notification tool.
Identical notifications (payload, APNS headers, etc.) are also sent to other devices at the same time. They receive the notifications just fine.
It must not be my iPhone's notification Settings, because notifications appear correctly when online
I've tried restarting the iPhone, it did not fix this issue
So it seems it must be an unexpected behavior in APNS or something broken with my specific phone? Not sure what else I could possibly do to make sure the notifications arrive.
This breaks the entire experience of my app. I need to be able to notify users of incoming messages so they do not miss them.
I am sending push notifications to the app with critical alerts, but there is a significant delay.
If the number of target devices is 1000 or less, notifications will be received normally within a few seconds to a minute.
Once the number of target devices exceeds 1000, some devices will arrive quickly (normally within a few seconds to 1 minute) and others will arrive late (3 minutes to 15 minutes, divided into hundreds of items).
In severe cases, notifications to more than 80% of devices will be delayed.
Example: If you send 3000 notifications at once,
1 minute: Notify 400 items
5 minutes: Notify 1000 items
10 minutes: Notify 1000 items
13 minutes: Notify 600 items
*The timing of 5 minutes, 10 minutes, and 13 minutes changes every time and is not at regular intervals.
We understand that according to the push notification specifications, sending several thousand messages at once is not a problem.
Please let me know if there is a rule, such as sending 1000 items at a time, in order to deliver quickly and with minimal delay.
I am encountering an issue when making an API call using URLSession with DispatchQueue.global(qos: .background).async on a real device running tvOS 18. The code works as expected on tvOS 17 and in the simulator for tvOS 18, but when I remove the debug mode, After the API call it takes few mintues or 5 to 10 min to load the data on the real device.
Code: Here’s the code I am using for the API call:
appconfig.getFeedURLData(feedUrl: feedUrl, timeOut: kRequestTimeOut, apiMethod: ApiMethod.POST.rawValue) { (result) in
self.EpisodeItems = Utilities.sharedInstance.getEpisodeArray(data: result)
}
func getFeedURLData(feedUrl: String, timeOut: Int, apiMethod: String, completion: @escaping (_ result: Data?) -> ()) {
guard let validUrl = URL(string: feedUrl) else { return }
var request = URLRequest(url: validUrl, cachePolicy: .useProtocolCachePolicy, timeoutInterval: TimeInterval(timeOut))
let userPasswordString = "\(KappSecret):\(KappPassword)"
let userPasswordData = userPasswordString.data(using: .utf8)
let base64EncodedCredential = userPasswordData!.base64EncodedString(options: .lineLength64Characters)
let authString = "Basic \(base64EncodedCredential)"
let headers = [
"authorization": authString,
"cache-control": "no-cache",
"user-agent": "TN-CTV-\(kPlateForm)-\(kAppVersion)"
]
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = apiMethod
request.allHTTPHeaderFields = headers
let response = URLSession.requestSynchronousData(request as URLRequest)
if response.1 != nil {
do {
guard let parsedData = try JSONSerialization.jsonObject(with: response.1!, options: .mutableContainers) as? AnyObject else {
print("Error parsing data")
completion(nil)
return
}
print(parsedData)
completion(response.1)
return
} catch let error {
print("Error: \(error.localizedDescription)")
completion(response.1)
return
}
}
completion(response.1)
}
import Foundation
public extension URLSession {
public static func requestSynchronousData(_ request: URLRequest) -> (URLResponse?, Data?) {
var data: Data? = nil
var responseData: URLResponse? = nil
let semaphore = DispatchSemaphore(value: 0)
let task = URLSession.shared.dataTask(with: request) { taskData, response, error in
data = taskData
responseData = response
if data == nil, let error = error {
print(error)
}
semaphore.signal()
}
task.resume()
_ = semaphore.wait(timeout: .distantFuture)
return (responseData, data)
}
public static func requestSynchronousDataWithURLString(_ requestString: String) -> (URLResponse?, Data?) {
guard let url = URL(string: requestString.checkValidUrl()) else { return (nil, nil) }
let request = URLRequest(url: url)
return URLSession.requestSynchronousData(request)
}
}
Issue Description: Working scenario: The API call works fine on tvOS 17 and in the simulator for tvOS 18. Problem: When running on a real device with tvOS 18, the API call takes time[enter image description here] when debug mode is disabled, but works fine when debug mode is enabled, Data is loading after few minutes.
Error message: Error Domain=WKErrorDomain Code=11 "Timed out while loading attributed string content" UserInfo={NSLocalizedDescription=Timed out while loading attributed string content} NSURLConnection finished with error - code -1001 nw_read_request_report [C4] Receive failed with error "Socket is not connected" Snapshot request 0x30089b3c0 complete with error: <NSError: 0x3009373f0; domain: BSActionErrorDomain; code: 1 ("response-not-possible")> tcp_input [C7.1.1.1:3] flags=[R] seq=817957096, ack=0, win=0 state=CLOSE_WAIT rcv_nxt=817957096, snd_una=275546887
Environment: Xcode version: 16.1 Real device: Model A1625 (32GB) tvOS version: 18.1
Debugging steps I’ve taken: I’ve verified that the issue does not occur in debug mode. I’ve confirmed that the API call works fine on tvOS 17 and in the simulator (tvOS 18). The error suggests a network timeout (-1001) and a socket connection issue ("Socket is not connected").
Questions:
Is this a known issue with tvOS 18 on real devices? Are there any specific settings or configurations in tvOS 18 that could be causing the timeout error in non-debug mode? Could this be related to how URLSession or networking behaves differently in release mode? I would appreciate any help or insights into this issue!
I was testing SFSpeechRecognition on my real device running ios 18.2 beta, and found that the result's "final" field is true, the result itself does not contain entire conversation's transcription. I came across some blog posts saying it's fixed in a 18.1 beta, is this not the case for 18.2 beta?
Example code:
recognitionTask = recognizer.recognitionTask(with: request) { [weak self] result, error in
guard let self = self else { return }
if let error = error {
DispatchQueue.main.async {
self.errorMessage = "Transcription failed: \(error.localizedDescription)"
self.isTranscribing = false
}
} else if let result = result, result.isFinal {
// HERE!
}
}
Is it possible for the Bluetooth permissions of an app to be turned off due to changes in the iOS application's Bluetooth library, possibly because of Apple's security requirements or OS-related factors?
There are two applications, Application A and Application B, that control Bluetooth devices.
Application A uses a third-party Bluetooth library to control the Bluetooth devices.
Application B also uses a third-party Bluetooth library to control the Bluetooth devices.
The Bluetooth libraries used by Application A and Application B are different, but both applications work without any issues.
However, when the Bluetooth library used in Application B was changed to the one used in Application A, the Bluetooth permissions for Application B sometimes turned off.
Since Application A and Application B operate without any issues on their own, we believe the problem is not with the Bluetooth libraries themselves.
Given the above situation, is it possible that changing the Bluetooth library used could cause the Bluetooth permissions of the app to be turned off due to Apple's security requirements or OS-related factors?
I'm wondering if setting the correct activityType after initializing CLLocationManager will make the location results more accurate.
locationManager = CLLocationManager()
locationManager.distanceFilter = 20
locationManager.activityType = .fitness
Capability to read and write ofd HFS disks on Mac has been removed since a long time.
Capability to simply read was also removed since Catalina I think.
That is surprising and sometimes frustrating. I still use a 90's MacBook for a few tasks and need from time to time to transfer files to newer Mac or read some old files stored on 3.5" disks.
Solution I use is to read the disk on an old Mac with MacOS 10.6 (I'm lucky enough to have kept one) and transfer to USB stick or airdrop…
As there is no USB port on the Macbook of course (and I have no more a working 56k modem to transfer by mail), only option if not 3,5" disk is using PCMCIA port on the MacBook for writing to an SD Card to be read in Mac Sonoma. But reading directly 3.5" disk would be great.
Hence my questions for the forum:
how hard would it be to write such a driver for READING only HFS on Mac Sonoma?
There are some software like FuseHFS. Did anyone experience it ? Did anyone have a look at the source code (said to be open source).
does anyone know why Apple removed such capability (I thought it was a tiny piece of code compared to the GB of present MacOS)?
Thanks for any insights on the matter.
We are a carrier in the US and would want documentation on implementing the native eSIM creation on the native app and install it on the device directly through the app. Core Telephony framework is available (https://developer.apple.com/documentation/coretelephony) to do that but I did not find any documentation on how to implement it by step by step process. Also we would want to understand how we can read the IMEI of the phone as we already have the carrier privileges on our developer account.
Hi,
TLDR: On iOS, when my PacketTunnel is running, can I exclude DNS requests from going into the tunnel?
I have a test app, using Apple's AsyncDNSResolver, that makes a DNS call and it works when the tunnel is not running.
If the tunnel is running it times out after 30 seconds and I get the error -65568.
Here's how I'm setting up the tunnel
func setup(tunnelRemoteAddress: String) {
let settings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
settings.ipv4Settings = NEIPv4Settings(addresses: [tunnelRemoteAddress], subnetMasks: ["255.255.255.255"])
settings.ipv4Settings?.includedRoutes = [NEIPv4Route.default()]
let proxySettings = NEProxySettings()
proxySettings.httpEnabled = true
proxySettings.httpServer = NEProxyServer(address: ProxyServerConfiguration.host, port: ProxyServerConfiguration.port)
proxySettings.httpsEnabled = true
proxySettings.httpsServer = NEProxyServer(address: LocalProxyServerConfiguration.host, port: LocalProxyServerConfiguration.port)
proxySettings.excludeSimpleHostnames = true
proxySettings.exceptionList = nil
let dnsSettings = NEDNSSettings(servers: ["8.8.8.8"])
settings.dnsSettings = dnsSettings
settings.proxySettings = proxySettings
setTunnelNetworkSettings(settings) { error in
// ...
}
}
I've tried all combinations of setting/excluding the NEDNSSettings but the DNS call always fails when the tunnel is running.
Thanks for any help.
I keep getting this crash and I have no idea what is causing it. This is the stack trace:
2024-11-16_00-45-54.7074_+0100-8d446e9a50eb0be6cc826ff71526731dcb4430bc.crash
Any help would be appreciated.
Thank you