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

TOOL: APIkit (avoid being rejected for bad method names)

From Erica Sadun, a great idea – a tool that checks your source code, and hilights one of the things that is likely to cause “automatic” rejection by Apple: using private methods, or private method names. Now in beta, APIkit:

it’s a developer response to Apple’s automated API scanning system, offering a proactive heads-up about method names and function names that might trigger a problem over in the App Store system.

APIkit attempts to scan your applications to detect potential conflicts with private API names. The tool remains a very early beta.


We’ve seen a few examples already of apps (and even entire libraries) getting rejected for innocently choosing “the wrong names” for methods. Although in each case it’s not hard to workaround, Apple’s weak developer tools (Xcode, I’m looking at you: Refactoring was invented 15+ years ago, there’s no excuse for STILL not supporting it) make it slightly annoying to fix. Worse, though, is the time lost waiting for your app to be rejected, with no advance warning.

This tool gives you that advance warning (although this seems to be a much much smaller issue now that Apple is processing submissions in days rather than weeks).

Here’s an excerpt of what it prints out, from the docs. The tool is command-line only, but provides nice, clear, output:

Potential private framework issues:

[AppSupport]hostname override via CFNetwork
[DataAccess]cache override via AddressBook
[GMM]platform override via CFNetwork
[iTunesStore]setCache: override via AddressBookUI
[Message]sendData: override via GameKit
ALERT: -clearCache matches private framework OfficeImport.
[Preferences]busy override via SystemConfiguration

After Private Frameworks Scan:

1 whitelisted class methods, 1 blacklisted class methods
51 whitelisted instance methods, 4 blacklisted instance methods
52 whitelisted functions, 0 blacklisted functions

Potential blacklist items:

+dictionaryFromData:
-actionsView
-canConnect
-selectSegment:
-clearCache

Post to Twitter

This entry was posted on Sunday, January 17th, 2010 at 5:06 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.

Leave a Reply