Apple has added a new layer to the App Store approval process. Applications are now being put through a static analysis tool that checks for private API calls.
Gizmodo’s John Herrman gives an informative explanation on the differences between public and private APIs. But, in short, developers aren’t allowed to use private APIs in iPhone applications.
Up until now, Apple hasn’t been enforcing this rule. Now, some applications that had previously been approved are getting flagged for their use of private APIs.
One popular open source framework, Joe Hewitt’s Three20, is a little loose when it comes to private APIs. As a result, developers using the framework (whether they actually make use of private APIs or not) are getting flagged. Some developers have already started working on a branch of the Three20 project that is free of private API calls.
I think it is wise for Apple to use such a tool, but it would help if they used it much earlier in the application approval process, this would allow developers to quickly fix a (hopefully) small oversight in coding which happened to use private APIs.
The only thing we have to worry about now is false positives.
Update 12/17/09: Apple Relaxing Private API Restrictions