Skip to content

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.

CapabilityiOS / iPadOSmacOStvOS
Core mihomo YAML semanticsSupportedSupportedSupported
Packet TunnelSupportedSupportedSupported
EasyTier in SDK snapshot 7ea70d1REJECT placeholder; connections refusedImplementation included; IPv4 overlayREJECT placeholder; connections refused
tun.stackgVisor / System / MixedgVisor / System / MixedgVisor / System / Mixed
Process name, path, and UID routingNo reliable process identificationSupported where connection information is availableNo reliable process identification
App signing or team-ID rulesUnsupportedUnsupportedUnsupported
Add configurationProfile URL or local YAMLProfile URL or local YAMLProfile URL
Remote ProfileSupportedSupportedSupported
HTTP providersClash Core-managedClash Core-managedClash Core-managed
Policy selection and Fake IP stateSaved subject to settings and storageSaved subject to settings and storageCaches may be lost
Linux iptables / mark / TPROXYNot applicableNot applicableNot 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.