Cocoapods Warnung - CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt, da für Ihr Projekt bereits ein benutzerdefinierter Konfigurationssatz festgelegt wurde

330

Nachdem ich a pod installan der Basis meines Projekts ausgeführt habe, wird folgende Fehlermeldung angezeigt:

CocoaPods hat die Basiskonfiguration Ihres Projekts nicht festgelegt, da für Ihr Projekt bereits ein benutzerdefinierter Konfigurationssatz festgelegt wurde. Damit die CocoaPods-Integration überhaupt funktioniert, legen Sie entweder die Basiskonfigurationen des Ziels BluePlaquesLondonFrameworkauf fest Pods/Target Support Files/Pods/Pods.debug.xcconfigoder nehmen Sie sie Pods/Target Support Files/Pods/Pods.debug.xcconfigin Ihre Build-Konfiguration auf.

Das klingt wahrscheinlich nach einer dummen Frage, aber wie lege ich die Basiskonfiguration für ein Ziel fest?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile ist das Podfile, das dieses Problem verursacht.

http://github.com/seanoshea/BluePlaquesLondon im iOS 8-Zweig ist das fragliche Podfile, wenn Sie neugierig sind, wie das Projekt aussieht.

Seanoshea
quelle
2
Dies ist ein bisschen abseits des Themas, aber; Ich möchte Sie nur vor iOS-KML-Framework warnen. Es verwendet Version 1.5 von TBXML, die etwas fehlerhaft ist. Wenn Sie fehlerhaftes XML in Ihrem Feed erhalten, stürzt Ihre App ab. Möglicherweise möchten Sie eine private Abzweigung für iOS-KML-Framework erstellen, in der Sie die '1.5' aus der Podspec entfernen und einfach den HEAD von TBXML verwenden. Das scheint viele Probleme zu beheben.
Churowa
Bitte aktualisieren Sie Ihren Titel, um mehr von der tatsächlichen Warnung aufzunehmen. Beispiel: "CocoaPods hat keine Konfigurationswarnung festgelegt".
David James
Der Titel @DavidJames wurde aktualisiert. Gerne ändern wir es wieder, wenn Sie es ein wenig wortreich finden.
Seanoshea
4
Jetzt ist es einer der längsten Titel, die ich bei Stackoverflow gesehen habe.
Klaas
github.com/CocoaPods/CocoaPods/issues/2633 hat eine gute Problemumgehung - setzen Sie alle Konfigurationen auf Keine und führen Sie dann "pod install" aus
David Airapetyan

Antworten:

582

Ich hatte das gleiche Problem, aber in Xcode 6.1.1 - was es für mich behoben hat, war, die Konfigurationsdateieinstellung Nonefür die beiden Pods-bezogenen Ziele zu ändern und dann pod installerneut auszuführen .

Die Einstellung der Konfigurationsdatei wird gefunden, indem Sie das Projekt (nicht das Ziel) und dann die Registerkarte Info auswählen.

TimD
quelle
144
Diese Einstellung wird gefunden, indem Sie das Projekt (nicht das Ziel) und dann die Registerkarte Info auswählen.
Grav
34
Es ist hilfreich, die Änderung vorzunehmen pod install, anschließend xcode zu beenden, auszuführen und erneut zu öffnen. Lassen Sie Xcode während dieser Zeit nicht geöffnet.
Sebastian Roth
1
Das hat es für mich behoben. Meine Konfiguration zeigte auf einen alten xcconfig-Namen, der sich geändert hat, seit ich zwei explizite Ziele in meine Pod-Datei eingefügt habe (eines für das Hauptprojekt, eines zum Testen), wodurch neue Konfigurationsdateien mit unterschiedlichen Namen generiert wurden.
Qix
10
Für diejenigen, die die gleiche Sorge hatten wie ich, dass die Einstellung, dass Nonedas Zeug kaputt gehen würde. Das Folgende pod installsortiert alles aus.
Matthew
4
Wo ist diese Einstellung in Xcode 10? Ging durch alle Registerkarten, konnte es nicht finden
JenonD
165

Nicht basteln, zurücksetzen.

Schritt für Schritt

  1. Projektnavigator anzeigen
  2. Wählen Sie Projekt
  3. Wählen Info
  4. In Konfigurationen , markiert jedes, einen nach dem anderen (Debug, ApplicationUnitTest, Mitteilung, etc.), und für jedes Ziel innerhalb der Konfiguration eingestellten Konfiguration None .
  5. Stellen Sie sicher, dass Basierend auf der Konfigurationsdatei für jede Konfiguration 0 Konfigurationssatz oder Keine Konfigurationssatz lautet . Das ist der springende Punkt. 0 Konfigurationen festgelegt
  6. Beenden Sie Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Sobald Sie pod installin Schritt erlaubt 7haben, seine Magie auszuführen, können Sie möglicherweise eine benutzerdefinierte Konfiguration verwenden und Ihre Konfigurationen ändern.

SwiftArchitect
quelle
10
Diese Antwort sollte akzeptiert werden, die vorherige war für mich auch nicht offensichtlich.
Evgeniy Kleban
Mit Hilfe der PodsConfig, wie in anderen Antworten vorgeschlagen, hat mein Problem im geringsten nicht lösen: Build - Einstellungen wurden bereits passende Pods.debug& Pods.release, das wurde das Problem. Was tat , war 0 Konfigurationen Set für jede Konfiguration. Nicht die gleiche Antwort.
SwiftArchitect
Das hat auch bei mir funktioniert. Nur um zu beachten, müssen Sie von Zielen zu Projekten wechseln, um die Konfigurationen anzuzeigen. Ich habe lange danach gesucht, bis ich auf die Dropdown-Liste gestoßen bin.
Marty331
Ich würde das hundertmal abstimmen, wenn ich könnte. Nach 30 Stunden Kampf gegen Jenkins Build-Prozess nach dem Zusammenführen von 4 Entwicklerzweigen, die einer iOS-App 3 Erweiterungen mit benutzerdefinierten Konfigurationsdateien hinzufügten und das Skript check manifest.lock von Cocoa Pods bombardierten, wurde das Problem endgültig behoben. (unter vielen anderen Dingen, aber dies war der letzte Strohhalm Fix). : Prost:
Augie
"[!] Swift-Version für die folgenden Pods konnte nicht ermittelt werden:"
Richard
138

Gehen Sie in XCode und öffnen Sie Ihre Projekteinstellungen. Auf der Registerkarte Info sehen Sie "Konfigurationen", in denen Sie eine Konfigurationsdatei für Debug und Release festlegen können. Sie haben diese anscheinend bereits auf eine benutzerdefinierte Konfiguration eingestellt, und CocoaPods möchte / muss, dass Sie die Pods-Konfiguration verwenden.

Hier ist ein Screenshot

Quark
quelle
7
Beachten Sie, dass dies das Problem nicht löst, wenn Sie tatsächlich eine benutzerdefinierte Konfiguration für einen echten Zweck verwenden müssen. Siehe diese offene Ausgabe .
Funroll
1
In Xcode 6 hat sich nichts geändert, um diese Antwort falsch zu machen
Quark
Ein weiteres Problem, aber es hat mein Problem für mich gelöst. Ich habe Kakaofrüchte mit UI-Tests verwendet und dieses Ding hat mir das Leben gerettet! Vielen Dank.
Akshit Zaveri
69

Bin auf das gleiche Problem gestoßen. Es würde auf dem Simulator aufbauen, aber nicht auf meinem Gerät. Keine der Antworten löste dies für mich. Hier ist, was ich getan habe, um einige Antworten zusammenzusetzen:

  1. Meine Pods-Datei wurde geändert, um ein bestimmtes Ziel zu verwenden:

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

  3. Das gibt einen Fehler: [!] 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. Gehen Sie zu Projekteinstellungen und klicken Sie auf die Registerkarte Info. Es tritt ein Fehler auf, bei dem die Konfigurationsdatei nicht gefunden werden kann. Setzen Sie es für Debug und Release auf "Keine".
  5. Führen Sie die Pod-Installation erneut aus
  6. Reinigen und bauen. Das funktioniert.
Chris Fellows
quelle
1
Zwischen den Schritten 4 und 5 schließe ich immer xcode. Ich habe Probleme gehabt, wenn xcode während der Pod-Installation ausgeführt wird.
Ray Hunter
Ich bin gerade darauf gestoßen und habe benutzerdefinierte Schemata erstellt. Das Obige funktioniert auch in Xcode 7. Ich würde @srayhunter empfehlen, Xcode während einer Installation zu schließen.
Subv3rsion
1
Ich wünschte, ich könnte mehr als einmal abstimmen. Das bringt mich jedes Mal.
Bill Burgess
16

Sie sollten auch sicherstellen, dass Sie keine Pods in der Wurzel von Podfilehaben. Sie sollten alle Pods definieren, die in vielen Zielen wie diesen verwendet werden:

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

Möglicherweise müssen Sie auch löschen libPods.aund libPods-app.aaus den Zielabhängigkeiten eine Bereinigung durchführen und dann pod installerneut ausführen .

Wiedererkennung
quelle
10

Ich bin gerade auf dieses Problem gestoßen, nachdem ich einige benutzerdefinierte Build-Konfigurationen hinzugefügt habe. Ich konnte sehen unter:

Pods (target) > Target Support Files > Pods

dass es tatsächlich das Neue geschaffen hatte xcconfig Dateien erstellt hat, die den neuen Build-Konfigurationen entsprechen, aber aus irgendeinem Grund konnte ich diese nicht im Projektziel meiner App auswählen.

Was es für mich behoben hat, war die Installation und Verwendung von Cocoapods-Deintegrate :

gem install cocoapods-deintegrate

und dann ausführen:

pod deintegrate

gefolgt von:

pod install
Hodson
quelle
2
Das hat mir geholfen.
Krishnan
7

Die Zeile in der Poddatei, die ein Problem generiert, lautet: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Machen Sie einfach Folgendes: link_with ['BluePlaquesLondon'] oder dies (hat in meinem Fall funktioniert, hoffe es wird in Ihrem :-)):

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
quelle
Das hat bei mir wunderbar funktioniert. Ich hatte bereits die Cocoapods-Konfigurationen gemäß der akzeptierten Antwort eingestellt, sah aber immer noch die Warnung. Warum funktioniert das, wenn link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']nicht?
Churowa
6

Wenn Sie Ihrem vorhandenen Projekt eine benutzerdefinierte Build-Konfiguration hinzugefügt haben, beschwert sich Cocoapods darüber.

Cocoapods erstellt automatisch xcconfig-Dateien unter dem Verzeichnis, das dem Namensmuster Pods/Target Support Files/<build_target>folgt Pods-<build_target>.<build_config>.xcconfig.

Stellen Sie einfach sicher, dass Sie diese Dateien manuell zu Ihrem Projekt in Xcode hinzufügen (im Pods-Verzeichnis, aber nicht im Pods-Projekt!). Sobald diese Dateien enthalten sind, wählen Sie Ihr Projekt in Xcode aus, wechseln Sie zur Registerkarte "Info" und erweitern Sie Ihre benutzerdefinierte Konfiguration. Wählen Sie unter Ihrer benutzerdefinierten Konfiguration die entsprechende xcconfig-Datei für jedes Ziel aus.

diegoreymendez
quelle
4

Ich hatte den gleichen Fehler bei der Pod-Installation. Ich habe alles versucht (Pod neu installieren, alle Edelsteine ​​aktualisieren usw.) und fand, dass die Lösung in meinem Fall funktioniert. Es gab ein Problem, weil der Name des Ziels geändert wurde. In diesem Fall ist die Lösung einfach:

  1. Klicken Sie auf Produkt -> Schema -> Schemata verwalten ...
  2. Klicken Sie auf Ihr Ziel in der Liste und löschen Sie es mit dem Zeichen "-" am unteren Rand des Fensters.
  3. Klicken Sie auf "+", um das Ziel wieder zur Liste hinzuzufügen. Wählen Sie das richtige Ziel und den richtigen Namen.

Immerhin sollte alles funktionieren.

lukszar
quelle
3
  1. Fügen Sie die relevanten xcconfig-Dateien zu Ihrem Projekt hinzu. Cocoapods haben sie erstellt, aber Sie können sie nicht in Xcode festlegen, bis sie im Projekt sind.
    • Sie möchten sie wahrscheinlich zur Gruppe Pods hinzufügen, in der sich die anderen Pods xcconfig-Dateien befinden. Klicken Sie mit der rechten Maustaste und fügen Sie Dateien hinzu.
    • Suchen Sie in Ihrem Projektordner nach xcconfig-Dateien oder suchen Sie nach Pods/Target Support Files/[TARGET_NAME]/(Ich habe für jedes Ziel unterschiedliche Cocoapods konfiguriert (Erweiterung und Hauptprojekt können in Ihrem Fall geringfügig abweichen).
  2. Gehen Sie zu Projektkonfigurationen in den Infos Ihres Hauptprojekts
  3. Stellen Sie für jedes Ziel und jede Konfiguration die entsprechende Pod-Konfiguration ein.
  4. pod install wieder und Sie sollten keine Fehler sehen.
Joseph Lord
quelle
3

Ich habe Pods in Podfile außerhalb des Ziels verschoben. Datei ändert sich daraus:

# 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

Dazu:

# 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
quelle
2

Wenn Sie eine benutzerdefinierte Konfiguration verwenden, können Sie dem Vorschlag in der Warnung folgen und die Pod-Konfiguration in Ihre Konfigurationsdatei aufnehmen

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

Dadurch werden die Warnungen NICHT gestoppt, aber Sie können Ihre private Konfiguration verwenden (es gibt einen offenen Fehler in der Warnung beim CocoaPods-Projekt). Https://github.com/CocoaPods/CocoaPods/issues/2633

Zeev Vax
quelle
2
Vielen Dank, dass Sie eine Antwort hinzugefügt haben, die Ihr aktuelles Projekt-Setup nicht beeinträchtigt.
Dan Leonard
1

Für mich war das Problem darauf zurückzuführen, dass die oben genannten xcconfig-Dateinamen geändert wurden, bevor das Swift 3-Update stattfand.

Da etwas nicht synchron war, erstellte Cocoapods einen Ordnerabschnitt "Wiederhergestellte Referenzen" mit den alten benannten Dateien und verknüpfte sie mit diesen.

Um dies zu beheben, habe ich:

  1. Der Ordner "Wiederhergestellte Referenzen" und die enthaltenen alten .xcconfig-Dateien wurden aus Xcode und dem Dateisystem entfernt
  2. Beenden Sie Xcode

  3. Führen Sie die Pod-Installation aus

Danach wurde alles für mich erledigt und die Warnungen waren weg.

Harry Bloom
quelle
0

Ich konnte das von diesem Problem betroffene Projekt auf XCode 6 erstellen von:

  • Wählen Sie im Projektnavigator Projekt aus
  • Wählen Sie Projekt anstelle von Ziel
  • Gehen Sie zur Registerkarte Info
  • Auswahl von Pods (Debuggen / Freigeben) Konfigurationsdateien aus der Combobox für die jeweiligen Konfigurationen.

Hoffe das wird jemandem helfen.

Michael
quelle
0

Dies ist mir passiert, weil ich bereits eine Pod-Konfiguration hatte. Ich bin neu in der iOS-Entwicklung, habe nach Anweisungen zur Installation von Alamofire + SwiftyJSON gesucht und die Bibliotheken versehentlich mehrmals installiert. Für mich funktionierte Folgendes: Im Ordner "Target Support Files" im Projekt "Pods" habe ich die beiden richtigen .xcconfig-Dateien ausgewählt und in den Ordner "Pods" meines App-Projekts gezogen. Dies ermöglichte die Auswahl der richtigen Konfigurationsdateien in der Basiskonfiguration.

Wenn ich dann "pod install" erneut ausführe, ändert sich die Warnung in die vorherige .xcconfig-Datei. Ich versuche, die Dateien und das alte Framework aus dem Hauptprojekt zu löschen, aber als ich den vorherigen Befehl noch einmal ausführte, gab ich dieselbe Warnung aus und erstellte die Datei "Pods.framework" im Ordner "Pods" meines App-Projekts. Ich habe es ignoriert und es scheint trotz der beiden Frameworks in Ordnung zu sein. Ich weiß nicht, ob es richtig ist, und eine Lösung, falls vorhanden, wäre zu begrüßen.

Pablo
quelle
Dies beantwortet die Frage nicht wirklich. Wenn Sie eine andere Frage haben, können Sie diese stellen, indem Sie auf Frage stellen klicken . Sie können auch ein Kopfgeld hinzufügen, um mehr Aufmerksamkeit auf diese Frage zu lenken, sobald Sie genügend Ruf haben .
Petro Korienev
Danke für die Erklärung Petro. Ich wollte einfach nur das Ergebnis teilen, das für mich funktioniert hat (mit Warnungen, aber immer noch), aber ich werde in Zukunft vorsichtiger sein.
Pablo
0

Ich hatte einen Fehler:

diff: /../Podfile.lock: Keine solche Datei oder kein solches Verzeichnis diff: /Manifest.lock: Kein solcher Datei- oder Verzeichnisfehler: Die Sandbox ist nicht mit Podfile.lock synchronisiert.

Ich habe zum ersten Mal eine Anfrage von bitbucket gezogen. Ich habe mein Projekt bereinigt und alles versucht (Pod-Installation, Pod-Update usw.), aber keine der oben genannten Antworten hat bei mir funktioniert. Dann überprüfe ich einfach den Pfad, in dem ich den Pod installiert und korrigiert und erneut installiert habe. Es hat einfach funktioniert. Stellen Sie sicher, dass Sie den Pfad unmittelbar vor dem Ort angeben, an dem .xcodeproj oder .xcworkspace (falls bereits vorhanden) vorhanden sind. Kann jemand davon profitieren.

Einfache Maurya
quelle
-2

Die einfachste Lösung hierfür (nach mehrmaligem Auftreten dieses Problems):

  1. Löschen Sie Podfile & Podfile.lock aus Ihrer Projektbibliothek (speichern Sie Podfile irgendwo, damit Sie es einfach in eine neue Podfile einfügen können).
  2. Führen Sie 'pod init' aus.
  3. Bearbeiten Sie die 'Podfile' nach Ihrem Willen (fügen Sie die verwendeten Pods hinzu)
  4. Führen Sie 'pod install' aus.

Dies würde alles neu erstellen und funktioniert immer in Minuten (ohne Zeit für das Reverse Engineering des "Fehlers" aufzuwenden).

Idan
quelle