0

5 月 1 日以降、Apple は、uniqueIdentifier にアクセスする新しいアプリとアップデートを拒否します。彼らは iOS 6.x でいくつかの新しいメソッドを導入しましたが、これは良いことですが...古いバージョンの SDK でアプリケーションを実行する必要がある場合はどうすればよいでしょうか? したがって、私のコードは次のようになります。

if ([UIDevice instancesRespondToSelector:@(identifierForVendor)]) {
     deviceId = [UIDevice currentDevice] identifierForVendor];
} else {
    // WHAT SHOULD BE HERE?
}

古い SDK の場合、開発者は何を使用すればよいですか? さらに、ユーザーが OS のバージョンをアップグレードすると値が異なることがわかったとしても、これは明らかに悪いことです。同じデバイスに対して 2 つの異なる ID を持つことになります。

4

1 に答える 1

1

古い SDK の場合、開発者は何を使用すればよいですか?

Appleは、数バージョン以上前の SDK でビルドされたアプリを受け入れないため、考えている SDK を使用するオプションがない場合があります。-uniqueIdentifierサポートされている最小の iOS バージョンを古いバージョンに設定することは引き続き可能ですが、 6.0 より前のデバイスで実行している場合でも使用できない可能性があります。

-[UIDevice uniqueIdentifier]は iOS 5.0 から非推奨になったため、廃止されるという事実に対処するのに 2 年近くかかりました。この時点で、UDID を使用する別の更新を忍び込ませようとしても遅すぎます。UDID の扱いによっては、問題が発生する可能性があります。新しいルールの精神の範囲内にある UDID を置き換えるためのいくつかの優れたソリューションがありますが、それらにシームレスに切り替えるためのウィンドウは多かれ少なかれ閉じられています。

たとえユーザーがOSのバージョンをアップグレードすると値が異なることを発見したとしても、これは明らかに悪いことです.同じデバイスに対して2つの異なるIDを持つことになります.

UDID が非推奨になった理由を考えてみましょう。ユーザーは、許可なくデバイスを追跡できるようになることを望んでおらず、Apple は、あなたがそれを許可していると見なされることを望んでいません。そのため、UDID を使用ずに自分に合った解決策を見つけたとしても、スキームがユーザーが行っている追跡をオプトアウトすることを許可していない場合は、拒否される可能性があります。

于 2013-04-27T21:14:15.090 に答える