If YOUR iPhone app has been rejected by Apple in an unusual or unfair way, please write about it on your blog / news / etc, and send a link to @redglassesapps on Twitter

REJECTED … and … ACCEPTED: Gravity Sling (use of setOrientation:)

A lot of apps have been rejected recently for using this particular private method, but here’s an interesting case where two versions of the same app got different results, only a few days apart. The paid-version, Gravity Sling Deluxe, got rejected first:

Thank you for submitting Gravity Sling Deluxe to the App Store.
Unfortunately it cannot be added to the App Store because it is using
a private API. Use of non-public APIs, which as outlined in the
iPhone Developer Program License Agreement section 3.3.1 is
prohibited:

The non-public API that is included in your application is setOrientation:.

Riptide removed that call, resubmitted, and Deluxe was accepted a week and a half later.

As an aside, this seems a pretty harmless method, and until the static analyser came in, I don’t think Apple ever rejected for it. Indeed, Brian from Riptide points out:

AFAIK doesn’t have any effect on the device but used to help for the simulator, though now it’s unneeded. I’ve actually had this call in every app I’ve ever submitted to the app store.

Where this gets interesting is that the free-version, Gravity Sling, was allowed through with the same method call just 4 days later:

Dec 6th, the v1.1 update to Gravity Sling was approved. Along
with the approval I got the same “warning” letter that you’ve posted
saying that it was approved, but we were using non-public APIs
(setOrientation) and we should fix this in our next update.

At first I thought this might just be a case of timing – perhaps the first app got rejected before the new policy came in (allowing apps through once, with a warning) – but this all happened in December, and the new policy had already come in by then, IIRC.

Brian suggested:

My theory here is that Apple is allowing updates to use at least some
non-public APIs the first time through, but I’m assuming they wouldn’t
the second time. New apps don’t get a free pass at all.

…and off the top of my head, I can’t think of anything I’ve seen get through first time with one of these “warning” non-rejections. Does anyone have a confirmed cases?

Post to Twitter

This entry was posted on Sunday, January 10th, 2010 at 5:26 pm and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Responses to “REJECTED … and … ACCEPTED: Gravity Sling (use of setOrientation:)”

  1. Pixels 4 Charities Says:

    I don’t have a confirmed case, but I really hope Apple redesigns the app approval process really soon. It makes no sense that they will accept an update that includes private APIs but not a first time app.

    We are still waiting for our free app to be approved. It doesn’t include any private APIs but the uncertainty of the app approval process is mind-boggling.

  2. Someone Says:

    Why would Apple change it’s (vague, inconsistent) policies? It has no reason to when developers are stumbling all over it to develop an application for it.

Leave a Reply