Xcode 7 Внимание! был создан для более новой версии iOS (5.1.1), чем связанная (5.1)
Я обновил проект Xcode 6 до Xcode 7 и начал видеть, что предупреждение было создано для более новой версии iOS (5.1.1), чем связанное (5.1).
Как исправить это предупреждение?
Ответы
Ответ 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 на внешнем жестком диске, и система выбирала инструменты на этом диске вместо внутреннего. (Предположительно, потому что они были более новыми бета-инструментами?)... Удаление диска решило мою проблему!