Avviso Cocoapods - CocoaPods non ha impostato la configurazione di base del progetto perché il progetto ha già un set di configurazione personalizzato


331

Dopo aver eseguito pod installa alla base del mio progetto, viene visualizzato il seguente errore:

CocoaPods non ha impostato la configurazione di base del progetto perché il progetto ha già un set di configurazione personalizzato. Affinché l'integrazione CocoaPods funzioni, impostare le configurazioni di base della destinazione BluePlaquesLondonFrameworksu Pods/Target Support Files/Pods/Pods.debug.xcconfigo includere la Pods/Target Support Files/Pods/Pods.debug.xcconfigconfigurazione di compilazione.

Probabilmente sembra una domanda sciocca, ma come posso impostare la configurazione di base per un obiettivo?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile è il Podfile che causa questo problema.

http://github.com/seanoshea/BluePlaquesLondon sul ramo di iOS 8 è il Podfile in questione se sei curioso di vedere che aspetto ha il progetto.


2
Questo è un po 'fuori tema, ma; Voglio solo avvisarti di iOS-KML-Framework. Utilizza la versione 1.5 di TBXML, che è un po 'buggy. Se ricevi XML non valido nel tuo feed, l'app si arresterà in modo anomalo. Potresti voler creare un fork privato per iOS-KML-Framework in cui rimuovi '1.5' dal podspec e usi semplicemente HEAD di TBXML. Ciò sembra risolvere molti problemi.
Churowa,

Si prega di aggiornare il titolo per includere più avvisi reali. Ad esempio: "CocoaPods non ha impostato un avviso di configurazione".
David James,

Aggiornato il titolo @DavidJames. Felice di modificarlo di nuovo se lo pensi un po 'prolisso.
seanoshea,

4
Ora è uno dei titoli più lunghi che abbia mai visto su StackOverflow.
Klaas,

github.com/CocoaPods/CocoaPods/issues/2633 ha una buona soluzione: imposta tutti i config su Nessuno, quindi esegui "installazione pod"
David Airapetyan,

Risposte:


583

Ho avuto lo stesso problema, ma in Xcode 6.1.1 - ciò che mi ha risolto è stato modificare l'impostazione del file di configurazione Noneper i due target relativi a Pod, quindi eseguire di pod installnuovo.

L'impostazione del file di configurazione si trova selezionando il progetto (non la destinazione) e quindi la scheda Informazioni.


144
Questa impostazione si trova selezionando il progetto (non l'obiettivo) e quindi la scheda Informazioni.
Grav,

34
Aiuta ad apportare la modifica, seguita da uscire da xcode, in esecuzione pod install, quindi riaprire. Non tenere Xcode aperto durante quel periodo.
Sebastian Roth,

1
Questo mi ha risolto. la mia configurazione puntava a un vecchio nome xcconfig, che è cambiato da quando ho aggiunto due target espliciti nel mio Podfile (uno per il progetto principale per il test), causando la generazione di nuovi file di configurazione con nomi diversi.
qix,

10
Per coloro che hanno avuto la mia stessa preoccupazione, quell'impostazione che Noneavrebbe spezzato le cose ... il successivo ha pod installrisolto tutto.
Matteo,

4
dove si trova questa impostazione in xcode 10?
Ho passato in rassegna

168

Non armeggiare, ripristinare.

Passo dopo passo

  1. Mostra Project Navigator
  2. Seleziona progetto
  3. Selezionare Info
  4. In Configurazioni , selezionane uno alla volta (Debug, ApplicationUnitTest, Release, ecc.) E, per ogni destinazione all'interno di detta configurazione, imposta la configurazione su Nessuno .
  5. Assicurarsi che Basato sul file di configurazione indichi 0 Configurazioni impostate o Nessuna configurazione impostata per ciascuna configurazione. Questo è il punto cruciale. 0 Configurazioni impostate
  6. Esci da Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Una volta che hai permesso pod installal passaggio 7di fare la sua magia, potresti essere in grado di utilizzare una configurazione personalizzata e modificare le tue configurazioni.


10
questa dovrebbe essere una risposta accettata, il precedente non era ovvio nemmeno per me.
Evgeniy Kleban,

L'uso della Podsconfigurazione, come suggerito in altre risposte, non ha risolto il mio problema in alcun modo: le impostazioni di costruzione erano già corrispondenti Pods.debuge Pods.release, che era il problema. Ciò che ha fatto è stato 0 Configurazioni impostate per ciascuna configurazione. Non è la stessa risposta.
SwiftArchitect,

Questo ha funzionato anche per me. Solo per notare, devi cambiare da Target a Progetti per vedere le Configurazioni. Ho cercato questo per molto tempo fino a quando non sono inciampato nel menu a discesa.
marty331,

Vorrei votare questo cento volte se potessi. Dopo 30 ore di lotta contro il processo di creazione di Jenkins dopo aver unito 4 filiali di sviluppatori aggiungendo 3 estensioni a un'app iOS con file di configurazione personalizzati, bombardando lo script manifest.lock di controllo dai pod di cacao, questo ha finalmente risolto il problema. (tra molte altre cose, ma questa è stata l'ultima correzione di paglia). : Cin cin:
Augie

"[!] Impossibile determinare la versione di Swift per i seguenti pod:"
Richard,

138

Vai in XCode e apri le impostazioni del tuo progetto e nella scheda Informazioni, vedrai "Configurazioni" in cui puoi impostare un file di configurazione sia per il debug che per il rilascio. Apparentemente hai già impostato questi su una configurazione personalizzata e CocoaPods vuole / ha bisogno che tu usi la configurazione Pods.

Ecco una schermata


7
Si noti che ciò non risolve il problema se è effettivamente necessario utilizzare una configurazione personalizzata per uno scopo reale. Vedi questo numero aperto .
funroll

1
Nulla è cambiato in Xcode 6 per rendere questa risposta errata
quark

Un altro problema, ma ha risolto il mio problema per me. Stavo usando i baccelli di cacao con i test UI e questa cosa mi ha salvato la vita! Grazie.
Akshit Zaveri,

70

Si è imbattuto nello stesso problema. Si baserebbe sul simulatore ma non sul mio dispositivo. Nessuna delle risposte ha risolto questo per me. Ecco cosa ho fatto mettendo insieme alcune risposte:

  1. Modificato il mio file pods per utilizzare un target specifico:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Ho eseguito l'installazione del pod

  3. Questo dà un errore: [!] 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. Vai su Impostazioni progetto e fai clic sulla scheda Informazioni. Si verificherà un errore in cui non è possibile trovare il file di configurazione. Impostalo su "Nessuno" per Debug e Release.
  5. Esegui di nuovo l'installazione pod
  6. Pulisci e costruisci. Questo funziona

1
Tra i passaggi 4 e 5, chiudo sempre xcode. Ho avuto problemi quando xcode è in esecuzione durante l'installazione del pod.
Ray Hunter,

Mi sono appena imbattuto in questo me stesso creando schemi personalizzati. Quanto sopra funziona anche in Xcode 7. Consiglio vivamente i consigli di @srayhunter sulla chiusura di Xcode durante l'installazione.
subv3rsion

1
Vorrei poter votare più di una volta. Questo mi prende ogni volta.
Bill Burgess,

16

Dovresti anche assicurarti di non avere pod nella radice di Podfile, dovresti definire tutti i pod usati in molti target come questo:

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

Potrebbe anche essere necessario eliminare libPods.ae libPods-app.adalle dipendenze di destinazione, eseguire una pulizia e quindi eseguire pod installnuovamente.


10

Ho appena riscontrato questo problema dopo aver aggiunto alcune configurazioni di build personalizzate. Ho potuto vedere sotto:

Pods (target) > Target Support Files > Pods

che aveva effettivamente creato i nuovi xcconfigfile che corrispondevano alle nuove configurazioni di build, ma per qualche motivo non sono riuscito a selezionarli nella destinazione del progetto della mia app.

Ciò che mi ha risolto è stato installare e usare cocoapods-deintegrate :

gem install cocoapods-deintegrate

e poi esegui:

pod deintegrate

seguito da:

pod install

2
Questo mi ha aiutato.
Krishnan,

7

La riga nel podfile che sta generando un problema è: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Basta fare questo: link_with ['BluePlaquesLondon'] o questo (ha funzionato nel mio caso, spero che lo sia nel tuo :-)):

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

Questo ha funzionato magnificamente per me. Avevo già impostato le configurazioni Cocoapods secondo la risposta accettata, ma continuavo a vedere l'avviso. Allora perché funziona, quando link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']non lo fa?
Churowa,

6

Se hai aggiunto una configurazione di build personalizzata al tuo progetto esistente, Cocoapods se ne lamenterà.

Cocoapods creerà automaticamente i file xcconfig nella directory Pods/Target Support Files/<build_target>seguendo il modello di denominazionePods-<build_target>.<build_config>.xcconfig .

Assicurati di aggiungere manualmente quei file al tuo progetto in Xcode (sotto la directory Pods, ma non all'interno del progetto Pods!). Una volta inclusi quei file, seleziona il tuo progetto in Xcode, vai alla scheda "Informazioni" ed espandi la tua configurazione personalizzata. Seleziona il file xcconfig appropriato per ogni destinazione nella tua configurazione personalizzata.


4

Ho avuto lo stesso errore durante l'installazione del pod. Ho provato di tutto (reinstalla il pod, aggiorna tutte le gemme, ecc.) E ho trovato la soluzione funzionante nel mio caso. Si è verificato un problema a causa della modifica del nome del target. In questo caso la soluzione è semplice:

  1. Fai clic su Prodotto -> Schema -> Gestisci schemi ...
  2. Fai clic sul target nell'elenco e cancellalo con il segno "-" nella parte inferiore della finestra.
  3. Fai clic su "+" per aggiungere il target all'elenco. Scegli il bersaglio e il nome corretti.

Dopo tutto, tutto dovrebbe funzionare.


3
  1. Aggiungi i file xcconfig pertinenti al tuo progetto. Cocoapods li avrà creati ma non è possibile impostarli in Xcode finché non sono nel progetto.
    • Probabilmente vorrai aggiungerli al gruppo Pods dove si trovano gli altri file xcconfig pods. Fare clic con il tasto destro e aggiungere file.
    • Cerca i file xcconfig nella cartella del tuo progetto o cerca Pods/Target Support Files/[TARGET_NAME]/(ho diversi cocoapods configurati per ogni target (estensione e progetto principale potrebbero essere leggermente diversi nel tuo caso)
  2. Vai alle configurazioni del progetto nelle Informazioni del tuo progetto principale
  3. Per ogni destinazione e configurazione impostare la configurazione dei pod appropriata.
  4. pod install di nuovo e non dovresti vedere errori.

3

Ho spostato i baccelli nel Podfile fuori dal bersaglio. Il file cambia da questo:

# 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

A questa:

# 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

2

Nel caso in cui si utilizzi la configurazione personalizzata, è possibile seguire il suggerimento nell'avvertimento e includere la configurazione Pod nel file di configurazione

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

Questo NON fermerà gli avvertimenti ma ti permetterà di usare la tua configurazione privata (c'è un bug aperto sull'avvertimento con il progetto CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633


2
Grazie per aver aggiunto una risposta che non sacrifica l'attuale configurazione del progetto.
Dan Leonard,

1

Quindi, per me, il problema era dovuto alla modifica dei nomi dei file xcconfig prima che avvenisse l'aggiornamento di Swift 3.

Qualcosa non era sincronizzato, quindi Cocoapods ha creato una sezione della cartella "Riferimenti recuperati" con i vecchi file con nome e li ha collegati.

Per risolvere questo problema, io:

  1. Rimossa la cartella "Riferimenti recuperati" e i vecchi file .xcconfig contenenti da Xcode e file system
  2. Esci da Xcode

  3. Esegui installazione pod

Dopo tutto è stato gestito per me dopo, e gli avvisi erano spariti.


0

Sono stato in grado di costruire il progetto toccato da questo problema su XCode 6 da:

  • selezionando Progetto dal Navigatore progetto
  • scegliendo Progetto anziché Target
  • andando alla scheda Informazioni
  • scegliendo Pod. (debug / release) File di configurazione dalla casella combinata per le rispettive configurazioni.

Spero che questo possa aiutare qualcuno.


0

Questo mi è successo perché avevo già una configurazione Pod. Sono nuovo sullo sviluppo di iOS, cercavo le istruzioni per installare Alamofire + SwiftyJSON e ho finito per installare le librerie più di una volta, inavvertitamente. Per me, quello che ha funzionato è stato: nella cartella "Target Support Files" nel progetto "Pods", ho selezionato i due file .xcconfig corretti e li ho trascinati nella cartella "Pods" del mio progetto di app. Ciò ha consentito la selezione dei file di configurazione corretti sulla configurazione di base.

Ma poi, se eseguo nuovamente "pod install", l'avvertimento cambierà nel precedente file .xcconfig. Provo a eliminare i file e il vecchio framework dal progetto principale, ma quando ho eseguito ancora una volta il comando precedente, mi ha dato lo stesso avviso e ho creato il file "Pods.framework" nella cartella "Pods" del mio progetto di app. L'ho ignorato e sembra funzionare bene, nonostante i due framework. Non so se sia giusto, e una soluzione, se esiste, sarebbe benvenuta.


Questo non risponde davvero alla domanda. Se hai una domanda diversa, puoi porla facendo clic su Poni domanda . Puoi anche aggiungere una taglia per attirare più attenzione a questa domanda una volta che hai abbastanza reputazione .
Petro Korienev,

Grazie per la spiegazione Petro. Volevo semplicemente condividere il risultato che ha funzionato per me (con avvertimenti, ma comunque), ma starò più attento in futuro.
Pablo,

0

Ho avuto un errore:

diff: /../Podfile.lock: nessun file o directory diff: /Manifest.lock: nessun file o errore directory: Sandbox non è sincronizzato con Podfile.lock.

Ho preso la richiesta da bitbucket per la prima volta. Ho pulito il mio progetto e provato tutto (installazione pod, aggiornamento pod ecc.) Ma nessuna delle risposte sopra ha funzionato per me. Quindi controllo solo il percorso in cui stavo installando il pod, l'ho corretto e reinstallato, ha funzionato. Assicurati di dare il percorso appena prima dove esiste .xcodeproj o .xcworkspace (se è già lì). Qualcuno potrebbe trarne beneficio.


-2

La soluzione più semplice per questo (dopo aver riscontrato questo problema più volte):

  1. Elimina Podfile e Podfile.lock dalla libreria del tuo progetto (salva Podfile da qualche parte in modo da poterlo incollare facilmente nel nuovo Podfile)
  2. esegui "pod init"
  3. Modifica il "Podfile" secondo la tua volontà (aggiungi i pod che stai utilizzando)
  4. eseguire 'pod install'

Ciò ricrea di tutto e funziona sempre in pochi minuti (senza perdere tempo a decodificare il "bug").

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.