#iphone #app-store
#iPhone #app-store
Вопрос:
Я отправляю свое приложение в AppStore, оно выдает ошибку
Статус: недопустимый двоичный файл и указывает причину следующим образом,
Приложение содержит или наследует от непубличных классов в MyApp: UIProgressHUD
Любая помощь будет оценена…
Ответ №1:
Well UIProgressHUD
— это частный класс, и вам не разрешено его использовать. Если вы создаете UIProgressHUD
свой собственный, просто переименуйте его в какой-нибудь thins like MYProgressHUD
.
Ответ №2:
Я не совсем согласен с ответом rckoenes. Это также немного неясно — я предполагаю, что под «переименованием» вы подразумеваете динамическое создание класса с использованием NSClassFromString — Apple запускает статический анализ отправляемого вами кода, поэтому, если вы используете частные классы, вам нужно сделать это таким образом, Чтобы обойти это (т. Е. Динамически Создавать классы из строк и т. Д). Но вам действительно не следует использовать частные классы, потому что нет никакой гарантии, что они будут вести себя так же в будущих версиях ОС. Действительно, в iOS 5 Apple внесла ряд архитектурных изменений в недокументированные классы, которые нарушили поведение пользовательского интерфейса в некоторых приложениях.
Лучшим вариантом является использование установленной альтернативной библиотеки UIProgressHUD
— эта особенно хороша: https://github.com/jdg/MBProgressHUD
Часто доступные альтернативные классы предлагают больше функциональности, чем частный, который вы пытались использовать.
Комментарии:
1. API указывает, что вам не разрешено использовать частные фреймворки, поэтому, даже если вы попытаетесь скрыть, Apple может позже извлечь ваше приложение. и вы нарушаете свой контракт с Apple. и да
MBProgressHUD
, это хорошая замена.