2012-01-19 13 views

答えて

2
[[UIDevice currentDevice] uniqueIdentifier] 

あなたのiPhoneの一意のIDを返します。

あなたは、いくつかのUUIDを作成する必要がある場合は、ちょうどこのメソッドを使用します。

+ (NSString *)GetUUID 
{ 
    CFUUIDRef theUUID = CFUUIDCreate(NULL); 
    CFStringRef string = CFUUIDCreateString(NULL, theUUID); 
    CFRelease(theUUID); 
    return [(NSString *)string autorelease]; 
} 

:ユーザーがアンインストールし、アプリを再インストールする場合CFUUIDCreateによって作成されたUUIDが一意である:あなたが取得しますが毎回新しいもの。また、UUIDが

+0

iOS5のオプションは何ですか? – Developer

+0

Xスラッシュが言及しているように、お使いのデバイスのMACアドレスを使用することができます! – Maulik

1

UUIDはiOSの5に廃止されましたが、あなたは常にMACが

How can I programmatically get the MAC address of an iphone

+1

@Xスラッシュは、ユーザーがWi-Fiやセルラー接続から前後に移動したときのネットワークインターフェイス間のMACアドレス定数ですか? – Crashalot

+0

MACアドレスは任意のネットワークインターフェイスで固定です。 WiFiネットワークカードには、例えばセルラーネットワークカードとは別のMACアドレスがあります。 – Stunner

0

Maulikが示唆されているようにもう一つの解決策と同じアドレスを使用することができます...

のiOS 5で廃止され

これは一意のファイル名を作成することについてですが、これはユニークである必要があるものに適用できます。

NSString *filePath; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"SomeDirectoryName"]; 

//Create unique filename 
CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault); 
CFStringRef newUniqueIdString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueId); 
path = [path stringByAppendingPathComponent:(NSString *)newUniqueIdString]; 
path = [path stringByAppendingPathExtension: @"MOV"]; 
CFRelease(newUniqueId); 
CFRelease(newUniqueIdString); 
0

これは、ユーザーについて尋ねているので多少話題にはなりませんが、固有のデバイス(指紋)には何かが必要な場合もあります。 Keychain Services Referenceと、kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly、およびkSecAttrAccessibleWhenUnlockedThisDeviceOnlyの3つのkSecAttrAccessibleの定数を見てください。

アップルがデバイスに結合された値を生成すると仮定すると、定数はコピー/ペースト攻撃を阻止するのに役立ちます([[UIDevice currentDevice] uniqueIdentifier]と同様)。しかし、私は実際にその行動を確認したことはありません。

関連する問題