Aviso de Cocoapods - CocoaPods não definiu a configuração base do seu projeto porque porque seu projeto já possui um conjunto de configurações personalizadas

331

Depois de executar um pod installna base do meu projeto, recebo o seguinte erro:

O CocoaPods não definiu a configuração base do seu projeto porque porque o seu projeto já possui um conjunto de configurações personalizadas. Para que a integração do CocoaPods funcione, defina as configurações básicas do destino BluePlaquesLondonFrameworkcomo Pods/Target Support Files/Pods/Pods.debug.xcconfigou inclua Pods/Target Support Files/Pods/Pods.debug.xcconfigna sua configuração de compilação.

Provavelmente isso soa como uma pergunta boba, mas como faço para definir a configuração básica de um destino?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile é o Podfile que está causando esse problema.

http://github.com/seanoshea/BluePlaquesLondon na filial do iOS 8 é o Podfile em questão, se você estiver curioso para ver como é o projeto.

seanoshea
fonte
2
Isso é um pouco estranho, mas; Eu só quero avisá-lo sobre o iOS-KML-Framework. Ele usa a versão 1.5 do TBXML, que é um pouco problemática. Se você receber XML malformado em seu feed, seu aplicativo falhará. Convém criar uma bifurcação privada para o iOS-KML-Framework, onde você remove o '1.5' do podspec e apenas usa o HEAD do TBXML. Isso parece resolver muitos dos problemas.
churowa
Atualize seu título para incluir mais avisos reais. Por exemplo: "CocoaPods não definiu aviso de configuração".
David James
Atualizado o título @DavidJames. Feliz em alterá-lo novamente, se você acha um pouco prolixo.
Seanoshea
4
Agora é um dos títulos mais longos que eu já vi no stackoverflow.
Klaas
github.com/CocoaPods/CocoaPods/issues/2633 tem uma boa solução alternativa - definir todas as configurações para Nenhum, em seguida, executar "pod instalar"
David Airapetyan

Respostas:

583

Eu tinha o mesmo problema, mas no Xcode 6.1.1 - o que o corrigiu foi alterar a configuração do arquivo de configuração Nonepara os dois destinos relacionados aos Pods e depois executar pod installnovamente.

A configuração do arquivo de configuração é encontrada selecionando o projeto (não o destino) e, em seguida, a guia Informações.

TimD
fonte
144
Essa configuração é encontrada selecionando o projeto (não o destino) e a guia Informações.
Grav
34
Ajuda a fazer a alteração, seguida por sair do xcode, executar pod installe reabrir. Não mantenha o Xcode aberto durante esse período.
Sebastian Roth
1
Isso consertou para mim. minha configuração estava apontando para um nome antigo do xcconfig, que mudou desde que adicionei dois destinos explícitos no meu Podfile (um para o principal projeto para teste), causando a geração de novos arquivos de configuração com nomes diferentes.
Qix 4/15
10
Para aqueles que tinham a mesma preocupação que eu, definir isso para Nonequebrar coisas ... o subsequente pod installclassifica tudo.
Matthew
4
onde está essa configuração no xcode 10? Passou por todas as guias, não poderia encontrá-lo
JenonD
168

Não mexa, redefinir.

Passo a passo

  1. Mostrar Navegador de Projeto
  2. Selecionar Projeto
  3. Selecione Info
  4. Em Configurações , selecione cada um, um de cada vez (Debug, ApplicationUnitTest, Release, etc.) e, para cada destino dentro da referida configuração, defina a configuração como Nenhum .
  5. Certifique-se de que Baseado no arquivo de configuração leia 0 conjunto de configurações ou nenhum conjunto de configurações para cada configuração. Esse é o ponto crucial. 0 conjunto de configurações
  6. Sair do Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Depois de permitir a pod installetapa 7de fazer sua mágica, você poderá usar uma configuração personalizada e alterar suas configurações.

SwiftArchitect
fonte
10
essa resposta deve ser aceita, o anterior não era óbvio para mim também.
precisa
O uso da Podsconfiguração, conforme sugerido em outras respostas, não resolveu meu problema nem um pouco: as configurações de compilação já estavam correspondendo a Pods.debug& Pods.release, que era o problema. O que fez foi 0 Configurações Definidas para cada configuração. Não é a mesma resposta.
SwiftArchitect
Isso funcionou para mim também. Apenas para observar, você precisa mudar de Destinos para Projetos para ver as Configurações. Eu procurei por isso por um longo tempo até que eu tropecei no menu suspenso.
precisa saber é o seguinte
Eu votaria nisso centenas de vezes, se pudesse. Após 30 horas de batalha, o processo de compilação do Jenkins após a fusão de 4 ramos de desenvolvedores, adicionando 3 extensões a um aplicativo iOS com arquivos de configuração personalizados, bombardeando o script manifest manifest check.lock de vagens de cacau, finalmente resolveu o problema. (entre muitas outras coisas, mas essa foi a solução definitiva). : Felicidades:
Augie
"[!] Não foi possível determinar a versão Swift para os seguintes pods:"
Richard
138

Entre no XCode e abra as configurações do seu projeto e, na guia Informações, você verá "Configurações", onde é possível definir um arquivo de configuração para Debug e Release. Aparentemente, você já os definiu para algumas configurações personalizadas e o CocoaPods deseja / precisa que você use a configuração dos Pods.

Aqui está uma captura de tela

quark
fonte
7
Observe que isso não resolve o problema se você realmente precisar usar uma configuração personalizada para um propósito real. Veja esta edição em aberto .
funroll
1
Nada mudou no Xcode 6 para tornar esta resposta incorreta
quark
Outra questão, mas resolveu o meu problema. Estava usando vagens de cacau com testes de interface do usuário e isso salvou minha vida! Obrigado.
Akshit Zaveri
70

Deparou-se com o mesmo problema. Seria construído no simulador, mas não no meu dispositivo. Nenhuma das respostas resolveu isso para mim. Aqui está o que eu fiz reunindo algumas respostas:

  1. O arquivo meus pods foi alterado para usar um destino específico:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Ran pod install

  3. Isso dá um erro: [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
  4. Vá em Configurações do projeto e clique na guia Informações. Ocorrerá um erro no qual não é possível encontrar o arquivo de configuração. Defina como "Nenhum" para depuração e lançamento.
  5. Execute a instalação do pod novamente
  6. Limpe e construa. Isso funciona.
Chris Fellows
fonte
1
Entre as etapas 4 e 5, eu sempre fecho o xcode. Ocorreram problemas quando o xcode está sendo executado durante a instalação do pod.
Ray Hunter
Apenas me deparei com isso criando esquemas personalizados. O exemplo acima também funciona no Xcode 7. Eu recomendo o @srayhunter para fechar o Xcode durante uma instalação.
Subv3rsion
1
Eu gostaria de poder votar mais de uma vez. Isso sempre me pega.
Bill Burgess
16

Você também deve certificar-se de que não possui pods na raiz Podfile, definir todos os pods usados ​​em muitos destinos como esse:

def shared_pods
  pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
  shared_pods
  pod 'RestKit'
end
target 'tests' do
  shared_pods
  pod 'OCMock'
end

Você também pode precisar excluir libPods.ae, libPods-app.adas dependências de destino, executar uma limpeza e, em seguida, executar pod installnovamente.

ReDetecção
fonte
10

Acabei de encontrar esse problema depois de adicionar algumas configurações de compilação personalizadas. Eu pude ver abaixo:

Pods (target) > Target Support Files > Pods

que ele realmente criou os novos xcconfigarquivos que correspondiam às novas configurações de compilação, mas por algum motivo não pude selecioná-los no destino do projeto do meu aplicativo.

O que foi corrigido para mim foi instalar e usar o cocoapods-deintegrate :

gem install cocoapods-deintegrate

e então execute:

pod deintegrate

Seguido por:

pod install
Hodson
fonte
2
Isso me ajudou.
Krishnan
7

A linha no podfile que está gerando um problema é: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Basta fazer o seguinte: link_with ['BluePlaquesLondon'] ou este (funcionou no meu caso, espero que esteja no seu :-)):

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']

def import_pods

     pod 'TTTAttributedLabel', '~> 1.10.1'
     pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
     pod 'Google-Maps-iOS-SDK'
     pod 'IntentKit'
     pod 'HCViews'
     pod 'SVProgressHUD', :head
     pod 'iRate'
     pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'

end

import_pods

target "BluePlaquesLondonFramework" do
    import_pods
    pod 'Kiwi'
end
fred foc
fonte
Isso funcionou lindamente para mim. Eu já tinha as configurações do Cocoapods definidas de acordo com a resposta aceita, mas ainda estava vendo o aviso. Então, por que isso funciona, quando link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']não?
churowa
6

Se você adicionou uma configuração de compilação personalizada ao seu projeto existente, o Cocoapods reclamará disso.

Os Cocoapods criarão automaticamente arquivos xcconfig no diretório Pods/Target Support Files/<build_target>seguindo o padrão de nomenclatura Pods-<build_target>.<build_config>.xcconfig.

Apenas certifique-se de adicionar manualmente esses arquivos ao seu projeto no Xcode (no diretório Pods, mas não dentro do projeto Pods!). Após a inclusão desses arquivos, selecione seu projeto no Xcode, vá para a aba "Informações" e expanda sua configuração personalizada. Selecione o arquivo xcconfig apropriado para cada destino na sua configuração personalizada.

diegoreymendez
fonte
4

Eu tive o mesmo erro durante a instalação do pod. Eu tentei de tudo (reinstalar o pod, atualizar todas as jóias, etc.) e encontrei a solução que funcionava no meu caso. Ocorreu um problema devido à alteração do nome do alvo. Nesse caso, a solução é simples:

  1. Clique em Produto -> Esquema -> Gerenciar Esquemas ...
  2. Clique no seu alvo na lista e exclua-o com o sinal "-" na parte inferior da janela.
  3. Clique em "+" para adicionar o destino de volta à lista. Escolha o destino e o nome corretos.

Afinal, tudo deve funcionar.

lukszar
fonte
3
  1. Adicione os arquivos xcconfig relevantes ao seu projeto. Os Cocoapods os terão criado, mas você não pode defini-los no Xcode até que estejam no projeto.
    • Você provavelmente deseja adicioná-los ao grupo Pods onde estão os outros arquivos xcconfig dos pods. Clique com o botão direito e adicione arquivos.
    • Procure arquivos xcconfig na pasta do seu projeto ou procure Pods/Target Support Files/[TARGET_NAME]/(eu tenho diferentes cocoapods configurados para cada destino (extensão e projeto principal, isso pode ser um pouco diferente no seu caso)
  2. Vá para configurações do projeto nas Informações do seu projeto principal
  3. Para cada destino e configuração, defina a configuração de pods apropriada.
  4. pod install novamente e você não verá erros.
Joseph Lord
fonte
3

Mudei os pods do Podfile para fora do alvo. O arquivo é alterado a partir disso:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'MyProject' do

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

end

Para isso:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

target 'MyProject' do

end
Manuel BM
fonte
2

Caso esteja usando a configuração personalizada, você pode seguir a sugestão no aviso e incluir a configuração do Pod no seu arquivo de configuração

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

Isso NÃO interromperá os avisos, mas permitirá que você use sua configuração privada (há um bug aberto no aviso com o projeto CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633

Zeev Vax
fonte
2
Obrigado por adicionar uma resposta que não sacrifica sua configuração atual do projeto.
Dan Leonard
1

Então, para mim, o problema ocorreu devido aos nomes de arquivos xcconfig mencionados acima serem alterados antes da atualização do Swift 3.

Como algo estava fora de sincronia, os Cocoapods criaram uma seção de pastas 'Referências recuperadas' com os arquivos nomeados antigos e vinculados a eles.

Para consertar isso, eu:

  1. Removida a pasta 'Referências recuperadas' e os antigos arquivos .xcconfig do Xcode e do sistema de arquivos
  2. Sair do Xcode

  3. Executar instalação do pod

Tudo foi tratado para mim depois disso e os avisos sumiram.

Harry Bloom
fonte
0

Consegui compilar o projeto abordado por esse problema no XCode 6 por:

  • selecionando Projeto no Navegador de Projeto
  • escolhendo Projeto em vez de Destino
  • indo para a guia Informações
  • escolhendo Pods. (depuração / liberação) Arquivos de configuração da caixa de combinação para as respectivas configurações.

Espero que isso ajude alguém.

Michael
fonte
0

Isso aconteceu comigo porque eu já tinha uma configuração de Pod. Eu sou novo no desenvolvimento do iOS, estava pesquisando instruções para instalar o Alamofire + SwiftyJSON e acabei instalando as bibliotecas mais de uma vez, inadvertidamente. Para mim, o que funcionou foi: na pasta "Target Support Files" no projeto "Pods", selecionei os dois arquivos .xcconfig corretos e os arrastei para a pasta "Pods" do meu projeto de aplicativo. Isso permitiu a seleção dos arquivos de configuração corretos na configuração básica.

Mas, se eu executar o "pod install" novamente, o aviso será alterado para o arquivo .xcconfig anterior. Eu tento excluir os arquivos e a estrutura antiga do projeto principal, mas quando executei o comando anterior mais uma vez, dei-me o mesmo aviso e criei o arquivo "Pods.framework" na pasta "Pods" do meu projeto de aplicativo. Eu o ignorei e parece estar funcionando bem, apesar das duas estruturas. Não sei se está certo, e uma solução, se existir, seria bem-vinda.

Pablo
fonte
Isso realmente não responde à pergunta. Se você tiver uma pergunta diferente, faça-a clicando em Fazer pergunta . Você também pode adicionar uma recompensa para chamar mais atenção para essa pergunta, quando tiver reputação suficiente .
precisa saber é o seguinte
Obrigado pela explicação Petro. Eu simplesmente queria compartilhar o resultado que funcionou para mim (com avisos, mas ainda assim); ainda assim, terei mais cuidado no futuro.
Pablo
0

Eu tive um erro:

diff: /../Podfile.lock: não existe esse arquivo ou diretório diff: /Manifest.lock: não existe esse arquivo ou erro de diretório: O sandbox não está sincronizado com o Podfile.lock.

Peguei o pedido do bitbucket pela primeira vez. Limpei meu projeto e tentei de tudo (instalação do pod, atualização do pod etc.), mas nenhuma das respostas acima funcionou para mim. Depois, verifiquei o caminho em que estava instalando o pod e o corrigi e instalei novamente. Funcionou. Certifique-se de fornecer o caminho imediatamente antes de onde .xcodeproj ou .xcworkspace (se já estiver lá) existir. Pode ser que alguém se beneficie disso.

Maurya simples
fonte
-2

A solução mais simples para isso (depois de ter esse problema várias vezes):

  1. Exclua o Podfile & Podfile.lock da sua biblioteca de projetos (salve o Podfile em algum lugar para poder colar facilmente no novo Podfile)
  2. execute 'pod init'
  3. Edite o 'Podfile' à sua vontade (adicione os pods que você está usando)
  4. execute 'instalação do pod'

Isso recriaria tudo e funcionaria sempre em minutos (sem gastar tempo para fazer a engenharia reversa do "bug").

Idan
fonte