Como definir dependências do projeto Xcode com diferentes configurações de compilação?

Eu tenho um espaço de trabalho do Xcode 7.3 com três projetos, App, FrameworkA e FrameworkB. Cada projeto tem um único alvo. Como é o iOS, os destinos da estrutura são Cocoa Touch Frameworks, o que significa estruturas que contêm bibliotecas compartilhadas dinamicamente vinculadas.

O aplicativo depende da estrutura A, que depende da estrutura B. Essas dependências estão funcionando, na medida em que A se vincula adequadamente ao produto de construção de B e o aplicativo se vincula e incorpora adequadamente as estruturas A e B (porque você não pode ter uma estrutura incorporando outra , parece que um pacote de aplicativos precisa vincular e incorporar dependências diretas e transitivas.)

Mas aqui está meu problema. As estruturas A e B têm as configurações usuais de compilação, Debug e Release. O aplicativo tem uma configuração de compilação adicional, LocalRelease, que é acionada pela ação Executar e usada para criar uma compilação otimizada (como Release), mas com código assinado com uma identidade de desenvolvedor (como Debug).

Quando tento compilar o App com essa configuração de compilação LocalRelease, isso interrompe a compilação, pois quebra as dependências das estruturas A e B. Acredito que é porque essas estruturas não possuem configurações de compilação LocalRelease, portanto, o Xcode nunca coloca seus produtos de compilação em um Pasta LocalRelease-iphoneos, como acontece com o App.

Portanto, minha pergunta restrita é: como faço para definir configurações de compilação para que um projeto com um nome de configuração de compilação não padrão (como LocalRelease) possa depender de outros projetos que usam apenas os nomes de configuração de compilação padrão? Espero que exista uma maneira simples de fazer isso que não exija a adição de scripts ou arquivos xcconfig, mas se necessário, eu adoraria entender o porquê.

E minha pergunta mais ampla é: geralmente é uma má idéia introduzir configurações de compilação adicionais porque elas não permitem a interação suave de dependências entre projetos em um espaço de trabalho compartilhado? Fui levado a definir essa terceira configuração porque queria uma construção local otimizada, não queria definir um novo esquema e queria que a escolha do tipo de construção fosse expressa pelas várias ações de construção (execução, perfil, liberação) de um único esquema.

Mas talvez essa fosse a maneira errada de fazer isso. Desde que os nomes de configuração das unidades gerem caminhos de diretório de produtos de construção, e os projetos dependentes precisem encontrar os produtos de construção uns dos outros em um diretório compartilhado, parece que a introdução de um nome de configuração de construção não padrão em um projeto interromperá a interoperação dependia de outros projetos.

questionAnswers(1)

yourAnswerToTheQuestion