iOS16 以降でデバイスの名前を取得したい

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を触っていないのでなんとも・・・。構成プロファイルとはまた別な気もするので確認かなぁ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください