Problem Description
Apps are being rejected since May 1st after the "new" rules in Apple Store. They rejected with the following message:
"
"To process your delivery, the following issues must be corrected:
Non-public API usage:
Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6."
"
Possible Solution
Mail from Apple:
"If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed."
This might be a clue... Exploring the resulting project build in Xcode, I found the createUUID method in TiUtils.m
+(NSString*)createUUID
{
CFUUIDRef resultID = CFUUIDCreate(NULL);
NSString * resultString = (NSString *) CFUUIDCreateString(NULL, resultID);
CFRelease(resultID);
return [resultString autorelease];
}
More info
http://developer.appcelerator.com/question/152066/tinetworkregisterforpushnotifications-non-public-api-usage
We found out it's because the testflight module, not Appcelerator issue.