Three platforms, three system boundaries
All three use the same Clash Core data plane, but Apple exposes different network metadata, storage, and interaction surfaces on each platform. A shared core does not make every operating-system capability identical.
| Capability | iOS / iPadOS | macOS | tvOS |
|---|---|---|---|
| Core mihomo YAML semantics | Supported | Supported | Supported |
| Packet Tunnel | Supported | Supported | Supported |
| EasyTier in SDK snapshot 7ea70d1 | REJECT placeholder; connections refused | Implementation included; IPv4 overlay | REJECT placeholder; connections refused |
tun.stack | gVisor / System / Mixed | gVisor / System / Mixed | gVisor / System / Mixed |
| Process name, path, and UID routing | No reliable process identification | Supported where connection information is available | No reliable process identification |
| App signing or team-ID rules | Unsupported | Unsupported | Unsupported |
| Add configuration | Profile URL or local YAML | Profile URL or local YAML | Profile URL |
| Remote Profile | Supported | Supported | Supported |
| HTTP providers | Clash Core-managed | Clash Core-managed | Clash Core-managed |
| Policy selection and Fake IP state | Saved subject to settings and storage | Saved subject to settings and storage | Caches may be lost |
| Linux iptables / mark / TPROXY | Not applicable | Not applicable | Not applicable |
Active Include All Networks on iOS/macOS changes System/Mixed to gVisor; tvOS keeps that option off. TUN UID, package, and source-interface filters do not operate on any of the three platforms. macOS process/UID rules use a separate mechanism. See NE/TUN platform differences and source version scope.
On iOS/tvOS, process patterns may match empty identities; UID rules have separate removal handling. See process routing.
System versions
- iOS and iPadOS 15 or later
- macOS 13 or later
- tvOS 17 or later
Use the platform and status filters in the complete field table when you need one exact field.