Дубликат символа для класса в библиотеке и проекте
Я использую классы SBJson в моей библиотеке и пытался использовать библиотеку в моем проекте, у меня возникла ошибка дублирования символов, потому что я также использую эти файлы в основном проекте.
Я не могу добавить префиксы к этим файлам, так как обычно обойти эту проблему?
Я видел другие ответы, которые предлагают переименовать классы с префиксами, но на самом деле это не решение, поскольку правильно, что эти файлы имеют дубликаты - это открытый исходный код.
3 ответа
Вы можете удалить файлы SBJSON (.m) из цели проекта библиотеки (используя экран "Build Phases" в XCode), и тогда проект сможет компилироваться с использованием файлов SBJSON, которые являются частью основного проекта. Однако могут возникнуть проблемы, если оба проекта используют разные версии библиотеки SBJSON.
Лично я хотел бы, чтобы все библиотечные проекты не включали другие библиотеки, но отмечали (в файле "Read Me" или что-то в этом роде), что это зависимость, и разработчик должен включить зависимости в основной проект. Из-за этого у меня было много проблем с дублирующимися символами в прошлом.
Просто зайдите в настройки сборки и
искать нет общих блоков и
установите это НЕТ.
И построить снова, вы не получите эту ошибку снова.
CheersKP
Вы можете просто включить.h файлы в свой проект и удалить.m для SBJson. Таким образом, вы можете импортировать.h в ваш код, и он скомпилируется.