Подтвердить что ты не робот

Создание iOS-структуры: включая сторонние библиотеки и код

Im создает статическую инфраструктуру iOS. Я хочу использовать сторонний код, поэтому я использую AFNetworking в качестве примера в своей структуре. AFNetworking популярен. Теперь я могу ощутить конфликты пространства имен. Какая здесь самая лучшая практика? Насколько я понимаю, у меня есть 3 варианта:

1) Постройте AFNetworking в мою инфраструктуру, экспортируя заголовки. Это позволяет клиентам использовать версию AFNetworking в моей библиотеке, но они не могут использовать другие фреймворки, которые также связывают AFNetworking. Они полагаются на меня для получения обновлений для AFNetworking, если они основываются на нем.

2) Код в заголовках AFNetworking, но включите в свои проекты сторонних разработчиков AFNetworking. Это добавляет дополнительный шаг для пользователей инфраструктуры, они должны добавить источник AFNetworking. В будущем могут существовать несовместимости версий, но, по крайней мере, если другая инфраструктура использует AFNetworking, они могут использовать это в то же время.

3) Повторное пространство имен AFNetworking и сохранить заголовки закрытыми. Таким образом, я избегаю конфликтов конфликтов имен каким-либо образом, за исключением того, что становится очень сложно обновить мою копию AFNetworking. Окончательный бинарный бит становится немного больше, но все проблемы совместимости решены. Для меня это намного больше.

Есть ли у меня какие-либо другие варианты? Каковы наилучшие методы?

4b9b3361

Ответ 1

Лучшим вариантом является использование http://cocoapods.org. Таким образом, можно объявить зависимости libs и получить одну загрузку для всего проекта.

Не переименовывать заголовки. Занимает много времени и тяжело.

P.D: Пример этого:

http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/