Impossible de trouver une spécification dans CocoaPods

86

Je ne comprends pas pourquoi le Cocoapod ne parvient pas à trouver la spécification de pod que j'ai créée lors de mon exécution pod install. Quelqu'un pourrait-il m'aider à résoudre ce problème?

Je définis une sous-espèce dans mon fichier podspec de bibliothèque comme ceci:

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

Cette dépendance ABC est répertoriée dans la bibliothèque Podfile:

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

Le fichier Podspec ABC.podspecdans la branche xyz de myrepo / Podspecs ressemble à ceci:

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

L'erreur est [!] Unable to find a specification for ABC (= 1.0.0)

Solution: importez le pod ABC avant d'importer la sous-spécification et ajoutez la balise à la podspec.

Gaius Augustus
la source
Quelle est l'erreur que vous recevez? Copiez-le et collez-le dans votre question.
Anthony
L'erreur estUnable to find specification for 'ABC' (=1.0.0)
Gaius Augustus

Réponses:

21

Au lieu de:

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

Écrivez ceci: n'oubliez pas le tag ...

s.source       = { :git => "https://github.com/myrepo/Podspecs.git", :branch => "xyz",
                   :tag => s.version.to_s }
gran33
la source
Vous devez dire au pod quel tag parle. C'est un impératif.
gran33
Ajoutez simplement une balise à votre dernier commit
gran33
1
Je vais l'essayer. Malheureusement, ce n'est pas dans la documentation Podspec.
Gaius Augustus
Cela n'a pas résolu le problème: [!] Unable to find a specification for ABC (= 1.0.0) `
Gaius Augustus
1
J'ai résolu le problème! Je dois importer le pod ABC avant d'importer la sous-espèce.
Gaius Augustus
185

Je suppose qu'il y a un problème avec votre dépôt principal de pod. Supprimez-le et téléchargez-le à nouveau.

Tu peux faire:

pod repo remove master
pod setup
pod install

Ou:

sudo rm -fr ~/.cocoapods/repos/master
pod setup
pod install
Gastón Antonio Montes
la source
50
Le simple fait de courir a pod setupfait le travail.
Nagendra Rao
1
Pour moi, seulement exécuter la ligne de suppression a d'abord résolu le problème! Cela a pris du temps pour la configuration.
sinewave440hz
2
Hou la la! Ce. Pour une raison quelconque, mon référentiel principal Spec n'a pas été configuré correctement et j'ai dû le supprimer de cette façon, puis faire la configuration et l'installation. Merci pour cela!
praneetloke
1
La `` configuration du pod '' a pris un certain temps, mais c'était tout ce dont j'avais besoin (comme Rao l'a mentionné)
Chris Allinson
3
Vous voudrez peut-être essayer d' pod repo update && pod setupabord - si votre référentiel manque juste de spécifications, cela pourrait le corriger et sera plus rapide que de recloner tout le référentiel à partir de zéro.
Eliot
35

Pour moi, c'était un problème pour trouver la spécification, pas la spécification elle-même. J'avais besoin d'ajouter un lien source vers le Podfile, voir la documentation Podfile

Cocoapods a récemment ajouté la nécessité de créer un lien vers le référentiel contenant le fichier de spécification du pod que vous recherchez, la valeur par défaut est:

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

Vous devrez peut-être ajouter plusieurs liens sources si vous utilisez des pods plus obscurs ou faits maison.

dloomb
la source
1
Cela ne peut pas être une exigence (du moins pas avec la dernière version), car je n'ai pas besoin d'ajouter de liens sources et après avoir suivi la suggestion de Gastón, tout a bien fonctionné.
sinewave440hz
@ sinewave440hz, l'ajout de la source est le plus souvent utilisé lorsque vous devez accéder à un dépôt privé non standard .git. La source par défaut est publique.
ScottyBlades
Je vois, merci (pas que je me souvienne d'avoir écrit quoi que ce soit, mais je suis sûr que cela aidera quelqu'un quelque part: D)
sinewave440hz
7

Je résous cela après avoir ajouté

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

à Podfile. Eh bien, j'ai utilisé un référentiel local comme référentiel. Je peux donc l'utiliser dans un autre fichier podspec

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

iOS_Networking_CPN est dans le chemin local.

zippo
la source
source '/ Users / username / Documents / path / to / iOS_SpecsRepository' a fonctionné, savez-vous pourquoi je dois utiliser un chemin source local?
gabbler
à mon avis, car chaque appareil a besoin d'un référentiel local pour un podspec
zippo
7

Avec moi, cela a fonctionné comme un charme.

pod repo remove master
pod setup

Cependant, vous pouvez essayer directement, pod setupcomme certains utilisateurs l'ont souligné.

Hemang
la source
6

Assurez-vous d'avoir ajouté

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

au tout début de votre Podfile

Ugo Marinelli
la source
2
Ceci est particulièrement pertinent si vous souhaitez ajouter un pod privé.
Stan
5

Mettez à jour le référentiel principal pour les cocoapodes.

`pod repo update master`
Idan Magled
la source
4

J'obtenais une erreur similaire pour MGBoxkit

[!] Impossible de trouver une spécification pour MGBoxkit

En remplaçant la ligne suivante

pod 'MGBoxkit'

avec

pod 'MGBoxKit'

résolu le problème.

Zeeawan
la source
Quelle est la différence?
Gargo le
Typo as k a été remplacé par K.
zeeawan
2

Vous devez d'abord ajouter votre Podspec à un dépôt de spécifications privées; cela permet aux CocoaPods de trouver le pod lorsque vous essayez de l'installer.

Entrez ce qui suit dans Terminal, en vous assurant que vous êtes toujours dans le répertoire du framework que vous essayez d'ajouter:

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

J'ai manqué d'ajouter le ,problème causant.

Remplacement,

pod 'PodName' '~> 2.3'

Avec,

pod 'PodName', '~> 2.3'

A fait le boulot.

Mohammad Zaid Pathan
la source
1

J'ai résolu mon problème avec la commande ci-dessous:

mise à jour des cabosses de cacao

Pour mettre à jour, utilisez cette commande

sudo gem installer des cocoapodes

si la commande ci-dessus donne une erreur, utilisez celle-ci

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

et que faire ça

mise à jour du dépôt de pod

Seema Sharma
la source
1

Pour moi, ce qui suit a bien fonctionné, mais le premier essai pourrait être une commande directe de "configuration du pod". Si cela ne fonctionne pas, alors optez pour les commandes ci-dessous pour que les choses se passent certainement.

pod repo supprimer
configuration du
pod principal installation du pod

Sathish
la source
En quoi cela diffère-t-il de la réponse de @ gastón-antonio-montes ?
Leo
1

Suivez les étapes ci-dessous:

Étape 0: pod repo update master

Étape 1: pod install

Et vous avez terminé!

Sunil Targe
la source
0

eu le même problème.

Ce qui a vraiment fonctionné pour moi, c'est gem uninstall cocoapods(comme mentionné ci-dessus par https://stackoverflow.com/users/4264880/seema-sharma ) où j'ai trouvé que j'avais 11 (!) versions différentes de cocoapods installées.

J'ai choisi de tout désinstaller puis gem install cocoapods:1.4.0

Tout va bien maintenant.

Catarino
la source
0

Aucune des réponses ne m'a aidé. En fin de compte, j'ai compris que j'avais une faute d'orthographe pour l'un des pods .

Ex: - Firebaseresulrereres/Analytics. C'était censé l'être, Firebase/Analyticsmais à mon insu, le nom du pod était mal orthographié comme Firebaseresulrereres/Analytics.

La correction du nom du pod a fait l'affaire pour moi! . Cela m'a coûté 1 heure pour trouver ça !. Le développement peut parfois être ambigu et frustrant! :)

Pradeep Reddy Kypa
la source
0

Je travaillais en plein essor avec tous les dépôts publics. J'obtenais une erreur similaire:

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

Pour une raison quelconque, la TOCropViewControllerspécification n'était pas disponible. J'ai essayé ce qui suit:

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

Mais la spécification du plugin n'était toujours pas disponible. Enfin, je l'ai résolu en supprimant le repo master du pod.

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

Pour valider et confirmer que le plugin est là, j'ai essayé à l' grepintérieur .cocoapods, en utilisant:

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

À l'intérieur ~/.cocoapods/repos/trunk/Specs/3/7/4/TOCropViewController/2.5.2/TOCropViewController.podspec.json

J'ai trouvé le repo git du plugin et le numéro de version correct.

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

Après cela flutter cleanet a flutter runcommencé à travailler.

Jerrymouse
la source