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

Странный вопрос после обновления до iOS 4.1 SDK

Я обновил iOS SDK до недавно выпущенного 4.1, и теперь у меня возникает следующая ошибка при создании моего приложения:

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23     

/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23: error: expected function body after function declarator

Посмотрев на эту строку в файле .h, я вижу следующее:

CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0);

Действительно интересная вещь - определить __MAC_10_7, которая, кажется, нигде не определена. Я получаю эту ошибку при предварительной компиляции файла .pch моего приложения.

Любопытно, что простое приложение hello world компилируется.

Любая идея, что я могу сделать?

Спасибо заранее!

Стелиан

4b9b3361

Ответ 1

Это известная ошибка с SDK iOS 4.1 и создание с использованием LLVM для iPhone Simulator. Вы можете прочитать все об этом в этой теме на форумах разработчиков Apple.

Рекомендуемое решение состоит в том, чтобы добавить следующие значения в Other C Flags в ваши настройки сборки проекта: -D__IPHONE_OS_VERSION_MIN_REQUIRED=040100, где вы заменяете 040100 своей целевой версией развертывания (например, 030000 для версии 3.0).

Ответ 2

У меня есть эта проблема при использовании компилятора LLVM. Попробуйте перекомпилировать с помощью GCC, и проблема (для меня) исчезнет.

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

- обновление:

Таким образом, это похоже на проблему с CLANG. LLVM GCC 4.2 отлично работает.

Я все еще думаю, что это, вероятно, проблема с моей конфигурацией. Даже пустой проект не будет компилироваться под LLVM CLANG 1.5 для меня.

- обновить 2:

Таким образом, настройка параметров минимальной требуемой версии не выполняется в настройках информации о проекте. Я вручную установил его через:

Другие флаги C: -D__IPHONE_OS_VERSION_MIN_REQUIRED = 031300

(для минимума iOS 3.1, очевидно - если вам нужна более поздняя версия, то вы можете использовать 040100 для версии 4.0)

Это похоже только на проблему симулятора с CLANG/LLVM. Компиляция для устройства напрямую кажется очень хорошей.

Ответ 3

Может быть, вы должны строить с последним Xcode 4, это требование? MAC_10_7 будет определен в заголовках системы, поставляемых с компилятором, который, как я предполагаю, может быть в SDK, но я думаю, что нет. Я предполагаю, что это когда вы создаете для симулятора.