Сначала убедитесь, что базовый SDK настроен на использование самой последней информации о проекте. Если это не сработает, тогда читайте дальше.
У меня была похожая проблема с UIBackgroundTaskIdentifier, который был представлен в 4.0 и скомпилирован нормально перед обновлением SDK. Оказалось, что Xcode пытается использовать заголовки из iOS 3.2 SDK. Вывод на консоль процесса сборки показал, что старый путь поиска заголовков был передан в компилятор, хотя базовый SDK был определенно задан как самый последний в Project Info.
Перезагрузка проекта не помогла. Перезапуск Xcode не дал эффекта. Есть сообщения, что ручное редактирование файла проекта было необходимо с прошлыми обновлениями. Однако когда я открыл файл проекта в текстовом редакторе, я обнаружил, что переменные SDKROOT были правильно установлены на последний путь SDK.
В моем случае сработало закрытие Xcode, восстановление файла «MyProject.xcodeproj / project.pbxproj» из системы контроля версий до точки непосредственно перед обновлением SDK, затем перезапуск Xcode и открытие проекта.