Исключение времени выполнения после обновления до 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 на основе проекта.