On le sait, si les jeux basés sur le moteur Unity ont été refusés en bloc de l'App Store, c'est parce que le moteur faisait appel à des API privées (ce n'est désormais plus le cas, lire Les jeux Unity refoulés de l'App Store). Un échange intéressant entre John Gruber et le développeur Craig Hockenberry (Twitterrific, Frenzic) révèle qu'Apple utilise maintenant un système pour vérifier automatiquement la présence d'API privées.
Les API publiques sont supportées officiellement par Apple, avec une garantie que des changements au niveau du système ne poseront pas de problèmes (ou en tout cas que la transition vers un nouveau système sera facilité). Les API privées, elles, font appel à leurs propres méthodes, et leur fonctionnement peut être remis en cause à la moindre mise à jour. Apple elle-même utilise parfois des API privées, en cours de développement, comme cela a été le cas avec Google Maps pour iPhone, avant que celles-ci ne soient rendues publiques une fois stabilisées. Les API privées qui nous intéressent,
_NSGetEnviron
et exc_server
, ont été notamment utilisées par Storm8, pris dans une poursuite pour vol de numéros de téléphone, ce qui a valu à toutes les applications les utilisant d'être rejetées.
Apple a semble-t-il décidé de serrer un peu la vis de ce côté-là, pour éviter ce genre de problèmes à l'avenir, et s'assurer de l'utilisation par tous d'une base commune et cohérente.