views:

275

answers:

1

Hello ,

I am just about to finish my first iPhone application.

I have heard of apps rejected for the use of some private APIs .

I am also using some private APIs like ASIHTTPRequest , MBProgressViewHUD.

So tell me are these or any other private APIs that are rejected for which I should make sure not to use them now or in future applications .

You can list them or just tell how to take precaution in using the private APIs.

Please Be humble in sharing the knowledge .

Thanks.

+8  A: 

There's probably a confusion between private and 3rd-party APIs.

Private API is standard classes and frameworks which are used by Apple internally and are not exposed for public usage (e.g. MKMapViewInternal class that hides MKMapView class internals or UIGetScreenImage() function that is temporarily legal now).

3rd-party APIs (e.g. ASIHTTPRequest) are created using public API to extend its functionality and it is absolutely legal to use them iPhone applications (although you must be careful and make sure that they do not use private API themselves)

Edit: The best-known example of 3rd-party api having problems with appstore admission probably is three20 library, but I think they have already solved this problem (see discussion in google groups)

There're also indications that Apple becomes not so strict about using private APIs

Vladimir
Vladimir, would you please add additional details about UIGetScreenImage() being "temporarily" legal? Do you mean this function will be illegal again starting from a specific date or SDK release? How can one safely use it, if it's going to be illegal sooner or later?
unforgiven
See this blog entry: http://www.tuaw.com/2009/12/15/apple-relents-and-is-now-allowing-uigetscreenimage-for-app-st/ for details. There's also a link there to a relevant apple devforum post.
Vladimir
So if I understand the situation correctly - there was a considerable number of apps in appstore using this function and apple decided not to remove them and temporary allowed to use it. But it reserved the right to ban it again in future after providing similar function in public API
Vladimir