我在所有應用程序中都使用[[UIDevice currentDevice] uniqueIdentifier]
,Apple不允許再使用uniqueIdentifier
。 我需要一些東西來代替uniqueIdentifier
,我可以用它來識別用戶,即使用戶刪除了應用程序並重新安裝它(也讓我的應用程序被蘋果認可)。方法[[UIDevice currentDevice] uniqueIdentifier]已不再被允許,我需要替代品
感謝
我在所有應用程序中都使用[[UIDevice currentDevice] uniqueIdentifier]
,Apple不允許再使用uniqueIdentifier
。 我需要一些東西來代替uniqueIdentifier
,我可以用它來識別用戶,即使用戶刪除了應用程序並重新安裝它(也讓我的應用程序被蘋果認可)。方法[[UIDevice currentDevice] uniqueIdentifier]已不再被允許,我需要替代品
感謝
的documentation建議什麼在本節做。
特別注意事項
不要使用唯一標識符屬性。要創建特定於您的應用程序的唯一標識符,可以使用 調用CFUUIDCreate函數來創建UUID,並使用NSUserDefaults類將其寫入 默認值數據庫。
爲了確保唯一標識符刪除你應該把它存放在keychain,而不是在NSUserDefaults的應用程序後,仍然存在。使用鑰匙串,您還可以使用keychain access groups在同一設備上的所有應用程序中共享相同的唯一ID。這種方法可以防止用戶在設備不再使用後錯誤地跟蹤用戶,並且可以在他們從備份中恢復的任何新iDevice上使用。
你的意思是我可以添加到設備鑰匙串的UUID和刪除應用程序,當我再次安裝我檢索的價值,並再次使用它? – user784625 2012-02-22 14:12:35
是的,鑰匙串項目保持不變(只要設備未被擦除並設置爲新設備),並且當您使用訪問組時,您可以允許其他應用程序訪問相同的鑰匙串值。 – Joe 2012-02-22 14:26:10
還有一個問題,我可以使用MAC地址,並且仍然可以讓我的應用獲得蘋果的認可嗎? – user784625 2012-02-22 14:31:36
更新的iOS 7和之前:與digipeople的黑客
+ (NSString*)deviceModel
{
static NSString *device_model = nil;
if (device_model != nil)
return device_model;
struct utsname systemInfo;
uname(&systemInfo);
NSString *str = @(systemInfo.machine);
return device_model;
}
此代碼的問題在於,每次在iOS 6或更高版本中調用該代碼時都會返回不同的值。要成爲'uniqueIdentifier'替代品,它需要持久。 – kamprath 2013-08-12 01:35:21
:
+ (NSString *)uniqueDeviceIdentifier
{
NSString *device_id = nil;
if ([[self deviceModel] isEqualToString:@"Simulator iOS"]) {
// static id for simulator
device_id = @"== your random id ==";
}
else if (CurrentIOSVersion >= 6.f) {
// iOS 6 and later
device_id = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
}
else {
// iOS 5 and prior
SEL udidSelector = NSSelectorFromString(@"uniqueIdentifier");
if ([[UIDevice currentDevice] respondsToSelector:udidSelector]) {
device_id = [[UIDevice currentDevice] performSelector:udidSelector];
}
}
NSLog(@">>>>>> device_id: %@", device_id);
return device_id;
}
設備型號就可以透過。
修復它以避免應用程序崩潰。
systemId = [[NSUUID UUID] UUIDstring];
可能複製 - [唯一標識符的UIDevice棄用 - 什麼現在要做的(http://stackoverflow.com/q/6993325/194544) – beryllium 2012-02-22 14:06:27