在TestFlight的文档中,它说在生产中设置设备标识符可能会导致应用程序被拒绝。
然而,它并没有提到使用广告标识作为替代。我的意思是,苹果似乎只会拒绝它,因为检索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);谢谢!
发布于 2013-11-12 15:48:00
不推荐UDID,因此他们跟踪用户的唯一方法是使用广告标识符。
这样做并没有错,而且在评审过程中也不会造成任何问题。
发布于 2013-11-13 07:20:28
另一种识别设备/用户的方法是使用NSUUID类的UUID方法来创建UUID并将其六角弦表示形式写入用户默认数据库。
在iOS 6和更高版本中,苹果已经为你做了这样的工作。只需在identifierForVendor类上调用UIDevice方法即可。
发布于 2013-12-07 17:31:02
下面是一个可以与iOS6和up一起使用的代码片段:
#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];
...
}https://stackoverflow.com/questions/19933407
复制相似问题