Configurando Cocoapods com uma biblioteca estática e um aplicativo iOS existentes
Estou tendo problemas para obter meu espaço de trabalho para compilar corretamente com Cocoapods. Existem 3 projetos no espaço de trabalho, cada um com seu próprio alvo:
libPods - biblioteca estática Cocoapods com todas as dependências externaslibCommon - Minha biblioteca estática onde eu mantenho todo o meu código compartilhado (controladores de base, código de rede, interface comum, etc)myApp - Meu aplicativo iOSTanto o libCommon quanto o myApp requerem as dependências externas dos libPods. Originalmente eu pensei que funcionaria assim:
libPods constróilinks libCommon contra libPods e buildsmyApp vincula-se ao libCommon e constróiNeste cenário libCommon "possui" os pods, e então myApp apenas liga contra o libCommon como eu sempre fiz antes do Cocoapods ... mas aparentemente bibliotecas estáticas não gostam de estar ligadas a bibliotecas estáticas (eu tenho um monte de erros de biblioteca dinâmica). Eu li em um problema do github em algum lugar que, em vez disso, eu deveria construir libPods e libCommon e, em seguida, myApp deveria vincular-se a ambas as bibliotecas. Agora meu podfile é algo como isto:
workspace 'MyApp.xcworkspace'
platform :ios, '5.0'
link_with ['Common', 'MyApp']
target 'MyApp' do
xcodeproj 'MyApp.xcodeproj'
pod 'AFNetworking', '1.1.0'
pod 'TTTAttributedLabel', '1.6.0'
pod 'JSONKit', '1.5pre'
pod 'Reachability', '3.1.0'
end
Com essa configuração, o myApp possui todos os pods e, em seguida, nas configurações de compilação do libCommon, especifico o caminho para os cabeçalhos de pod. Isso cria OK até que eu tente usar uma das classes no libCommon. Depois de fazer isso, recebo um desses_OBJC_CLASS_$_Blah
erros (o que me diz que, embora os cabeçalhos estejam disponíveis, ele ainda não está vinculado corretamente). Quando tento vincular o libCommon manualmente em "Build Phases", recebo um monte de erros de símbolo duplicados (o que me faz acreditar que ele já está vinculado?). O que o diabo?
Qual é a maneira de fazer isso corretamente e como deve ser meu podfile?