Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-13793] iOS: Apps being rejected for faulty apple's automatic detection of UUID deprecated API

GitHub Issuen/a
TypeBug
PriorityHigh
StatusClosed
ResolutionInvalid
Resolution Date2013-05-08T19:09:15.000+0000
Affected Version/sRelease 3.1.0
Fix Version/sn/a
ComponentsiOS
LabelsSupportTeam
ReporterMauro Parra-Miranda
AssigneeIngo Muschenetz
Created2013-05-08T19:03:54.000+0000
Updated2014-06-19T12:43:07.000+0000

Description

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

Comments

  1. Mauro Parra-Miranda 2013-05-08

    We found out it's because the testflight module, not Appcelerator issue.

JSON Source