In CocoaPods konnte keine Spezifikation gefunden werden

84

Ich kann nicht verstehen, warum der Cocoapod die Pod-Spezifikation, die ich beim Ausführen erstellt habe, nicht finden kann pod install. Könnte mir jemand helfen, dieses Problem zu lösen?

Ich definiere eine Unterspezifikation in meiner Bibliotheks-Podspec-Datei wie folgt:

s.subspec 'mysubspec' do |c|
  c.dependency 'ABC','1.0.0'
end 

Diese Abhängigkeit ABC ist in der Bibliothek Podfile aufgeführt:

pod 'ABC', :git => '[email protected]:myrepo/Podspecs.git', :branch => 'xyz'

Die Podspec-Datei ABC.podspecim Zweig xyz von myrepo / Podspecs sieht folgendermaßen aus:

Pod::Spec.new do |s|
  s.name         = "ABC"
  s.version      = "1.0.0"
  s.source       = { :git => "[email protected]:myrepo/Podspecs.git", :branch => "xyz" }
end

Der Fehler ist [!] Unable to find a specification for ABC (= 1.0.0)

Lösung: Importieren Sie das Pod ABC, bevor Sie die Unterspezifikation importieren, und fügen Sie das Tag der Podspezifikation hinzu.

Gaius Augustus
quelle
Was ist der Fehler, den Sie erhalten? Kopieren Sie es und fügen Sie es in Ihre Frage ein.
Anthony
Der Fehler istUnable to find specification for 'ABC' (=1.0.0)
Gaius Augustus

Antworten:

20

Anstatt:

s.source       = { :git => "[email protected]:myrepo/Podspecs.git", :branch => "xyz" }

Schreiben Sie dies: Vergessen Sie nicht das Tag ...

s.source       = { :git => "https://github.com/myrepo/Podspecs.git", :branch => "xyz",
                   :tag => s.version.to_s }
gran33
quelle
Du musst dem Pod sagen, welches Tag du redest. Es ist ein Muss.
Gran33
Fügen Sie
1
Ich werde es versuchen. Leider ist es nicht in der Podspec-Dokumentation.
Gaius Augustus
Das Problem wurde nicht gelöst: [!] Unable to find a specification for ABC (= 1.0.0) `
Gaius Augustus
1
Ich habe das Problem gelöst! Ich muss den Pod ABC importieren, bevor ich die Unterart importiere.
Gaius Augustus
184

Ich nehme an, dass es ein Problem mit Ihrem Pod Master Repo gibt. Löschen Sie es und laden Sie es erneut herunter.

Du kannst tun:

pod repo remove master
pod setup
pod install

Oder:

sudo rm -fr ~/.cocoapods/repos/master
pod setup
pod install
Gastón Antonio Montes
quelle
50
Nur Laufen pod setuphat den Job gemacht.
Nagendra Rao
1
Für mich löste das Ausführen der Zeile zum Entfernen zuerst das Problem! Die Einrichtung dauerte jedoch eine Weile.
Sinuswelle440hz
2
Beeindruckend! Dies. Aus irgendeinem Grund war mein Spec Master Repo nicht richtig eingerichtet und ich musste es auf diese Weise entfernen und dann das Setup und die Installation durchführen. Danke dafür!
Praneetloke
1
'Pod Setup' hat eine ganze Weile gedauert, war aber alles was ich brauchte (wie Rao erwähnte)
Chris Allinson
3
Vielleicht möchten Sie es pod repo update && pod setupzuerst versuchen - wenn Ihrem Repo nur Spezifikationen fehlen, kann dies das Problem beheben und ist schneller als das erneute Klonen des gesamten Repos von Grund auf.
Eliot
34

Für mich war es ein Problem, die Spezifikation zu finden, nicht die Spezifikation selbst. Ich musste einen Quelllink zum Podfile hinzufügen, siehe Podfile-Dokumentation

Cocoapods hat kürzlich die Notwendigkeit hinzugefügt, eine Verknüpfung zu dem Repo herzustellen, in dem sich die gesuchte Pod-Spezifikationsdatei befindet. Die Standardeinstellung lautet:

source 'https://github.com/CocoaPods/Specs.git'

Möglicherweise müssen Sie mehrere Quelllinks hinzufügen, wenn Sie dunkelere oder hausgemachte Pods verwenden.

dloomb
quelle
1
Dies kann keine Voraussetzung sein (zumindest nicht mit der neuesten Version), da ich keine Quelllinks hinzufügen musste und nachdem ich Gastóns Vorschlag gefolgt war, hat alles gut funktioniert.
Sinuswelle440hz
@ sinewave440hz, das Hinzufügen der Quelle wird am häufigsten verwendet, wenn Sie auf ein nicht standardmäßiges privates .gitRepo zugreifen müssen . Die Standardquelle ist public.
ScottyBlades
Ich sehe, dank (nicht , dass ich irgendetwas davon erinnern zu schreiben, aber ich bin sicher , dass es jemand irgendwo helfen: D)
sinewave440hz
7

Ich löse dies nach dem Hinzufügen

source '/Users/username/Documents/path/to/iOS_SpecsRepository'
source 'https://github.com/CocoaPods/Specs.git'

zu Podfile. Nun. Ich habe ein lokales Repository als mein Repo verwendet. So kann ich dies in einer anderen Podspec-Datei verwenden

s.dependency 'iOS_Networking_CPN', '~> 0.1.1'

iOS_Networking_CPN ist im lokalen Pfad.

Zippo
quelle
Quelle '/ Benutzer / Benutzername / Dokumente / Pfad / zu / iOS_SpecsRepository' hat funktioniert. Wissen Sie, warum ich einen lokalen Quellpfad verwenden muss?
Gabbler
meiner Meinung nach , weil jedes Gerät Bedarf , ein lokales Repository für ein podspec
zippo
7

Bei mir hat das wie ein Zauber gewirkt.

pod repo remove master
pod setup

Sie können es jedoch direkt versuchen, pod setupwie einige Benutzer angegeben haben.

Hemang
quelle
6

Stellen Sie sicher, dass Sie hinzugefügt haben

source 'https://github.com/CocoaPods/Specs.git'

ganz am Anfang Ihres Podfiles

Ugo Marinelli
quelle
2
Dies ist besonders relevant, wenn Sie einen privaten Pod hinzufügen möchten.
Stan
5

Aktualisieren Sie das Master-Repo für Cocoapods.

`pod repo update master`
Idan Magled
quelle
4

Ich habe einen ähnlichen Fehler für MGBoxkit erhalten

[!] Es konnte keine Spezifikation für gefunden werden MGBoxkit

Durch Ersetzen der folgenden Zeile

pod 'MGBoxkit'

mit

pod 'MGBoxKit'

Das Problem wurde behoben.

Zeeawan
quelle
Was ist der Unterschied?
Gargo
Tippfehler als k wurde durch K. ersetzt
zeeawan
2

Sie müssen zuerst Ihre Podspec zu einem Repo für private Spezifikationen hinzufügen. Auf diese Weise können CocoaPods den Pod finden, wenn Sie versuchen, ihn zu installieren.

Geben Sie im Terminal Folgendes ein und stellen Sie sicher, dass Sie sich noch in dem Framework-Verzeichnis befinden, das Sie hinzufügen möchten:

pod repo add [your framework name] [Your framework Git URL]
pod repo push [your framework name] [your framework .podspec file name]
Jevon Charles
quelle
1

Ich habe das Hinzufügen eines ,verursachenden Problems verpasst .

Ersetzen,

pod 'PodName' '~> 2.3'

Mit,

pod 'PodName', '~> 2.3'

Hat den Job gemacht.

Mohammad Zaid Pathan
quelle
1

Ich habe mein Problem mit dem folgenden Befehl gelöst:

Kakaofrucht-Update

Verwenden Sie zum Aktualisieren diesen Befehl

sudo gem install cocoapods

Wenn der obige Befehl einen Fehler ausgibt, verwenden Sie diesen

sudo gem install -n / usr / local / bin cocoapods

und dann mach das

Pod Repo Update

Seema Sharma
quelle
1

Für mich hat das Folgende gut funktioniert, aber der erste Versuch könnte ein direkter "Pod Setup" -Befehl sein. Wenn das nicht funktioniert, dann würden die folgenden Befehle definitiv dazu führen, dass etwas passiert.

pod repo entfernen master
pod setup
pod installieren

Sathish
quelle
Wie unterscheidet sich das von der Antwort von @ gastón-antonio-montes ?
Leo
1

Befolgen Sie die folgenden Schritte:

Schritt 0: pod repo update master

Schritt 1: pod install

Und du bist fertig!

Sunil Targe
quelle
0

hatte das gleiche Problem.

Was für mich wirklich funktionierte, war gem uninstall cocoapods(wie oben von https://stackoverflow.com/users/4264880/seema-sharma erwähnt ), wo ich 11 (!) verschiedene Cocoapods-Versionen installiert hatte.

Ich entschied mich, alle zu deinstallieren und dann gem install cocoapods:1.4.0

Alles gut jetzt.

Catarino
quelle
0

Keine der Antworten hat mir geholfen. Letztendlich stellte ich fest, dass ich einen Tippfehler bei einem der Pods hatte .

Bsp.: - Firebaseresulrereres/Analytics. Es sollte sein, Firebase/Analyticsaber ohne mein Wissen hatte der Pod-Name eine falsche Schreibweise wie Firebaseresulrereres/Analytics.

Das Korrigieren des Pod-Namens hat den Trick für mich getan! . Es hat mich 1 Stunde gekostet, das zu finden!. Entwicklung kann manchmal mehrdeutig und frustrierend sein! :) :)

Pradeep Reddy Kypa
quelle
0

Ich habe mit allen öffentlichen Repos im Flattern gearbeitet. Ich habe einen ähnlichen Fehler erhalten:

Unable to find a specification for `TOCropViewController (~> 2.5.2)` depended upon by `image_cropper`

Aus irgendeinem Grund war die TOCropViewControllerSpezifikation nicht verfügbar. Ich habe folgendes versucht:

flutter clean
rm -Rf ios/Pods
rm -Rf ios/.symlinks
rm -Rf ios/Flutter/Flutter.framework
rm -Rf ios/Flutter/Flutter.podspec
rm ios/Podfile
flutter run

Die Plugin-Spezifikation war jedoch immer noch nicht verfügbar. Schließlich löste ich es, indem ich den Repo-Master des Pods entfernte.

pod repo remove master
sudo rm -rf ~/.cocoapods/repos
pod setup
pod install

Um zu überprüfen und zu bestätigen, dass das Plugin hier ist, habe ich versucht, grepFolgendes zu .cocoapodstun:

 grep -r "TOCropViewController" -n ~/.cocoapods

Innerhalb ~/.cocoapods/repos/trunk/Specs/3/7/4/TOCropViewController/2.5.2/TOCropViewController.podspec.json

Ich habe das Git-Repo des Plugins und die korrekte Versionsnummer gefunden.

  "source": {
    "git": "https://github.com/TimOliver/TOCropViewController.git",
    "tag": "2.5.2"
  },

Danach flutter cleanund flutter runfing an zu arbeiten.

Jerrymouse
quelle