2011-12-25 23 views
3

私はネイティブのiOSアプリケーションを開発しています。私は客観的なCとリンゴのデバイス開発の両方の初心者です。iDeviceユーザーを特定する方法はありますか?

私のアプリでは、ユーザーを独自の方法で識別する必要があります。私は、現在のApple IDを取得し、それを私の目的のためにオンラインデータベースに保存するのが最善の解決策だと思っています。唯一のキャッチは、ユーザーが変更できることです。だから、私はAppleが実際のアカウントを一意に区別するために別の識別子を持っていなければならないと思っている。

私はそれを得る方法はありますか?私が逃した何か?いくつかのクラス?事前に

おかげで... ピート

+0

を、あなたは利用者を識別するのでしょうか?これは最高の答えを導くでしょう。そうする方法は数多くあります。ハードウェアIDを使用してデバイス*を識別できます。ゲームを作成している場合は、Game Centerのアカウント統合を使用してプレーヤーを識別できます。 Apple IDを使用して問題を特定しました。つまり、iOSデバイスを使用せずに、または変更することができます。 –

+0

これは新聞アプリで、既に印刷購読を購入したユーザーに無料のオンライン購読を許可する必要があります。私のコンセプトは、ユーザーを顧客に結びつけるということです(これは、ゼロ価格のアプリ内購入を元に戻すことです)。 –

答えて

12

すべてのIOSデバイスを持っていると一意の識別子UDID、ウィッヒが通過づけしている:

[[UIDevice currentDevice] uniqueIdentifier] 

しかし、これはAppleが推奨され、いくつかのアプリはによって拒否得ていますこれは基本的にAppleがデバイスを一意のものとして追跡したり治療したりすることを望んでいないからです。なぜなら、デバイスを販売したり他の人と交換することができるからです。

あなたができることは、UUID which is a unique identifierを作成してキーチェーンに保存することです。つまり、このユニークIDは、アプリが削除されても電話のままになります。工場出荷時の設定に戻すと消えます。リンゴが望むものです。

別の解決策は、このことができますopenUDIDまたはUIDevice-with-UniqueIdentifier-for-iOS-5

希望のようなデバイスごとにユニークIDを生成します外部ライブラリを使用することです!

+0

偉大な、それは 'それです...ありがとう! P –

2

一意のユーザー識別子を取得する方法はありません(潜在的にユーザーにオプションの応答と未確認応答を尋ねることを除いて)。 Appleのプライバシーポリシーは、どのような方法でもアプリユーザーの情報を特定できないように見えます。

iOSデバイスのUDIDはAppleによって推奨されていないだけでなく、デバイスに所有者が変更されている可能性があり、1人のユーザーがすべて異なるUDIDを持つ複数のデバイスを持つ可能性があります。

2

[[UIDevice currentDevice] uniqueIdentifier]は、になりました。です。

あなたが代わりにこれを使用する必要があります。どのような目的のために

UIDevice *device = [UIDevice currentDevice]; 
NSUUID *uniqueIdentifier = [device identifierForVendor]; 

UIDevice Class Reference

+0

identifierForVendorは、場合によっては変更されるため、信頼できる一意の識別子ではありません。唯一本当に信頼できる一意の識別子はGame CenterのplayerIDプロパティですが、残念ながらゲームでのみ使用できます。 – Heitor

関連する問題