iPhone udidをサーバーに転送することは許可されていますか?
質問
私のアプリには、各アプリユーザーを識別する必要がある機能があります。アプリをサーバーに送信することを計画しています。サーバーは、後で使用するために保存します。私はそれが個人情報だとは思わないが、AppleのAppstoreで承認可能かどうかを知りたい。
そして、電話番号の転送を含む。 WhatsAppの場合、友達の数字を自動的に認識します。ある種のデータ転送がなければ、それは不可能だと思います。
解決
デバイスをサーバーに転送することができます。それが意図したものです。
他のヒント
UDIDへのアクセスは、App Storeからの拒否の根拠です。 udidを使用する代替品を参照してください https://stackoverflow.com/a/10037636/1286639
アプリが何をしているのかが秘密ではないことを確認してください。電話番号を転送してサーバーにそれらを保存する場合は、アプリの説明でこれを明確に述べたり、初めてユーザーに許可を求めてください。
それが実際に拒否される理由です。私は、あなた自身のサーバー/サービスにユーザーのデータを保存することについて明確ではないと思います。
尿虫とUUIDの違いに注意することが重要です。
udid「一意のデバイスID」はハードウェア固有です。特定のデバイスの変更はありません。このため、プライバシーの懸念となっており、Appleはこれを使用しようとするアプリをブロックしています。その結果、Appleは、特に広告使用のために、オプトアウト可能な「デバイスID」ハッシュを生成しました。この新しいIDハッシュはIFAと呼ばれ、iOS 6.0+で利用可能です。
uuid「普遍的に一意のID」はハードウェア固有ではありません。デバイスを識別するために使用されるハッシュです。しかし、特に絶対的な値ではありません。たとえば、PhoneGapはデバイスプロパティに基づいてUUIDを生成します。これは、device.uuidを実行すると得られるものです。アプリを削除して再インストールすると、新しいIDハッシュが表示されます。 UUIDはAppleによってブロックされていません。
あなたの場合の最良の解決策は、iOS <6.0のバックアップとしてOpenudidを使用するIFAを使用することだと思います。
これが私たちが使用するコードです。 IFAが利用できない場合は、Openudidを取得します。 [[OpenUdidをインストールする必要があります。詳細については、https://github.com/ylechelle/openudid。]]]
NSString* uuid = nil;
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
// IOS 6 new Unique Identifier implementation, IFA
uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
// Before iOS6 (or if IFA disabled) you shoud use a custom implementation for uuid
// Here I use OpenUDID (you have to import it into your project)
// https://github.com/ylechelle/OpenUDID
NSString* openUDID = [OpenUDID value];
uuid = [OpenUDID value];
}