Sign up ×
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

closed as off-topic by MichaelT, GlenH7, durron597, gnat, Snowman Sep 30 at 2:53

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – MichaelT, GlenH7, durron597, Snowman
If this question can be reworded to fit the rules in the help center, please edit the question.

Similar question, already answered here:… – 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:

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

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