Call for Better Private API Detecting Tools and Policy

Many developers have had the experience of waiting for a week before their apps get rejected just for suspicion of using Private API. This is a frustrating waste of time.

The problem is that sometimes we are not sure whether there are Private API used in our code, especially with third-party frameworks involved.

Since Apple can automatically detect Private API usage, why not:

  1. Run the auto detection as soon as apps are submitted, so that API-incompliant apps can be rejected immediately, rather than after a week of waiting.
  2. Better yet, offer this auto detection tool to us developers, so that we can self-detect our apps before submission. It can save huge amount of time for both Apple and developers.

Another baffling problem is that any occurrence of selectors with the same name as any mysterious-unknown-to-developers Private API seems to cause apps to be identified as incompliant and rejected. This is the equivalence of forbidding people to call their innocent friends by their names, just because they bear the same names as some unknown bad guys. In this case, we even don’t know the existence of these bad guys; they are Private.

As a developer, I want things to become better for all of us. Please fix this, Apple.

If you are a developer who also want better Private API detecting tools and policy from Apple, please join me by duplicating my bug report #9016940. You can simply quote the content of this article above – it is Public.