Ох Вы и вопрос оформили... хрен поймешь.
А если по делу, то существует несколько подходов
1) Таскать в виде файликов. Дешево и сердито, выбор настоящих джедаев (раньше, кста, так и делали)
2) Использовать чужие наработки в виде lib(в iOS только статические) или Framework'ов. Для этого пункта автор библиотеки должен подготовить их сам.
3) Использовать гитовские submodule.
4) Использовать Cocoapods. В двух словах это выглядит так: автор библиотеки публикует ее особым образом. Пользователь программист у себя в специальном файле прописывает нужные ему библиотеки, которые автоматически вытаскиваются и кладутся в проект cocapod'овской тулзой. Название либ можно найти на сайте
https://cocoapods.org или непосредственно у
автора. При этом вы в любой момент вольны обновить/добавить/удалить все/выбранную библиотеку и, что не маловажно иногда, имеете прямой доступ к исходникам библиотеки. Из минусов - кокаподс немного переделывает проект, что иногда неприемлемо.
5) Carthage - эдакая помесь 4 и 2 варианта. Т.е. вы избавляетесь от грязной работы по генерации библиотек, но при этом вам прийдется ограничится проектами только под iOS 8. Там используется специальная технология (c) от Apple, которая не работает на старых версиях.
Что касается позиции Apple - то она предлагает реюзать код используя подход из пункта 2 + для iOS 8 эту же специальную технологию (c). По этому то, эти Carthage и CocoaPod'ы выглядят так странно - они хоть дефакто и стандарт в мире apple разработки, но при этом Apple официально ЕЩЕ не замечены.