Обновление настройки диалекта языка C в XCode приводит к множественным ошибкам в приложении

#xcode #c 11 #frameworks

#xcode #c 11 #фреймворки

Вопрос:

Мы используем XCode с Objective-C для разработки нашего приложения с 2012 года.

Мы обновили фреймворк FBSDKShareKit, и теперь мы получаем следующую ошибку:

 "Photos requires C  11 or later"
  

Ошибка появляется в PHImageManager.h, который является частью платформы Photos. Похоже, что новый Facebook SDK использует эту платформу.

Решение, которое я нашел для этой конкретной проблемы, заключается в изменении настройки диалекта языка C на GNU 11. Но как только мы изменим его, мы получим множество ошибок, подобных следующим:

  • между » знаками» и именами переменных требуются пробелы.
  • переменные простых типов (bool, int, float и т.д.) Не могут быть установлены в ноль.
  • значения с плавающей точкой не могут быть неявно установлены в двойные значения.
  • перечисления не могут быть установлены в numbers (требуется приведение).

Нам пришлось бы реорганизовать наш код в 1000 местах в 100 разных файлах, чтобы избавиться от всех этих ошибок.

Есть ли способ обойти эту проблему, либо не обновляя настройку диалекта языка C , либо игнорируя определенные типы ошибок?

Комментарии:

1. У меня такая же проблема, как и у вас. Вы когда-нибудь это понимали?

2. @NoahP К сожалению, нет. К счастью, рефакторинг прошел не так плохо, как я думал. Мне нужно было выполнить менее 100 незначительных исправлений, и впоследствии он успешно скомпилировался.