iOSアプリ開発している際に、端末を特定したい要件が入っています。
基本的にデバイスの固有情報をSwiftからUDIDやPhoneNumberを取得するのは非推奨ということで、端末固有の番号を生成するUUIDを端末特定に用いられることが多いと考えています。
ただ、今回の目的は別の外部からの情報と紐づけを行いたいので、アプリ内部で生成したUUIDでは目的を達成できないのではないかと。
そうなると、デバイス名を取得できればいいと考えているものの、Swiftでいう下記のコードはiOS16以降で実行すると
log.trace("name:\(UIDevice.current.name)")
無常にも結果は”iPhone”と返ってきました。
The entitlement for accessing the user-assigned device name instead of a generic device name
com.apple.developer.device-information.user-assigned-device-name | Apple Developer Documentation
いくつかの条件をクリアして権利を取得することができれば、デバイス名を取得することができそうだけど、正直面倒くさそう。。。
調べていると、MDM配下であれば設定値をプロファイルに追加で登録できそう
iOSアプリで端末のシリアル番号を取得する方法(MDM必須) #Swift – Qiita
ただ、ここで述べられている、「アプリ管理設定プロファイル」が、今回の案件で使っているMDMで言うところの何に当たるのかが不明。
このあたりはMDMを触っていないのでなんとも・・・。構成プロファイルとはまた別な気もするので確認かなぁ。