我實現了這個方法來獲取advertisingIdentifier
和identifierForVendor
:的advertisingIdentifier和identifierForVendor回報「00000000-0000-0000-0000-000000000000」
- (NSString *) advertisingIdentifier
{
if (!NSClassFromString(@"ASIdentifierManager")) {
return [OpenUDID value];
}
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
- (NSString *) identifierForVendor
{
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
}
return @"";
}
- (BOOL)isAdvertisingTrackingEnabled
{
if (NSClassFromString(@"ASIdentifierManager") && ![[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
return NO;
}
return YES;
}
在模擬器一切工作應該是,我可以得到2個字符串ID表示。
但是當我使用iOS 6.0(10A403)從iPhone 3GS運行時,這兩種方法返回「00000000-0000-0000-0000-000000000000」作爲標識符。 已經完成:
- 重新啓動設備
- 刪除應用程序,並重新安裝
- 創建和特設的構建,安裝,刪除,並從另一個應用程序重新安裝
- 運行這段代碼
- 測試在iOS 6.0(10A403)的iPad 2上,一切都變成了好了(我有正確的標識符)
這似乎是正確的,因爲我已經在蘋果Apple搜索後發現了(https://devforums.apple.com/search.jspa?resultTypes=MESSAGE&peopleEnabled=true&q=00000000-0000-0000-0000-000000000000)論壇(你需要用你的開發者帳號登錄) –
蘋果如何移除某些東西(UID)並將其替換爲*不起作用*。 –
我們剛剛更新了一些設備到iOS 6.0.1的無線和'identifierForVendor'似乎是固定的。 – MattP