В то время как я видел много вопросов, касающихся Cocoapods и статических библиотек, большинство из них, похоже, предполагают, что в конечном итоге у вас будет одно рабочее пространство с вашей статической библиотекой и конечным целевым приложением.
В моем сценарии я создаю статическую библиотеку. Более конкретно, я взламываю MyLib.framework для использования пользователями. Я бы действительно хотел управлять зависимостями MyLib.framework с Cocoapods, но он создает много болевых точек, когда потребители моей библиотеки также используют Cocoapods.
Например, моя библиотека имеет зависимость AFNetworking, которой я управляю с Cocoapods. Когда я создаю свою библиотеку, она ссылается на libPods.a, которая включает в себя AFNetworking, а также некоторые "dummy" файлы/объекты. Если пользователи моей платформы также используют Cocoapods для создания своего приложения, они увидят что-то вроде этого:
duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods in:
/Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o)
/Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)
duplicate symbol _OBJC_CLASS_$_PodsDummy_Pods in:
/Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o)
/Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)
ld: 2 duplicate symbols for architecture i386
Я предполагаю, что если они будут добавлять зависимость AFNetworking, они также получат дубликаты символов, относящихся к AFNetworking.
Я планирую в конечном итоге также распространять MyLib вместе с Cocoapods, но я также хочу иметь возможность распространять сам MyLib.framework.
Есть ли способ использовать Cocoapods с моей библиотекой, делая Cocoapods безопасным для любого потенциального пользователя?