Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I just read through this question, but I am still confused.

How can I know if my app is using undocumented API calls before submitting to it to the app store? Are there any tools I can use?

share|improve this question
Similar question, already answered here: stackoverflow.com/questions/9695408/… –  jarrodparkes Mar 20 '13 at 16:11
while coding is there any way to know –  sivakrishna perla Mar 20 '13 at 19:07
Umm.. Check the API documentation? –  Robert Harvey Mar 20 '13 at 21:54

3 Answers 3

Undocumented methods aren't listed in the public headers. If you're using any such methods you will have had to declare them yourself in a category or gone out of your way to call them using a method like performSelector:@selector(...) or through some Objective-C runtime function.

In other words, it's unlikely that you'll call an undocumented method by accident.

The only reason to worry is if you're using code that someone else wrote and which you haven't taken the time to read through, or if you're perhaps using a library created by someone else for which you don't even have the source code. In that case, it's up to you to talk to the developer or otherwise satisfy yourself that the code in question doesn't use undocumented methods.

share|improve this answer

Based on the answers I've found online, I do not believe there is anyway to dynamically be notified if you are using an undocumented API while coding. For the most part, it is assumed programmers would know ahead of time if they are using a third-party API that is not documented/approved by Apple. All the related answers suggest using the Validate step after you make an archive of your app: http://stackoverflow.com/questions/9815498/detecting-private-apis

share|improve this answer

The problem is not only with using an undocumented API, but reportedly with using any method which looks like an undocumented API to Apple (which, not being publicly documented, there's no way for you to know). Therefore, to reduce risk of rejection, make sure that any of your own methods don't even look like an iOS or UIKit-named method or variant or future extension thereof.

If you are really concerned, you could dump all the method and class names from your compiled executable, and google them all to make sure they either show up nowhere, or on an official Apple public API page.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.