Непубличное использование API
Я не могу загрузить приложение в iTunes Connect.
Xcode uploader говорит, что я использую allocBatch:withEntity:count:
, allocWithEntity:
, IndexForKey:
, fastIndexForKnownKey:
Я не использую эти методы и не знаю, где они могут быть. Неделю назад тот же код успешно загружался. Что может быть причиной такого поведения?
![enter image description here]()
UPDATE
Отправка со старым Xcode больше не работает, эта ошибка обнаруживается при двоичной обработке.
Ответы
Ответ 1
У меня была эта точная проблема с использованием Yosemite с Xcode 6.1 и с использованием Objective C. Я также получил предупреждение о проверке, говоря, что вы не можете загрузить приложение, созданное с помощью бета-версии Xcode, которое 6.1 на момент написания этого.
Я разбил Xcode 6.1, перетащив его в форму корзины Finder, а затем скачал Xcode 6.0.1 GM из App Store. Я дважды пытался установить 6.0.1 поверх 6.1, но это не сработало, следовательно, обход 6.1
Очистив и перекомпилировав мое приложение с помощью Xcode 6.0.1, оно было проверено и отправлено в хранилище приложений без проблем. Надеюсь, это поможет.
Ответ 2
Я исправил это, изменив цель развертывания с iOS4.3 на iOS5.0, все исправленные с использованием Xcode 6.1
Ответ 3
Я столкнулся с такой же ошибкой при использовании Xcode 6.1 (и связанного с ним Application Loader) в Mac OS 10.9.5. Нажатие "Назад" в загрузчике приложений и повторная отправка одного и того же двоичного файла. Другими словами, попытка повторить второй раз. Мое приложение было создано с SDK для iOS 8.1.
Ответ 4
Вам не нужно удалять XCode 6.1. Это стало бы удобно в течение пары дней. Просто скачайте XCode 6.0.1, скопируйте его где-нибудь и используйте sudo xcode-select --switch /Applications/Xcode601.app/Contents/Developer/
. Затем запустите его и создайте с ним отличное приложение.
Ответ 5
API отличается между iOS 7 и iOS 8. Я получил свое приложение, подтвержденное, переключившись на Deployment Target "8.0" - построенный с XCode 6.1. Возможно, это не решение для всех вас, но вы можете попробовать.
Возможно, со мной случилось, потому что я недавно начал использовать UIAlertController → , похоже, для iOS-8. На iOS 7 это будет UIAlertView. Поэтому, если вы используете некоторые изящные новые функции, они, возможно, не были доступны с предыдущими версиями iOS - таким образом, не публичный API.
Ответ 6
Увеличение номера версии моего приложения сделало трюк для меня.
EDIT: просто просмотрел комментарий в моем отчете об ошибке для apple
![enter image description here]()
Поэтому, скорее всего, номер версии не имел ничего общего: D
Ответ 7
У меня такая же проблема в Xcode 6.0.1, если я использую архив, созданный Xcode 6.1. Он работает, если я обновляю архив по Xcode 6.0.1. Это означает, что непубличный API добавляется Apple в Xcode 6.1.
Ответ 8
Я попытался удалить все DerivedData.
/Users/{user_home_folder}/Library/Developer/Xcode/DerivedData
и я успешно прошел проверку.
http://qiita.com/PGMY/items/831618ad416780e0dc7c
Ответ 9
У меня была такая же проблема, когда я отменил архивирование в магазине приложений. Apple отправил мне письмо по этому вопросу. И чем я воссоздаю архивирование и отправлю в App Store. Everythink в порядке сейчас.