Impossibile trovare una specifica in CocoaPods


87

Non riesco a capire perché Cocoapod non sia in grado di trovare le specifiche del pod che ho creato quando corro pod install. Qualcuno potrebbe aiutarmi a risolvere questo problema?

Sto definendo una sottospec nel file podspec della mia libreria in questo modo:

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

Questa dipendenza ABC è elencata nella libreria Podfile:

pod 'ABC', :git => 'git@github.com:myrepo/Podspecs.git', :branch => 'xyz'

Il file Podspec ABC.podspecnel ramo xyz di myrepo / Podspecs ha questo aspetto:

Pod::Spec.new do |s|
  s.name         = "ABC"
  s.version      = "1.0.0"
  s.source       = { :git => "git@github.com:myrepo/Podspecs.git", :branch => "xyz" }
end

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

Soluzione: importa il pod ABC prima di importare la subspec e aggiungi il tag a podspec.


Qual è l'errore che ricevi? Copialo e incollalo nella tua domanda.
Anthony

L'errore èUnable to find specification for 'ABC' (=1.0.0)
Gaio Augusto

Risposte:


22

Invece di:

s.source       = { :git => "git@github.com:myrepo/Podspecs.git", :branch => "xyz" }

Scrivi questo: non dimenticare il tag ...

s.source       = { :git => "https://github.com/myrepo/Podspecs.git", :branch => "xyz",
                   :tag => s.version.to_s }

Devi dire al pod con quale tag stai parlando. È un must.
gran33

Semplicemente, aggiungi un tag al tuo ultimo commit
gran33

1
Lo proverò. Sfortunatamente, non è nella documentazione di Podspec.
Gaio Augusto

Non ha risolto il problema: [!] Unable to find a specification for ABC (= 1.0.0) `
Gaius Augustus

1
Ho risolto il problema! Devo importare il pod ABC prima di importare il subspec.
Gaio Augusto

185

Suppongo che ci sia un problema con il tuo repository pod master. Eliminalo e scaricalo di nuovo.

Tu puoi fare:

pod repo remove master
pod setup
pod install

O:

sudo rm -fr ~/.cocoapods/repos/master
pod setup
pod install

50
Solo correre ha pod setupfatto il lavoro.
Nagendra Rao

1
Per me, solo l'esecuzione della riga di rimozione prima ha risolto il problema! Ci è voluto un po 'di tempo per l'installazione.
sinewave440hz

2
Wow! Questo. Per qualche motivo il mio repository principale Spec non è stato configurato correttamente e ho dovuto rimuoverlo in questo modo, quindi ho eseguito l'installazione e l'installazione. Grazie per questo!
praneetloke

1
'configurazione pod' ha richiesto un po 'di tempo, ma era tutto ciò di cui avevo bisogno (come ha detto Rao)
Chris Allinson

4
pod repo update && pod setupPotrei provare prima: se il tuo repository manca solo di specifiche, questo potrebbe risolverlo e sarà più veloce della ri-clonazione dell'intero repository da zero.
Eliot

35

Per me è stato un problema trovare la specifica, non la specifica stessa. Avevo bisogno di aggiungere un collegamento sorgente al Podfile, vedi la documentazione Podfile

Cocoapods ha recentemente aggiunto la necessità di collegarsi al repository che contiene il file delle specifiche pod che stai cercando, l'impostazione predefinita è:

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

Potrebbe essere necessario aggiungere più collegamenti di origine se si utilizzano pod più oscuri o fatti in casa.


1
Questo non può essere un requisito (almeno non con l'ultima versione), perché non ho bisogno di aggiungere collegamenti alla fonte e dopo aver seguito il suggerimento di Gastón tutto ha funzionato bene.
sinewave440hz

@ sinewave440hz, l'aggiunta del sorgente viene spesso utilizzata quando è necessario accedere a un .gitrepository privato non standard . La fonte predefinita è pubblica.
ScottyBlades

Capisco, grazie (non che mi ricordi di aver scritto niente di tutto questo, ma sono sicuro che aiuterà qualcuno da qualche parte: D)
sinewave440hz

7

Assicurati di aver aggiunto

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

all'inizio del tuo Podfile


2
Ciò è particolarmente rilevante se desideri aggiungere un pod privato.
Stan

7

Lo risolvo dopo aver aggiunto

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

a Podfile. beh, ho usato un repository locale come repository. Quindi posso utilizzarlo in un altro file podspec

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

iOS_Networking_CPN è nel percorso locale.


source '/ Users / username / Documents / path / to / iOS_SpecsRepository' ha funzionato, sai perché devo usare un percorso di origine locale?
gabbler

secondo me, perché ogni dispositivo ha bisogno di un repository locale per un podspec
zippo

7

Con me, questo ha funzionato come un fascino.

pod repo remove master
pod setup

Tuttavia, puoi provare direttamente, pod setupcome indicato da alcuni utenti.


5

Aggiorna il repository principale per cocoapods.

`pod repo update master`

4

Ho ricevuto un errore simile per MGBoxkit

[!] Impossibile trovare una specifica per MGBoxkit

Sostituendo la riga seguente

pod 'MGBoxkit'

con

pod 'MGBoxKit'

risolto il problema.


qual è la differenza?
Gargo


2

Devi prima aggiungere il tuo Podspec a un repository di specifiche private; questo consente a CocoaPods di trovare il pod quando provi a installarlo.

Immettere quanto segue in Terminale, assicurandosi di essere ancora nella directory del framework che si sta tentando di aggiungere:

pod repo add [your framework name] [Your framework Git URL]
pod repo push [your framework name] [your framework .podspec file name]

1

Ho perso l'aggiunta che ,causava il problema.

Sostituzione,

pod 'PodName' '~> 2.3'

Con,

pod 'PodName', '~> 2.3'

Ha fatto il lavoro.


1

Ho risolto il mio problema con il comando seguente:

aggiornamento baccello di cacao

Per aggiornare utilizzare questo comando

sudo gem installa cocoapods

se il comando precedente dà un errore, usa questo

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

e poi farlo

aggiornamento pod repo


1

Per me, quanto segue ha funzionato bene, ma il primo tentativo potrebbe essere il comando diretto "configurazione pod" Se non funziona, utilizzare i comandi seguenti farebbe sicuramente accadere le cose.

pod repo remove master
pod setup
installazione pod


Come funziona questo differiscono da @ di Gaston-antonio-montes risposta ?
Leone

1

Segui i passaggi seguenti:

Passaggio 0: pod repo update master

Passo 1: pod install

E hai finito!


0

ha avuto lo stesso problema.

quello che ha funzionato davvero per me è stato gem uninstall cocoapods(come menzionato sopra da https://stackoverflow.com/users/4264880/seema-sharma ) dove ho scoperto che avevo 11 (!) diverse versioni di cocoapods installate.

Ho scelto di disinstallare tutto e poi gem install cocoapods:1.4.0

Va tutto bene adesso.



0

Nessuna delle risposte mi ha aiutato. Alla fine ho capito che avevo un errore di battitura di ortografia per uno dei pod .

Es: - Firebaseresulrereres/Analytics. Doveva esserlo, Firebase/Analyticsma a mia insaputa il nome del pod aveva un'ortografia errata come Firebaseresulrereres/Analytics.

La correzione del nome del pod ha fatto il trucco per me! . Però mi è costata 1 ora per trovarlo !. Lo sviluppo può essere ambiguo e frustrante alcune volte! :)


0

Stavo lavorando in allegria con tutti i repository pubblici. Ho ricevuto un errore simile:

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

Per qualche motivo la TOCropViewControllerspecifica non era disponibile. Ho provato quanto segue:

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

Ma la specifica del plug-in non era ancora disponibile. Infine, l'ho risolto rimuovendo il repository master del pod.

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

Per convalidare e confermare che il plugin è qui, ho provato grepall'interno .cocoapods, usando:

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

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

Ho trovato il repository git del plugin e il numero di versione corretto.

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

Dopo di che flutter cleane ha flutter runiniziato a lavorare.

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.