Я собираюсь загрузить свое первое приложение для Mac в Apple Store
И исправили все ошибки проверки значка, категории ...
Но после этого я прошел проверку с предупреждением:
The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message.
И мою загрузку отклонят по причине: "Недействительный бинарник".
Есть ли у кого-нибудь опыт такого рода?
ОБНОВЛЕНИЕ: это предупреждение не является причиной отказа, возможно, проблема с архивированием приложения. Я успешно выпустил приложение в магазин.
Так что мы можем игнорировать это.
Ответы:
Apple запрещает использовать частные или недокументированные API в приложениях iOS. Любые вызовы, которые вы делаете к методам, которые имеют то же имя, что и частные или недокументированные методы API, будут помечены как использование частного API, даже если вызываемый метод является тем, что вы определили сами.
Загрузчик приложений выполняет начальное сканирование, проверяя имена методов, доступ к переменной экземпляра и даже использование @selector с именами частных методов. Загрузчик приложений не всегда хорошо справляется со своей задачей, и чем больше у вас исходных файлов, тем больше вероятность того, что он выдаст предупреждение о том, что созданный им файл анализа API «слишком велик».
К счастью, вы все еще можете подать заявку, несмотря на предупреждение. Apple проверит это изнутри, и если что-то будет отклонено из-за дублирования имен, вам придется снова пройти через процесс проверки.
Эрика Садун попыталась создать приложение под названием API Kit, которое будет сканировать за вас, но, похоже, она отказалась от своей работы и удалила все следы приложения со своего веб-сайта.
Chimp Studios создали App Scanner, чтобы делать то же самое, но он не обновлялся с 2011 года. К сожалению, для крупных проектов - и это включает в себя проекты с большим количеством дополнительных модулей из CocoaPods - в настоящее время (2014 г.) нет хорошего способ решения этой проблемы, кроме упреждающего именования вещей, чтобы они не конфликтовали с частными методами API и именами экземпляров.
Вы можете заранее узнать о соглашениях Apple об именах какао и попытаться предугадать. Это уменьшит головные боли в будущем. Однако до тех пор, пока Apple не представит что-то вроде пространств имен, мы можем время от времени сталкиваться с этой проблемой.
Ошибка "недопустимый двоичный код" может быть вызвана рядом причин, но она полностью не связана с документом анализа API, созданным загрузчиком приложений.
Вы должны знать, что даже при сканировании есть способы обойти запрет на использование частных / недокументированных API. :)
источник
После первого столкновения с этой проблемой в моем первом проекте Swift, похоже, что наиболее частый ответ на этот вопрос сейчас:
Если вы используете Swift 2.x и XCode 7, вы получите эту ошибку. Просто не обращай на это внимания.
[ОБНОВЛЕНИЕ: выпуск XCode 7.3 и iOS 9.3, похоже, устранил эту проблему!]
источник
Вот простой способ их обойти ... сохранить имя селектора в обратном порядке, например, «dlroWolleH», а затем перевернуть строку перед вызовом метода.
Если Apple поймет это, вы можете их зашифровать.
источник