Post

Replies

Boosts

Views

Activity

Reply to Error when updating system extension
I don't think the problem is coming from the macOS instance itself as the problem does not occur when the extension is updated using an installation package. The problem only happens when replacing the system extension and its wrapper .app using basic NSFileManager APIs. I diffed the 2 cases and there are no differences. Same files, same contents. And anyway spctl and codesign are happy. I tried different macOS versions in VMs (14, 15). Same result. What I'm also observing is that after updating the system extension using an installation package, just using the NSFileManager APIs is going to work fine when reverting to any version that has been previous installed via an installation package or updating to version that has been previously updated via an installation package.
Topic: Code Signing SubTopic: Notarization Tags:
1d
Reply to How many instances of the same NEFilterDataProvider can there be in a running NE?
I don't have logs, only a memgraph, so I can't say whether there were 2 starts logged. The 2 instances are referenced by a collection object (owned by a different class instance). The data filter instance adds itself to the collection from the startFilterWithCompletionHandler: method and removed itself from the collection from the stopFilterWithReason: method. So the most probable hypothesis is that the stopFilterWithReason: was not called. Which would be more a bug in the NetworkExtension framework. I haven't been able to reproduce this case so far (like by disabling/enabling the Network filter from the System Settings).
Jul ’25
Reply to Launch Constraint, SIP and legacy launchd plist
Feedback ticket for the documentation: FB17345983                  But as a third-party developer I’m not sure that’s a significant restriction. If you’re building your own daemon or agent, you can bake spawn constraint into its code signature. This would protect the daemon or agent from being launched by an unexpected executable. BUT this would not prevent the launchd plist from starting an executable at the path pointed by the plist but which is not the expected executable.
Topic: Privacy & Security SubTopic: General Tags:
Apr ’25
Reply to What's the idea behind the changes in the Objective-C flavor of the Foundation documentation?
IMHO, it matters considering that: this is the Objective-C flavor of the documentation. the prototype of the method returns a BOOL. the title of the chapter is "Return value". The type is a BOOL. for more than 30 years, it has been YES or NO (e.g. https://www.nextop.de/NeXTstep_3.3_Developer_Documentation/Foundation/Classes/NSDictionaryClassCluster.htmld/index.html). It's a documentation so I don't see how the fact that TRUE, true, YES or 1 are all the same matters.
Apr ’25