[解決済み] UIDevice uniqueIdentifierは非推奨 - どうしたらいいの?
質問
今、明らかになったことですが UIDevice uniqueIdentifier プロパティは非推奨です。 で iOS 5 であり、iOS 7 以降では利用できない。代替の方法やプロパティはないようで、近々公開される予定です。
私たちの既存アプリの多くは、特定のデバイスを一意に識別するためにこのプロパティに強く依存しています。 今後、この問題にどのように対処したらよいでしょうか?
からの提案は 2011年から2012年にかけてのドキュメント でした。
特別な配慮
uniqueIdentifierプロパティは使用しないでください。特定の一意な識別子を作成するには を呼び出すと、アプリの
CFUUIDCreate
関数を使用してUUID
を作成し を使用してデフォルトのデータベースに保存します。NSUserDefaults
クラスがあります。
ただし、ユーザーがアプリをアンインストールして再インストールした場合、この値は同じにはなりません。
解決方法は?
で作成されたUUIDは
CFUUIDCreate
は
は、ユーザーがアプリをアンインストールして再インストールした場合、一意である:あなたは毎回新しいものを取得します。
<ストライク しかし、あなたはそれが ではない つまり、ユーザーがアプリをアンインストールしても、再インストールしても、同じ値である必要があります。デバイスを識別する最も信頼性の高い情報はMACアドレスであるため、これにはちょっとした工夫が必要です。次のような方法があります。 MACを問い合わせる それをUUIDとして使用します。
<ストライク
<ストライク
編集する
もちろん、常に同じインターフェースのMACを問い合わせる必要があります。一番いいのは
en0
. MACは、たとえインターフェイスがIPを持たず、ダウンしていても、常に存在するのです。
2を編集します。
他の方も指摘されているように、iOS 6 以降で推奨されている解決策は
-[UIDevice identifierForVendor] です。
. ほとんどの場合、旧来の
-[UIDevice uniqueIdentifier]
(しかし、アプリの初回起動時に作成されるUUIDは、Appleが使って欲しいと思っているようです)。
<ストライク 3を編集します。 この重要なポイントは、コメントノイズの中に紛れ込まないようにするためです。 MAC をUUIDとして作成し を使用してハッシュを作成します。 . このハッシュは、再インストールやアプリの種類を問わず、常に同じ結果を作成します(ハッシュが同じ方法で行われた場合)。いずれにせよ、現在(2013年)では、iOS 6.0上で"stable"デバイス識別子が必要な場合を除き、これはもう必要ではありません。
4を編集します。 iOS 7 では、Apple は MAC を問い合わせる際に常に固定値を返すようにし、特に MACをIDのベースとする スキームです。そのため、現在では -[UIDevice identifierForVendor] です。 または、インストールごとのUUIDを作成します。
関連
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み] なぜJavaのVector(およびStack)クラスは時代遅れ、または非推奨とされているのですか?
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み] Android Nで非推奨となったHtml.fromHtmlについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] iOSアプリをApple Developer Programや脱獄せずにデバイス上でテストすることができます。
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。