Непубличные селекторы в приложении?
Я пытаюсь отправить приложение через iTunes Connect. Xcode выдает следующую ошибку:
Не удалось выполнить операцию iTunes Store.
Приложение ссылалось на непубличные селекторы в Калькуляции/Инфляции Калькулятор .app/Inflation Calculator: allocBatch:withEntity:count:,allowWithEntity:,
fastIndexForKnownKey:
, indexForKey:
Я понятия не имею, что "non-public selectors
" я буду использовать, потому что я придерживался довольно близко к книге с моим кодом. У кого-нибудь есть идеи?
Код для контроллера вида (только .swift
в моем приложении):
https://gist.github.com/Calda/aefc2f19bae5f3cf2e54
EDIT: В качестве справочной информации в будущем я подтвердил с поддержкой iTunes Connect, что это проблема с iTunes Connect, а не проблема с моим проектом. Для тех, кто испытывает эту же проблему, моим лучшим советом было бы подождать и повторить попытку позже.
Ответы
Ответ 1
Я решил это, выполнив следующее:
изменить: я не думаю, что нужен первый шаг
1) Очистка папки сборки (Удерживайте Alt, щелкните Продукт → Очистить)
2) Удаление исходных данных (Организатор → Проекты → Выберите проект → Удалить производные данные
Ответ 2
У меня была та же проблема. Я не мог отправлять некоторые из моих приложений, потому что с помощью непубличных селекторов. Я также попытался использовать Application Loader, но все же такое же сообщение об ошибке
Чтобы решить проблему, я установил Xcode 6.0.1 - она по-прежнему доступна для загрузки здесь:
https://developer.apple.com/downloads/index.action
Перед установкой я переместил старый Xcode в корзину.
Теперь я могу отправить любое приложение.
Ответ 3
Для того же приложения, я получил эту ошибку сегодня на XCode 6.1.
Я отправляю одно и то же приложение (небольшая вариация) 2/3 дня назад с XCode 6.0.1 без каких-либо ошибок!
Просто обновил XCode 6.1 и оказался в ловушке этой ошибки.
Я переключился на XCode 6.0.1, и у него нет никаких проблем с представлением. Нет ошибки использования не публичного API. Я просто загружаю файл dmg и переименовываю xcode.app в XCode_6.0.1. Таким образом, он сосуществует с XCode 6.1.
Ответ 4
API отличается от iOS 7 и iOS 8.
Я получил свое приложение, подтвержденное, переключившись на Deployment Target "8.0" - с XCode 6.1.
Возможно, это не решение для всех вас, но вы можете попробовать.
Возможно, со мной случилось, потому что я недавно начал использовать UIAlertController → , похоже, для iOS-8. На iOS 7 это будет UIAlertView. Поэтому, если вы используете некоторые изящные новые функции, они, возможно, не были доступны с предыдущими версиями iOS - таким образом, не публичный API.
Ответ 5
Я удаляю все полученные данные для проектов xcode
/Users/ {user_home_folder}/Library/Developer/Xcode/DerivedData
Приложение было отправлено без каких-либо проблем.
Ответ 6
Я столкнулся с той же проблемой, которая была похожа на проблему Apple. Вчера я отправил одно и то же приложение (v 1.0.1), а затем отклонил его, а затем снова представил его с однострочной разницей кода. Сегодня представление было отклонено по причине, упомянутой выше.
Мне удалось решить эту проблему, используя самые последние версии всего, изменив версию # моего приложения (например, 1.0.1 → 1.0.2). Думаю, это сработало, поскольку у меня было предыдущее представление, сидящее в очереди за моей старой версией, которую я отклонил, YMMV.