So, obviously, Apple has begun to reject applications that use [UIDevice uniqueIdentifier]. I heard reports that applications were rejected and approved last week, which use it (some of them pass, some do not). However, not one of the major ad networks (which do not generate revenue for my application) has yet come out with an API that does not use UDIDs. All of their APIs that are included in my application use it. They all say that they are working on a new API, and it will be released soon, but it may take several months.
It seems very strange to me that Apple will apply this policy through the application review process, and not through the new version of the OS, which simply does not allow it (and people have time for programming during beta testing).
All that said, my question is how exactly does Apple detect that you are viewing the UDID while browsing the application? Do they somehow scan the package to see if there is a call there, or do they track the system calls that are actually being made during application testing? I thought that I might not have turned to the advertising API if the user wants to pay, or by giving them the choice to advertise and, therefore, provide their UDID. But I need to understand if Apple deviates based on [UIDevice uniqueIdentifier] just compiles into your code or is detected based on what you call [UIDevice uniqueIdentifier] during the application validation test.
Please do not answer this question for reasons why you should not use [UIDevice uniqueIdentifier] or how to create your own UDIDs, etc. etc. My problem is the third-party libraries that I need, which do not yet have an alternative solution. The question is: how does Apple detect UDID access while viewing an application?
source share