2017-01-09 1 views
0

Если вы используете AppCode, я уверен, что вы видели это или подобное в вашем коде ...Символ не доступен для целевого развертывания XX в Project ABC

Метод XYZ не доступен для целевого развертывания 6,1 в

Enum Constant XYZ «Project ABC» не доступен для целевого развертывания 7.0 в «Project» ABC

Но пока проект еще строит отлично и работает, как ожидалось ... так, что именно делает AppCode означают эти сообщения, когда они явно не соответствуют действительности тот факт, что проект работает отлично, а используя особенности предполагаемых недоступных методов, перечислений и т.д.

enter image description here

ответ

1

Похоже, у вас есть Deployment Target набор 6.1 в настройках проекта, и authorizationStatusForMediaType доступен начиная с версии 7.0. То же самое для других подобных случаев.

+0

Да, я это понимаю, но если это действительно не доступно, тогда проект должен либо не скомпоноваться, когда он попадает в этот код, либо не запускается, когда он попадает в этот код, и это не так, будь то перечисление, метод, свойство и т. д. Все работает нормально. Итак, в чем смысл сообщения, когда приложение все еще работает так, как ожидалось? –

+0

Нет, вы не сможете скомпилировать проект, потому что у вас также есть базовый SDK, который определяет самую новую версию SDK, на которой может работать ваше приложение. И целью развертывания является старейшая версия SDK, которую вы, скажем, думаете, что ваше приложение будет работать. Здесь https://www.raywenderlich.com/42591/supporting-multiple-ios-versions-and-devices вы можете найти хорошее объяснение. –

Смежные вопросы