由於OP在一條評論中提到Apple不允許訪問設備UDID,所以我們需要一種不同的方法來唯一標識用戶。
爲了獲得唯一標識用戶的標識符,您可以使用:
[[UIDevice currentDevice] identifierForVendor]
但要注意,根據蘋果的文檔:
在此屬性的值保持同時應用程序(或來自同一供應商的另一個應用程序)安裝在iOS設備上。當用戶從設備中刪除所有供應商的應用程序並隨後重新安裝其中的一個或多個應用程序時,該值會更改。使用Xcode安裝測試版本時或在使用ad-hoc分發的設備上安裝應用程序時,該值也可能會發生變化。因此,如果您的應用程序在任何位置存儲此屬性的值,則應優雅地處理標識符更改的情況。
一個可能的解決方案是將標識符存儲在NSUserDefaults中,也存儲在服務器中,並有一個邏輯,在啓動時檢查標識符是否有變化。在這種情況下,您可以在本地和服務器中更新標識符,以便爲分析提供連續性。
例如以檢查該標識符的修改:
NSString *previousUUID = [[NSUserDefaults standardUserDefaults] stringForKey:DEVICE_UUID];
NSString *currentUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
BOOL UUIDChanged = ![previousUUID isEqualToString:currentUUID];
// Handle this situation in your backend to offer continuity in your analytics
我在使用這個,沒有問題批准通過蘋果App Store的三個應用程序。
男人,如果它是如此重要的檢測應用程序的以前安裝,也許你應該考慮一個外部硬件,如藍牙適配器。 –