Так что я понял это сам, с большой помощью из разных блогов.Что-то базовое должно быть более тривиальным и хорошо документированным ... Но здесь мы приступили, вот что я сделал, чтобы получить библиотеку для AsiHttpRequest:
- Создать новый проект iOS.Выберите шаблон «Статическая библиотека Cocoa Touch».Называй как хочешь.Вы не хотите ставить галочку «Использовать автоматический подсчет ссылок», так как AsiHttpRequest не поддерживает его.
- Выберите местоположение для вашего библиотечного проекта (будет иметь значение позже).
- Удалить значение по умолчанию.h- и .m-файл, созданный Xcode.
- Перетащите файлы AsiHttpRequest в проект
- Вы можете добавить рамки, от которых зависит AsiHttpRequest, но вам придется добавитьв любом случае, это ваш основной проект, поэтому в этом нет необходимости.
- Попробуйте построить проект, он должен делать это без ошибок.
- Откройте ваш главный проект
- Из поиска, перетащите файл библиотеки .proj в ваш основной проект (в Xcode, чтобы он «приземлился» в главном файле проекта)
- Теперь проект библиотеки должен появиться под вашим основным проектом (все еще в XCode).Он должен быть расширяемым, и вы также должны видеть файлы проекта библиотеки.Если этого не произойдет, попробуйте закрыть все открытые проекты и снова открыть основной проект.
- Выберите основной проект и выберите цель.В разделе «Этапы сборки - связать двоичные файлы с библиотеками» щелкните знак «+».
- В списке фреймворков вы должны увидеть свой библиотечный проект (называемый что-то вроде libname.a).Выберите этот файл
- Недавно добавленный файл может отображаться красным в списке платформ, не волнуйтесь, он все равно работает.Угадайте, что это ошибка.
- Все еще под целью, перейдите в Настройки сборки
- В разделе Пути поиска по заголовку добавьте относительный путь поиска, где находятся библиотеки .h-файлов.Это относительно ваших основных проектов .proj-файл.(Например, ../some folder / libproject /)
- Надеемся, ваш основной проект будет построен без ошибок, и проект библиотеки будет построен в то же время, используя ту же конфигурацию, что и основной проект.
Я понятия не имею, хороший ли это подход или есть какой-то более простой способ сделать это.Однако мне это нравится, поскольку я могу использовать проект библиотеки в нескольких проектах.И если я хочу обновить проект библиотеки, мне нужно будет сделать это только в одном месте, а другие проекты также будут обновлены, поскольку все они ссылаются на один и тот же проект.
Edit1: У меня были некоторые проблемы с библиотечными проектами, использующими целевые категории c.Я получил нераспознанный селектор, отправленный экземпляру ошибок во время выполнения при попытке вызвать эти методы.Эта проблема была решена следующим ответом здесь .
- Перейдите для создания настроек цели в основном проекте и добавьте -ObjC к записи, которая называется Другие флаги компоновщика * 1046.*
Edit2: Я нашел этот шаблон для создания универсальных фреймворков.Я не пробовал, но думаю, что-то подобное тоже подойдет.