Технические вопросы и ответы QA1659

Назад Совместимость С libxml2 и iPhone SDK

Q: Почему делает мой сбой приложения с «Несовместимым сообщением об ошибке» версии библиотеки?

A: Почему делает мой сбой приложения с «Несовместимым сообщением об ошибке» версии библиотеки?

Если отвечают следующим условиям:

тогда приложение откажет, когда работается 2.x устройства. Это вследствие изменения версии совместимости в libxml2 между iPhone OS 2.2.1 и iPhone OS 3.0 и позже. Можно работать вокруг этой проблемы путем соединения непосредственно с более старой версией libxml2.

Фиксация версии совместимости

Можно соединиться непосредственно с библиотекой путем изменения «Другой записи» Флагов Компоновщика для проекта XCode. Для этого откройте настройки и поиск Build проекта «Других Флагов Компоновщика». Тогда найдите полный путь к libxml2 в надлежащем 2.x SDK и добавьте это к флагам. Например, если Вам установили 2.2.1 SDK, можно использовать следующее:

$(DEVELOPER_DIR)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/lib/libxml2.dylib.

XCode заменит $(DEVELOPER_DIR) переменная с каталогом, где Ваши инструменты разработчика установлены, который делает это более переносимое в случае, если проект позже открыт на машине с инструментами, установленными в каталоге не по умолчанию.

Рисунок 1  , Соединяющийся непосредственно с iPhone OS 2.2.1 версия SDK libxml2.

Создание его работать над Средством моделирования

Установка, описанная выше, решит проблему при создавании приложения для Устройства, но потому что путь к библиотеке полностью указан, XCode не может переключиться на надлежащую версию при создании для Средства моделирования. Необходимо добавить «Условие Устанавливающего Сборки» к «Другой записи» Флагов Компоновщика. Одно условие укажет «Другие Флаги Компоновщика» при создании для Устройства, другое условие сделает так при создании для Средства моделирования. Можно добавить условия устанавливающего сборки путем выбора установки и затем щелчка по меню в нижней левой части окна.

Рисунок 2  , Добавляющий условие устанавливающего сборки.

Это создаст дочерний элемент для флагов компоновщика, только включенный, когда правила, указанные в условии устанавливающего сборки, являются истиной. Необходимо будет добавить два условия - один для Устройства и один для Средства моделирования. Установите флаг компоновщика для устройства, как описано выше. Для Средства моделирования необходимо использовать Основу версия SDK путем указания -lxml2. При предыдущей установке флага компоновщика без условия сборки необходимо удалить тот флаг.

Рисунок 3  Отдельный компоновщик отмечает для Устройства и Средства моделирования.


История версии документа


ДатаПримечания
05.08.2009

Новый документ, описывающий, как работать вокруг ошибки ссылки «Incompatible library version» при использовании libxml2.