Подтвердить что ты не робот

Xcode 7 Внимание! был создан для более новой версии iOS (5.1.1), чем связанная (5.1)

Я обновил проект Xcode 6 до Xcode 7 и начал видеть, что предупреждение было создано для более новой версии iOS (5.1.1), чем связанное (5.1).

Как исправить это предупреждение?

4b9b3361

Ответ 1

В моем случае это предупреждение было создано, потому что iOS-Deployment-Target одного из моих подпроектов XCode была выше (7.1), чем в моем базовом проекте (7.0). Если вы используете cococapods, эта неправильная конфигурация может произойти, если вы укажете неправильную версию платформы iOS в своем подфайле. В моем примере, я указал в моем подфайле

platform :ios, '7.1' 

тогда как я установил цель развертывания в свой XCode-проект на iOS 7.0. Установка параметра DeploymentTarget подпроекта в ту же версию iOS, что и BaseProject, устраняет это предупреждение.

Ответ 2

Обновление: похоже, разрешено с помощью Xcode 7.3 (7D175). Я удалил флаг -w, предупреждение больше не появляется.

Это, по-видимому, известная ошибка в Xcode 7.0 и 7.1B1 (ошибка # 21813082).

В качестве временного обходного пути для подавления обширных предупреждений флаг -w может быть добавлен в настройки сборки → Другие флаги компоновщика:

  • Выберите проект
  • Выберите свою цель
  • Выберите вкладку "Настройки сборки"
  • Прокрутите вниз до "Связывание"
  • Изменить "Другие флаги компоновщика" и добавить "-w"

Я только добавил это к настройкам сборки Debug и добавил в AppDelegate следующее: как только напоминание:

#ifdef DEBUG
#warning Linker warnings suppressed (-w in build settings)
#endif

Это, по крайней мере, помогает быстро определить реальные предупреждения вместо того, чтобы результаты сборки были залиты одним и тем же предупреждением для каждого источника (в моем случае появилось более 150 предупреждений).

Ответ 3

В моем случае я обновил проект до iOS 6, но проблема не исчезла.

Тогда я понял, что цель переопределяет это как iOS 5.1.1. Я очистил настройки цели, и предупреждения исчезли.

Версия XCode 7.0 (7A220).

Target settings

Ответ 4

В моем случае у меня был установлен мой проект 8.4, но все остальные подпроекты/цели все еще находятся на 9.0. Похоже, что это вызвано несоответствиями цели развертывания.

Для тех, кто использует Cocoapods:

  • Перейдите по проектам и целям Pod.
  • Измените цели развертывания на желаемый.

Убедитесь, что все они похожи.

Ответ 5

попробуйте добавить "-w" в "Linking- > Other Linker Flags".

Это происходит в моем случае, когда mySDK построен с базовым SDK больше, чем целевой объект myProject.

Ответ 6

В моем случае цель развертывания в разделе проекта (7.0) отличалась от целевых целей развертывания (8.0). Поэтому проверьте свои цели развертывания для своего проекта, и каждая цель в вашем проекте будет одинаковой.

Ответ 7

Первое изменение цели развертывания iOS в рамках проекта затем изменит цель развертывания в рамках целевых значений. Удалить файл в /Users/yourUser/Library/Developer/Xcode/DerivedData (rm -rf yourProject). Подстройте снова, затем попросите предупредить.

Ответ 8

В моем случае я построил библиотеки с новейшими iOS, но цель развертывания приложения ниже. Поэтому я думаю, что я ничего не могу сделать, кроме добавления -w в другой флаг компоновщика

Ответ 9

В моем случае я изменил цель развертывания в целях, не меняя ее в проекте.

Чтобы решить эту проблему, я изменил цель развертывания как для проекта, так и для целей, а затем выполняю обновление модуля.

Ответ 10

На всякий случай, если кто-то испытывает такое же недоумение, как и я: я обнаружил, что у меня была бета-версия Xcode на внешнем жестком диске, и система выбирала инструменты на этом диске вместо внутреннего. (Предположительно, потому что они были более новыми бета-инструментами?)... Удаление диска решило мою проблему!