
HostNameは、サードパーティ製アプリがcom.apple.developer.device-information.user-assigned-device-nameエンタイトルメントなしでユーザーのデバイス名にアクセスできる方法を示すサンプルアプリケーションです。
iOS 16で、Appleはcom.apple.developer.device-information.user-assigned-device-nameエンタイトルメントを追加し、サードパーティ製アプリがデバイス名によるユーザーのフィンガープリンティングを行うことを防ぎました。しかし、その過程でProcessInfo.processInfo.hostName APIが壊れてしまい、サードパーティの開発者がエンタイトルメントなしでデバイスのネットワークホスト名を取得できるようになりました。ホスト名はデバイス名と完全に1対1で一致するわけではありませんが、ほぼ同等です。例えば、私のデバイスはAstronaut Slothという名前で、ホスト名はAstronaut-Slothになります。
サードパーティの開発者がProcessInfo.processInfo.hostName APIにアクセスすると、ユーザーには「がローカルネットワーク上のデバイスと通信することを許可」というプロンプトが表示されます。iOS 15では、ユーザーがこのAPIを拒否すると、ProcessInfo.processInfo.hostName APIはlocalhostを返していました。しかし、iOS 16ではこれも壊れており、ユーザーの入力に関わらず常にデバイス名が返されるようになりました。