Столкновение пространства имен с константами инфраструктуры AFNetworking

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

1 ответ

Попробуйте подход в этой ссылке:

http://blog.sigmapoint.pl/avoiding-dependency-collisions-in-ios-static-library-managed-by-cocoapods/

который он описывает как:

Сборка библиотеки с префиксными символами - на мой взгляд, лучший способ. Мы хотели бы добавить префикс ко всем символам в конечном файле.a, чтобы, например, AFHTTPSessionManager стал SIGMAPOINT_AFHTTPSessionManager. Ваша версия зависимости не связана с версией, используемой разработчиком, и никаких конфликтов не происходит. Единственный недостаток - больший выходной файл, потому что когда кто-то использует ту же библиотеку, конечный файл будет содержать те же символы: один раз с префиксом и один без префикса. Но весь процесс сборки будет работать гладко и без ошибок. Это решение, которое мы рассмотрим далее в этой статье.

Этот инструмент может помочь

https://github.com/cocoapods/cocoapods-packager

Другие вопросы по тегам