0

在 TestFlight 的文档中,它说在生产中设置设备标识符可能会导致您的应用程序被拒绝。

但是,它没有说明使用广告 ID 作为替代品。我的意思是,苹果似乎只会拒绝它,因为在 iOS 7 中不推荐使用检索 UDID。

话虽如此,如果我使用广告标识符在 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);

谢谢!

4

3 回答 3

1

UDID 已被弃用,因此他们跟踪用户的唯一方法是使用广告标识符。

这并没有错,在审查过程中也不会造成任何问题。

于 2013-11-12T15:48:00.807 回答
0

识别设备/用户的另一种方法是使用 NSUUID 类的 UUID 方法来创建UUID并将其十六进制字符串表示形式写入用户默认数据库。

在 iOS 6 及更高版本中,Apple 已经为您完成了这项工作。只需在UIDevice类上调用identifierForVendor方法。

于 2013-11-13T07:20:28.937 回答
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];

...

}
于 2013-12-07T17:31:02.857 回答