Question

Je n'ai pas trouvé une liste complète des étapes qui sont nécessaires pour utiliser une API privée de la bibliothèque iPhone.

En particulier, je voudrais savoir comment ils se sont même nécessaires, obtenir des fichiers en-tête, comment le compiler (quand j'ajoute simplement l'en-tête, il se plaint que les fonctions ne sont pas définies), et ce ressources dont on peut utiliser pour en savoir plus sur les API privées (par exemple, d'autres expériences de l'utilisateur, comme http://iphonedevwiki.net/ qui a quelques-uns).

Je l'ai lu dans d'autres endroits que les gens recommandent d'utiliser classe décharge pour obtenir les en-têtes. Y a-t-il des méthodes alternatives? Je l'ai remarqué qu'il ya certains dépôts de l'iPhone privé SDKs, ce sont les plus jusqu'à ce jour les ressources que vous recommanderiez?

La plupart des précédente questions sur la documentation des API privées, ont tous liés à site web de Erica Sadun , ce qui ne semble pas avoir la documentation plus (tous les liens sur la gauche sont barrés).

S'il vous plaît les commentaires sur Enregistrer de ne pas utiliser l'API privée ... Je connais les plus grands risques:

  • App obtenir rejeté par Apple.
  • App rompra dans les prochaines mises à jour de l'OS.

Je parle d'utilisations légitimes, telles que:

  • Utilisation de l'application privée (par exemple pour les tests unitaires ou de déconner pour voir ce qui est possible)
Était-ce utile?

La solution

Objective-C a suffisamment d'informations dans le fichier binaire compilé pour presque reconstruire complètement les en-têtes. Les seules choses manquantes sont des noms d'arguments, qui peuvent souvent être approchées du type ou prototype de méthode, et une certaine structure et les définitions ENUM. Voilà pourquoi les programmes comme classe-dump sont la meilleure façon d'obtenir les en-têtes. Ils sont complets, y compris toutes les méthodes que ce soit dans l'en-tête réel ou non, à jour et ne doit pas être distribué. L'autre façon d'obtenir les en-têtes est de regarder dans la version publique du même cadre, par exemple WebKit est seulement privé sur l'iPhone et est par ailleurs bien documenté.

Si vous êtes intéressé par des choses en plus de vous à peu près Objective-C devez le faire à l'ancienne, obstinés par le démontage de deviner les arguments de la fonction. Une fois que vous obtenez quelques symboles, les rechercher et peut-être vous trouverez quelqu'un d'autre en-tête a posté. otool est un bon endroit pour commencer.

Si vous incluez les en-têtes, que ce soit pour Objective-C ou C, vous devez également inclure les cadres ou les en-têtes des bibliothèques pour déclarer des méthodes, comme tous les autres en-têtes. La plupart des choses Objective-C est dans un dossier PrivateFrameworks juste à côté du dossier ordinaire des cadres. Vous pouvez regarder dans le dossier usr / lib pour trouver les bibliothèques.

Sachez qu'il ya beaucoup de différences entre le simulateur et l'appareil, assurez-vous de construire des en-têtes de l'appareil réel. Il y a aussi quelques-unes des méthodes que vous ne aurez pas l'autorisation d'exécuter une application sandbox.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top