Hello!
Need to develop Network Etension Packet Tunnel Provider for MacOS. Previously been developing NE for iOS. There are some limits and mobile application special things. Got some questions because of it:
- What kind of limits for NE in MacOS? Is it the same like for iOS? (Memory, traffic, etc).
- How it interacting with main application?
- Is there something very specific for MacOS implementaion of NE?
- Is there examples or manuals of NE especially designated for MacOS?
While they share a lot of common architecture, which means you’ll be able to share a lot of code, there are significant differences between NE packet tunnel providers on macOS and iOS.
Foremost is that macOS allows a packet tunnel provider to be packaged as either an app extension or a system extension, whereas iOS only supports appex packaging. Packaging as a sysex allows your product to be distributed outside of the Mac App Store. See TN3134 Network Extension provider deployment for all the details.
If you stick with appex packaging then things are very similar to iOS. If you switch to sysex packaging there are significantly more changes:
-
You need to activate your sysex with the System Extensions framework.
-
Your provider then runs inside your sysex.
-
Which runs as root, although still sandboxed.
-
And that presents some exciting challenges for app-to-provider IPC.
Oh, and with regards the iOS memory limits, those do not apply on macOS.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"