Process for allowing non-public API in App Store apps in certain circumstances

Number:rdar://42596877 Date Originated:07-25-2018
Status:Open Resolved:
Product:App Store Product Version:n/a
Classification:n/a Reproducible:n/a
At the moment, App Store Review Guidelines strictly forbid the use of any non-public API. While this is absolutely correct in almost every case, there must be room for exceptions.

There are cases where:
- serious bugs/regressions must be worked around
- issues/behaviors severely affect user experience

Not fixing these issues would lead to major drawbacks for an app, and for its users. While often enough there are workarounds with public API, in some cases there aren't. And these cases must be acceptable on the App Store. Not allowing certain levels of fixes under certain circumstances will overall harm the Apple ecosystem. Nobody is helped by blindly forbidding any private API.

A possible set of requirements would be this:

Private API is to be allowed only if all conditions are met:
- a regression bug from earlier OSes, or substantial degradation of user experience
- no workaround exists at all, or is very complicated,
- the issue has been documented using a bug report,
- provisions have been made in the app to protect against framework changes (selector checks, etc),
- engineering has acknowledged all of the above,
- developers assume all responsibility should their use of the private API break

Only then should private API be allowed. But this process should be transparent, well-known and clearly communicated with developers.

Not having this kind of exception process, on a bigger scale, will benefit nobody. Overall, users will get worse apps, developers have worse products, and Apple a weaker app eco system by to strongly limiting quality developments.

So please consider picking this up for the app review process. Thanks for reading.


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!