Странная проблема после обновления до iOS 4.1 SDK - PullRequest
18 голосов
/ 09 сентября 2010

Я обновил 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.

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

Заранее спасибо!

Stelian

Ответы [ 3 ]

42 голосов
/ 09 сентября 2010

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

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

3 голосов
/ 09 сентября 2010

У меня есть эта проблема при использовании компилятора 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. Компиляция для устройства напрямую работает нормально.

0 голосов
/ 09 сентября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...