In the WWDC 2021 session Mitigate fraud with App Attest and DeviceCheck it is said that:
App Attest is supported on devices that have a Secure Enclave, but there are cases, such as app extensions, where isSupported will still return false.
The documentation shows that the following Macs have a Secure Enclave:
MacBook Pro computers with Touch Bar (2016 and 2017) that contain the Apple T1 Chip
Intel-based Mac computers that contain the Apple T2 Security Chip
Mac computers with Apple silicon
I'm using a 2018 15" MacBook Pro containing a T2 Security Chip for testing, however, DCAppAttestService.shared.isSupported always returns false in native macOS or Catalyst apps. DCDevice.current.isSupported also returns false.
The documentation for DCAppAttestService shows availability on "macOS 11.0+" and "Mac Catalyst 14.0+". It appears to have been added in the macOS 11.3 SDK included in Xcode 12.5. DCDevice shows availability on "macOS 10.15+" and "Mac Catalyst 13.0+". Although both APIs are available on the listed OSes, I only ever see isSupported == false.
Are App Attest or DeviceCheck functional on any Macs? If so:
Are there more specific Macs that support the feature (e.g., Apple Silicon Macs only)?
Are there any additional steps that need to be taken to use them (e.g., changes to entitlements, provisioning profiles or distribution through the Mac App Store)?
In native macOS apps, it doesn't actually appear to be possible to add the App Attest capability in Xcode under "Signing & Capabilities".
If not, I think it would be good to update the documentation with this limitation since I'd expect them to work based on the availability being "macOS 10.15+" or "macOS 11.0+" for DeviceCheck and App Attest, respectively. I imagine most others would make the same assumptions.