web-dev-qa-db-fra.com

En quoi consiste exactement une API privée, et pourquoi Apple rejettera-t-il une application iOS si une est utilisée?

J'ai lu plusieurs articles à ce sujet, et je veux juste voir si je comprends bien:

Apple rejettera votre application si vous utilisez une API privée ...

  1. Quelle est la principale différence entre une "API privée" et une "API non privée?"

  2. Les API "non privées" sont-elles uniquement les API fournies et vérifiées par Apple?

  3. Une API n'est-elle pas simplement un moyen d'interagir avec un Framework, et un Framework n'est qu'un ensemble de classes/en-têtes encapsulés que les gens peuvent utiliser à des fins triviales?

  4. Cela ne signifierait-il pas que je ne peux pas du tout réutiliser le code de quiconque (autre que celui d'Apple) dans mon application?

  5. Si cela est vrai, chaque fois qu'un programmeur crée ses propres classes et méthodes personnalisées, n'est-il pas techniquement en train de concevoir un mini Framework uniquement pour son objectif spécifique? Cela ne signifie-t-il donc pas qu'il utilise sa propre API privée?

  6. Quelle serait même la différence entre utiliser les classes/méthodes de quelqu'un d'autre aux côtés de mes classes/méthodes, comment pourraient-elles même faire la différence, et pourquoi serait-ce un problème?

Ma compréhension de cela semble absurde, et je ne pense pas comprendre ce qu'est une "API privée" correctement. J'ai lu que c'était pour se protéger contre tout changement dans l'API qui pourrait rendre votre application dysfonctionnelle. Cela signifie-t-il que les API sont liées pendant l'exécution (par opposition à la compilation) et peuvent être mises à jour automatiquement sans que vous le sachiez ou quelque chose? (Voir, je pensais à l'origine aux API/frameworks comme étant gravés dans le marbre chaque fois que vous compilez, c'est peut-être là que je me trompe)

Quelqu'un peut-il m'aider? Je suis vraiment confus au sujet de cette politique. Je vous remercie!

51
giant91

Q. Quelle est la principale différence entre une "API privée" et une "API non privée?"

  • Le privé n'est pas défini publiquement (il n'y a pas grand-chose)

Q. Les API "non privées" sont-elles uniquement les API fournies et vérifiées par Apple?

  • Les API privées et publiques sont toutes deux "fournies" par Apple mais seules les API publiques sont fournies pour que vous puissiez les utiliser.
  • Les API privées doivent être utilisées par Apple uniquement

Q. ne API n'est-elle pas simplement un moyen d'interagir avec un Framework, et un Framework n'est qu'un ensemble de classes/en-têtes encapsulés que les gens peuvent utiliser à des fins triviales?

  • Oui

Q. Cela ne signifie-t-il pas que je ne peux pas du tout réutiliser le code de quelqu'un (autre que celui d'Apple) dans mon application?

  • Non

Q. Si cela est vrai, chaque fois qu'un programmeur crée ses propres classes et méthodes personnalisées, n'est-il pas techniquement en train de concevoir un mini Framework uniquement pour son objectif spécifique? Cela ne signifie-t-il pas qu'il utilise son propre API privée?

  • Non (un framework est différent d'une application)

Q. Quelle serait même la différence entre utiliser les classes/méthodes de quelqu'un d'autre à côté de mes classes/méthodes, comment pourraient-elles même faire la différence, et pourquoi serait-ce un problème?

  • Il ne serait généralement pas

Le point que vous devez obtenir est que lorsque vous vous référez à des API privées, vous ne devez penser qu'aux API privées Apple fournies).
Les autres API de tierces parties sont différentes (et Apple ne se soucie pas tant que ce code tiers n'utilise pas Apple private Apis).

43
Wain