My app has never been flagged for this before but today’s submission got flagged, even though I have not added anything to do with UDID. My app had always called SystemInfo.deviceUniqueIdentifier which according to Unity’s doc does not call IOS’s APIs. So I’m not sure why I got rejected today so the only thing I changed were to fix a bug that had nothing to do with any UDID or IOS API related code. If you have any insight that would be great.
Apple’s msg:
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.
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.
If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app’s nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview@apple.com. For further information, visit the Technical Support Information page.
Make sure you have a latest plugin that having the latest SDK eliminated the use of UDID.
We can promise that all our plugins at http://www.neatplug.com have been upgraded to the latest SDKs at the earliest possible time, so if you choose our solutions, you have nothing to worry about.
I found out it was TapGage from Prime31 that is the problem. I kept getting flagged over and over again, but once I removed TapGage it passed.
Weird thing tho, I had 2 other apps submitted at the same time with TapGage, and they passed… so I’m not 100% sure what’s up.
I have this problem right now as well. Apple is rejecting my Unity 4.1.2 - built app for the UDID usage issue. I navigated to my project directory and ran the following command in terminal: find . | grep -v .svn | grep “.a” | grep -v “.app” | xargs grep uniqueIdentifier
It returned: Binary file ./WildlandsUpdate37/Libraries/libiPhone-lib.a matches
As far as I know, libiPhone-lib.a is the UnityEngine library, right?
UPDATE: Even though that search only returned libiphone-lib.a, the problem was, in fact, in an external library. It was a special framework that we had applied to the game. I found it by using this search in the project directory:
grep -Rni ‘uniqueIdentifier’ *
The search returned a lot of things that were not the problem, but also highlighted the library that was the issue. I recommend using it if you are having the same problem.