Я пытался создать набор повторно используемых библиотек для разработки приложений, но я начинаю сталкиваться с проблемой.
Одна из моих статических библиотек - это набор методов общего использования (категории на базовых классах Objective-C, чтобы улучшить их удобство использования), которые я обычно использую в каждом проекте.(Мы назовем это Lib A ... то есть проект XCode A производит libProjectA.a)
Затем у меня есть другие статические библиотеки, вещи, которые содержат специализированный код для математики и т. Д. (Мы назовем это LibB.) Lib B связан с Lib A, потому что он должен использовать некоторые из этих общих функций.(т. е. проект XCode B связывается с libProjectA.a и создает libProjectB.a)
В моем проекте XCode я хочу включить и зависеть от Lib A, потому что в нем есть мои обычные вещи, которые я использую постоянноЯ также хочу включить и зависеть от Lib B, потому что мне нужна эта специализированная математическая функциональность.(т.е. мой проект приложения хочет связать с libProjectA.a и libProjectB.a)
Однако, когда я пытаюсь построить свой проект XCode, я получаю ошибки для дублированных символов, потому что символы, которые определены в Lib A, являютсятакже определено в Lib B.
ld: duplicate symbol _OBJC_METACLASS_$_Foo in /Users/kenny/xcode_build/Release-iphonesimulator/lib_ApplicationCore.a(Foo.o) and /Users/kenny/xcode_build/Release-iphonesimulator/lib_SpecializedMath.a(Foo.o)
Как обойти эту проблему?Я хочу разработать многократно используемые библиотеки, чтобы ускорить разработку приложений, а также повысить стабильность благодаря проверенному / усовершенствованному коду.Я подхожу к этому с неправильной точки зрения?Я разрабатываю для iOS, поэтому я не могу использовать dylibs, они должны быть статическими.
Как я могу включить эти библиотеки в мой проект, когда они взаимозависимы и избегают дублирования символов?