0

私の要件は、デバイスの再起動、OS の更新、アプリの再インストール、およびデバイスのリセット (つまり、ユーザーが [設定] > [一般] > [リセット] を選択する) の間、保持される UDID です。

デバイスのセキュリティを侵害しようとしているわけではありません。これは金融アプリ用です。

私が理解しているように、OpenUDID は非推奨です。ユーザーがオプトアウトできることと、セキュリティ上の理由から、SecureUDID が有用かどうかはわかりません。

広告主 ID とベンダー ID は永続的ではありません。

ID をキーチェーンまたはユーザーのデフォルト/設定に保存しても私の要件を満たしていないようです: これらのメカニズムは十分に永続的ではないようです (上記のとおり)。

誰か提案はありますか?それとも、Apple はモバイル デバイスでこれを不可能にしただけなのでしょうか?

どんな助けでも大歓迎です。

4

1 に答える 1

3

-[UIDevice uniqueIdentifier]ドキュメントによると、の公式の代替品は次のidentifierForVendorとおりです。

このプロパティの値は、同じデバイスで実行されている同じベンダーのアプリでも同じです。異なるベンダーから提供された同じデバイス上のアプリと、ベンダーに関係なく異なるデバイス上のアプリでは、異なる値が返されます。

作成するアプリは 1 つだけなので、明らかにこれは問題ではありません。ただし、このプロパティにはいくつかの制限があります。

アプリ (または同じベンダーの別のアプリ)が iOS デバイスにインストールされている間、このプロパティの値は変わりません。ユーザーがデバイスからそのベンダーのアプリをすべて削除し、その後それらの 1 つ以上を再インストールすると、値が変わります。したがって、アプリがこのプロパティの値をどこかに保存する場合は、識別子が変更された状況を適切に処理する必要があります。

つまり、この識別子は UDID に似ていますが、ユーザーが作成したすべてのアプリをデバイスから削除すると、この識別子がリセットされるという 1 つの制限があります。しかし、正直なところ、これが平均的なアプリにとって十分ではない理由がわかりません。identifierForVendorアプリを削除して再インストールした場合にのみリセットされる唯一のケース。再起動やソフトウェアの更新などを経ても持続するため、実際には問題になることはありません。


TL;DRあなたが求めていることは、Apple の規則に違反することなく現在技術的に可能ではありませんが、identifierForVendor実際には十分な代替品であるはずです。アプリの削除やデバイスのリセット後も保持される識別子が必要になる正当な理由は 1 つも思いつきません。

于 2013-07-10T03:44:41.670 に答える