Я не нашел всесторонний список шагов, которые требуются, чтобы использовать частный API от iPhone Library.
В частности, я хотел бы знать, как получить заголовочные файлы, если они даже требуются, как заставить это компилировать (когда я просто добавляю заголовок, это жалуется, что функции не определяются), и какие ресурсы можно использовать для приобретения знаний о частных API (например, на основе событий другого пользователя, таких как http://iphonedevwiki.net/, который имеет некоторых).
Я читал в других местах, что люди рекомендуют использовать дамп класса для получения заголовков. Есть ли какие-либо альтернативные методы? Я заметил, что существуют некоторые репозитории iPhone Private SDKs, каковы самые актуальные ресурсы, которые Вы рекомендовали бы?
Большая часть назад вопросы о документации частных API, все связались с веб-сайтом Erica Sadun, который, кажется, больше не имеет документацию (все ссылки слева вычеркнуты).
Сохраните комментарии о не использовании частного API... Я знаю о самых больших рисках:
Я говорю о законном использовании, таком как:
Objective-C имеет достаточно информации в скомпилированном двоичном файле, чтобы почти полностью восстановить заголовки. Единственное, чего не хватает, это имен аргументов, которые часто можно приблизительно определить из прототипа типа или метода, а также некоторых определений структур и перечислений. Именно поэтому программы типа class-dump - лучший способ получить заголовки. Они полны, включают каждый метод, независимо от того, был ли он в настоящем заголовке или нет, актуальны и не нуждаются в распространении. Другой способ получить заголовки - посмотреть в публичной версии того же фреймворка, например, WebKit является приватным только на iPhone, а в остальном хорошо документирован.
Если вы интересуетесь чем-то помимо Objective-C, то вам придется действовать по старинке, продираясь через дизассемблирование, чтобы угадать аргументы функций. Как только вы получите несколько символов, поищите их, и, возможно, вы найдете заголовок, который кто-то другой опубликовал. otool - хорошее место для начала.
Если вы включаете заголовки, будь то для Objective-C или C, вы также должны включить фреймворки или библиотеки, для которых эти заголовки объявляют методы, как и любые другие заголовки. Большинство материалов Objective-C находится в папке PrivateFrameworks рядом с обычной папкой Frameworks. Библиотеки можно найти в папке usr/lib.
Имейте в виду, что между симулятором и устройством есть много различий, поэтому убедитесь, что вы собираете заголовки на реальном устройстве. Есть также некоторые методы, которые вы не сможете запустить как приложение в песочнице.