Актуальные инструкции о том, как установить XMPPFramework вручную? - PullRequest
13 голосов
/ 01 февраля 2012

Мне действительно тяжело заставить XMPPFramework работать. Я следовал всем указаниям, написанным в сети, и XCode не находит ни одного из моих классов XMPPFramework.

Ожидаемый список спецификаторов-спецификаторов перед «XMPPStream» XMPP.h: нет такого файла или каталога XMPPRoster.h: нет такого файла или каталога

Я скопировал XMPPFramework в корневой каталог моего проекта. Почему эти файлы не видны? Есть ли что-то, что мне нужно сделать в Пути поиска по заголовку или Пути поиска в библиотеке?

Я установил для этих записей значения $ (унаследованные) и $ (SRCROOT), а XCode 4.2 автоматически заполняет корневой каталог моего проекта и до сих пор не находит мои файлы.

Я совершенно уверен, что я не единственный, кто имеет эту проблему, и это шоу-стоппер. Есть идеи?

Ответы [ 3 ]

37 голосов
/ 30 мая 2015

Вики на github устарели.Вот как я установил XMPPFramework вручную.

Шаг 1

Клонируйте репозиторий XMPPFramework куда-нибудь на вашем компьютере и перетащите нужные папки в somewhere/XMPPFramework на свойПроект Xcode.

Необходимые папки:

  • Vendor / CocoaAsyncSocket
  • Vendor / CocoaLumberjack
  • Vendor / KissXML
  • Поставщик / libidn
  • Аутентификация
  • Категории
  • Core
  • Утилиты

Вам также может понадобиться Extensions, это необязательнохотя.

При перетаскивании папок на ваш Xcode важно выбрать флажки / переключатели точно так же, как это изображение:

enter image description here

Шаг 2

a) Перетащите Sample_XMPPFramework.h на свой Xcode и установите флажки / переключатели, например, шаг 1

b) переименуйте его в XMPPFramework.h

c) настройте содержимое на основе XMPPFramework.hна ваши нужды.(Я ничего не менял)

Структура файла должна выглядеть следующим образом в навигаторе проекта Xcode после выполнения шагов 1 и 2:

enter image description here

Шаг 3

ссылка на следующие фреймворки и библиотеки

  • CFNetwork.framework
  • Security.framework
  • libxml2.dylib
  • libresolv.dylib
  • libidn.a

enter image description here

Шаг 4

Добавлены эти 2 строки в Build Settings:

  • другие флаги компоновщика = -lxml2 enter image description here
  • ПУТИ ПОИСКА ЖАТКИ = / usr / include / libxml2 enter image description here

Вы должны быть хорошими после этих 4 шагов.Тем не менее, обратите внимание, что вам обычно нужно #import <UIKit/UIKit.h> перед использованием XMPPFramework

4 голосов
/ 05 апреля 2012

В XMPPFramework gitHub wiki 1 есть пошаговая инструкция, которая поможет настроить XMPPFramework для вашего проекта.

На самом деле упомянутая вами ошибка близка к тому, что также указано в инструкциях.

"Однако после импорта класса XMPPFramework, например, путем вызова '#import XMPP.h 'заставит XCode показать ошибку' XMPP.h 'не найден. Похоже, что XCode не находит ни один из файлов XMPPFramework. "

Надеюсь, этого достаточно для решения проблемыс этой проблемой вы столкнулись, хотя инструкции не предназначены специально для iOS-5.

0 голосов
/ 03 декабря 2015

Дополнительная информация, относящаяся к инструкциям в ответе @ Brian.

Добавление к шагу 3:
Если такой файл lib, как libxml2.dylib, недоступен в поле «Выбрать»рамки и библиотеки для добавления ", выполните следующие действия, чтобы найти его:

  1. Нажмите Add Other...
  2. В окне выбора файлов, COMMAND+SHIFT+G (Перейти в папку)
  3. Введите /usr/lib и затем Enter или нажмите Go
  4. Выберите нужный файл .dylib и нажмите Open

После шага4:
Также обратите внимание, что XMPPFramework и его зависимости используют ARC.Если ваше приложение в основном использует MRR вместо ARC, либо преобразуйте приложение в ARC, либо выполните шаг 5.

Шаг 5

Добавьте флаг компилятора -fobjc-arc в файлы XMPPFramework.

В Xcode для каждой цели, которая будет использовать XMPPFramework,

  • Перейти к настройкам цели
  • Перейти к Build Phases
  • Развернуть Compile Sources
  • Выберите все файлы, связанные с XMPPFramework в списке
  • Нажмите Enter, чтобы открыть окно редактирования для флагов компиляторов
  • Тип -fobjc-arc
  • Enter еще раз, чтобы сохранить изменения.

Список Compile Sources не отсортирован, поэтому полезно использовать поле поиска для фильтрации списка по XMPP, а затем по XEP.Это находит большинство файлов, но есть и те, которые нужно выбрать из полного списка файлов.

...