2013-11-12 3 views
0

В документе TestFlight documentation говорится, что настройки идентификатора устройства в процессе производства, скорее всего, заставят ваше приложение отклоняться.TestFlight setDeviceIdentifier in production

Однако он ничего не говорит об использовании идентификатора рекламы в качестве замены. Я имею в виду, что яблоко будет отклонять его только потому, что извлечение UDID устарело в iOS 7.

С учетом сказанного, будет ли яблоко внимательным, если я буду отслеживать своих пользователей в TestFlight с использованием рекламного идентификатора?

// Obsolete in iOS 7 and Apple will reject application... 
MonoTouch.TestFlight.TestFlight.SetDeviceIdentifier(UIDevice.CurrentDevice.UniqueIdentifier); 
// ...but will it reject this? 
MonoTouch.TestFlight.TestFlight.SetDeviceIdentifier(ASIdentifierManager.SharedManager.AdvertisingIdentifier.ToString()); 
MonoTouch.TestFlight.TestFlight.TakeOff(applicationToken); 

Спасибо!

+0

На самом деле, UDID доступ осуждался в более ранних версиях IOS. В iOS 7 доступ к UDID отключен. –

ответ

1

UDID устарел, поэтому только для отслеживания пользователей используется рекламный идентификатор.

В этом нет ничего плохого, и это не вызовет никаких проблем во время обзора.

+1

Я думаю, вы имели в виду 'UDID', а не' UUID'. Не то же самое. Оба они представлены шестнадцатеричными строками, но имеют различное количество цифр. –

0

Другим способом идентификации устройства/пользователя является использование UUID-метода класса NSUUID для создания UUID и запись его представления hex-string в базу данных по умолчанию пользователя.

В iOS 6 и более поздних версиях Apple сделала это для вас. Просто позвоните по телефону identifierForVendor на класс UIDevice.

0

Вот код отрезала, что вы можете использовать с iOS6 и до:

#define kApplicationUUIDKey @"kApplicationUUIDKey" 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSString *UUID = [[NSUserDefaults standardUserDefaults] objectForKey:kApplicationUUIDKey]; 
    if (!UUID) { 
     UUID = [[[NSUUID UUID] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; 

     [[NSUserDefaults standardUserDefaults] setObject:UUID forKey:kApplicationUUIDKey]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 

    [TestFlight setDeviceIdentifier:UUID]; 
    [TestFlight takeOff:kTestFlightIdentifierKey]; 

... 

}