Apple запрещает использовать частные или недокументированные API в приложениях iOS. Любые вызовы, которые вы делаете к методам, которые имеют то же имя, что и частные или недокументированные методы API, будут помечены как использование частного API, даже если вызываемый метод является тем, что вы определили сами.
Загрузчик приложений выполняет начальное сканирование, проверяя имена методов, доступ к переменной экземпляра и даже использование @selector с именами частных методов. Загрузчик приложений не всегда хорошо справляется со своей задачей, и чем больше у вас исходных файлов, тем больше вероятность того, что он выдаст предупреждение о том, что созданный им файл анализа API «слишком велик».
К счастью, вы все еще можете подать заявку, несмотря на предупреждение. Apple проверит это изнутри, и если что-то будет отклонено из-за дублирования имен, вам придется снова пройти через процесс проверки.
Эрика Садун попыталась создать приложение под названием API Kit, которое будет сканировать за вас, но, похоже, она отказалась от своей работы и удалила все следы приложения со своего веб-сайта.
Chimp Studios создали App Scanner, чтобы делать то же самое, но он не обновлялся с 2011 года. К сожалению, для крупных проектов - и это включает в себя проекты с большим количеством дополнительных модулей из CocoaPods - в настоящее время (2014 г.) нет хорошего способ решения этой проблемы, кроме упреждающего именования вещей, чтобы они не конфликтовали с частными методами API и именами экземпляров.
Вы можете заранее узнать о соглашениях Apple об именах какао и попытаться предугадать. Это уменьшит головные боли в будущем. Однако до тех пор, пока Apple не представит что-то вроде пространств имен, мы можем время от времени сталкиваться с этой проблемой.
Ошибка "недопустимый двоичный код" может быть вызвана рядом причин, но она полностью не связана с документом анализа API, созданным загрузчиком приложений.
Вы должны знать, что даже при сканировании есть способы обойти запрет на использование частных / недокументированных API. :)