Не удается распространять мое приложение: "Ваше приложение содержит непубличное использование API".

После исправления некоторых ошибок и реорганизации моего проекта, который был выпущен в App Store, он не может распространяться. Xcode показывает следующее сообщение об ошибке:

  • Ваше приложение содержит непубличное использование API. Просмотрите ошибки, исправьте их и повторно отправьте заявку.
  • Приложение ссылается на непубличные символы в Payload/XXX.app/XXX: UICreateCGImageFromIOSurface

XXX - это имя приложения.

Я искал весь проект и не нашел ни одного этого ключевого слова (UICreateCGImageFromIOSurface). Как я могу это исправить?

Ответ 1

Удалите Reveal.framework из вашего проекта. Это не должно быть связано в режиме выпуска вашего двоичного файла.

Ответ 2

Приложение содержит код не только из источников, но и из всех статически связанных библиотек. Вы должны проверить все те, которые содержат закрытый вызов. Похоже, по крайней мере библиотека Reveal содержит его.

Ответ 3

Двойная проверка любых сторонних библиотек, которые вы используете в своем проекте

Я столкнулся с проблемой, и после проверки моего файла pods я обнаружил, что Look Back - Framwork, который доступен для отладочных сборников только для как я знаю. Поэтому удаление этого исправлено. Успешно отправленное приложение через Xcode 6.1 для бета-тестирования Apple Testflight:)

Ответ 4

  • Никогда не отправляйте приложение, связанное с библиотекой Reveal. Выявить экспозицию ваше приложение для глубокой самоанализа и, вероятно, приведет к тому, что ваше приложение будет отклонен группой обзора Apple. Вывод предназначен для внутренних только для разработки и отладки.
  • Служба Reveal автоматически остановится, пока хост-приложение iOS а не самое главное приложение. Он будет автоматически запускаться снова, когда приложение снова открывается.
  • Reveal поддерживает проверку приложений, составленных против iOS 6 и позже. Настройка сборки целевой платформы iOS также должна быть "iOS 6.0", или позже. Вы можете увидеть ошибки ссылок, если это не так.
  • Reveal использует Bonjour для подключения к используемому приложению iOS. Если вы запускаете приложение iOS на устройстве, оно должно быть в той же сети, что и приложение Reveal Mac, чтобы иметь возможность подключаться к Это. Если у вас возникли проблемы с подключением к вашему приложению, проверьте настройки брандмауэра и прокси-сервера, чтобы они не блокировали коммуникации.

Подробнее...