Исключение времени выполнения после обновления до Xcode4.5. Базовый SDK iOS6

Недавно я обновил свою кодовую базу для использования базового SDK iOS6 - я использую XCode 4.5. Мне только пришлось изменить dylibxml2.2.3.7 на dylibxml2.2. Он отлично работает на симуляторе 6.0. Я использую библиотеки, такие как GoogleAnalytics, Three20.

Но когда я запускаю код на iOS 5 (iPhone4), он запускается при запуске с этой следующей ошибкой:

Я не могу сказать, где именно происходит сбой, потому что все, что я вижу, это машинные коды, когда он сбой

dyld: неудачная ленивая привязка символов: Символ не найден: _objc_setProperty_nonatomic

Ссылка на:/Пользователи//Library/Поддержка приложений /iPhone Simulator/5.0/Applications//

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation

Ответ 1

Я тоже сталкиваюсь с той же ошибкой при создании моей собственной библиотеки и запуска ее в своем примере кода. После тщательного прочтения журнала сборки я выясню причину.

Я установил цель развертывания в iOS 3.0, но последний Xcode поддерживает только iOS 4.3 и более поздние версии. Таким образом, компилятор автоматически устанавливает цель развертывания для iOS 6.0, которая генерирует ошибку всякий раз, когда проект работает под iOS 6.0. Я исправил его, установив цель развертывания в iOS 4.3 в моем проекте lib.

Ответ 2

Существует проблема с изменением цели развертывания SDK. Я просто создал приложение на основе табуляции. Не делал никаких изменений в любом файле. Хорошо работает на симуляторе ios 6, но если я изменю цель развертывания до 5 и запустить симулятор ios 5, который создает исключение (сигнал SIGABRT). Xcode версии 4.5 и целевого SDK 6.0 для развертывания по умолчанию.

Ответ 3

Или может быть, что вы используете библиотеку, которая была скомпилирована с более высоким базовым SDK, чем SDK на основе проекта.