No se puede encontrar una especificación en CocoaPods

86

No puedo entender por qué el Cocoapod no puede encontrar la especificación de pod que creé cuando ejecuto pod install. ¿Alguien podría ayudarme a resolver este problema?

Estoy definiendo una subespecificación en mi archivo de especificación de pod de biblioteca como este:

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

Esta dependencia ABC aparece en la biblioteca Podfile:

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

El archivo Podspec ABC.podspecen la rama xyz de myrepo / Podspecs tiene este aspecto:

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

El error es [!] Unable to find a specification for ABC (= 1.0.0)

Solución: importe el pod ABC antes de importar la subespecificación y agregue la etiqueta a la podspec.

Cayo Augusto
fuente
¿Cuál es el error que recibe? Cópialo y pégalo en tu pregunta.
Anthony
El error esUnable to find specification for 'ABC' (=1.0.0)
Cayo Augusto

Respuestas:

21

En vez de:

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

Escribe esto: No olvides la etiqueta ...

s.source       = { :git => "https://github.com/myrepo/Podspecs.git", :branch => "xyz",
                   :tag => s.version.to_s }
gran33
fuente
Tienes que decirle al grupo qué etiqueta estás hablando. Es un deber.
gran33
Simplemente, agregue una etiqueta a su última confirmación
gran33
1
Lo intentaré. Desafortunadamente, no está en la documentación de Podspec.
Cayo Augusto
No resolvió el problema: [!] Unable to find a specification for ABC (= 1.0.0) `
Gaius Augustus
1
¡Resolví el problema! Tengo que importar el pod ABC antes de importar la subespecificación.
Cayo Augusto
185

Supongo que hay un problema con su repositorio principal de pod. Bórralo y descárgalo de nuevo.

Tu puedes hacer:

pod repo remove master
pod setup
pod install

O:

sudo rm -fr ~/.cocoapods/repos/master
pod setup
pod install
Gastón Antonio Montes
fuente
50
Simplemente correr pod setuphizo el trabajo.
Nagendra Rao
1
Para mí, ¡solo ejecutar la línea de eliminación primero resolvió el problema! Sin embargo, tomó un tiempo configurarlo.
sinewave440hz
2
¡Guauu! Esta. Por alguna razón, mi repositorio principal de Spec no se configuró correctamente y tuve que eliminarlo de esta manera y luego hice la configuración e instalación. ¡Gracias por esto!
praneetloke
1
La 'configuración de la cápsula' tomó bastante tiempo, pero era todo lo que necesitaba (como mencionó Rao)
Chris Allinson
3
Es posible que desee intentarlo pod repo update && pod setupprimero: si a su repositorio le faltan especificaciones, esto podría solucionarlo y será más rápido que volver a clonar todo el repositorio desde cero.
Eliot
35

Para mí, fue un problema encontrar la especificación, no la especificación en sí. Necesitaba agregar un enlace de origen al Podfile, consulte la documentación de Podfile

Cocoapods agregó recientemente la necesidad de vincularse al repositorio que contiene el archivo de especificaciones de pod que está buscando, el valor predeterminado es:

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

Es posible que deba agregar varios enlaces de origen si está utilizando pods más oscuros o caseros.

dloomb
fuente
1
Esto no puede ser un requisito (al menos no con la última versión), porque no he necesitado agregar enlaces fuente y después de seguir la sugerencia de Gastón todo funcionó bien.
sinewave440hz
@ sinewave440hz, agregar la fuente se usa con mayor frecuencia cuando necesita acceder a un .gitrepositorio privado no estándar . La fuente predeterminada es pública.
ScottyBlades
Ya veo, gracias (no es que recuerde haber escrito nada de eso, pero estoy seguro de que ayudará a alguien en alguna parte: D)
sinewave440hz
7

Resuelvo esto después de agregar

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

a Podfile. bueno. Usé un repositorio local como mi Repo. Entonces puedo usar esto en otro archivo podspec

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

iOS_Networking_CPN está en el camino local.

zippo
fuente
source '/ Users / username / Documents / path / to / iOS_SpecsRepository' funcionó, ¿sabe por qué tengo que usar una ruta de origen local?
charlatán
en mi opinión, porque cada dispositivo necesita un repositorio local para un podspec
zippo
7

Para mí, esto funcionó a las mil maravillas.

pod repo remove master
pod setup

Sin embargo, puede intentarlo directamente, pod setupcomo señalaron algunos usuarios.

Hemang
fuente
6

Asegúrate de haber agregado

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

al principio de su Podfile

Ugo Marinelli
fuente
2
Esto es especialmente relevante si desea agregar un pod privado.
Stan
5

Actualice el repositorio principal para cocoapods.

`pod repo update master`
Idan Magled
fuente
4

Recibí un error similar para MGBoxkit

[!] No se puede encontrar una especificación para MGBoxkit

Reemplazando la siguiente línea

pod 'MGBoxkit'

con

pod 'MGBoxKit'

solucionó el problema.

Zeeawan
fuente
¿cuál es la diferencia?
Gargo
Typo as k fue reemplazado por K.
zeeawan
2

Primero debe agregar su Podspec a un repositorio de especificaciones privado; esto permite que CocoaPods encuentre el pod cuando intentas instalarlo.

Ingrese lo siguiente en Terminal, asegurándose de estar todavía en el directorio del marco que está tratando de agregar:

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

Extrañé agregar , problema que causaba.

Reemplazo,

pod 'PodName' '~> 2.3'

Con,

pod 'PodName', '~> 2.3'

Hizo el trabajo.

Mohammad Zaid Pathan
fuente
1

Resolví mi problema con el siguiente comando:

actualización de la mazorca de cacao

Para actualizar use este comando

sudo gem instalar cocoapods

si el comando anterior da un error que use este

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

y que hacer esto

actualización del repositorio de pod

Seema Sharma
fuente
1

Para mí, lo siguiente funcionó bien, pero el primer intento podría ser el comando directo de "configuración de la vaina". Si eso no funciona, entonces opte por los siguientes comandos definitivamente hará que las cosas sucedan.

pod repo eliminar
configuración del
pod maestro instalación del pod

Sathish
fuente
¿En qué se diferencia esto de la respuesta de @ gastón-antonio-montes ?
Leo
1

Siga los pasos siguientes:

Paso 0: pod repo update master

Paso 1: pod install

¡Y ya está!

Sunil Targe
fuente
0

tenía el mismo problema.

lo que realmente funcionó para mí fue gem uninstall cocoapods(como se mencionó anteriormente en https://stackoverflow.com/users/4264880/seema-sharma ) donde descubrí que tenía instaladas 11 (!) versiones de cocoapods diferentes.

Elegí desinstalar todo y luego gem install cocoapods:1.4.0

Todo bien ahora.

Catarino
fuente
0

Ninguna de las respuestas me ayudó. Al final me di cuenta de que tenía un error tipográfico en uno de los Pods .

Ej .: - Firebaseresulrereres/Analytics. Se suponía que lo era, Firebase/Analyticspero sin mi conocimiento, el nombre de la vaina tenía una ortografía incorrecta como Firebaseresulrereres/Analytics.

¡Corregir el nombre de la vaina funcionó bien para mí! . ¡Me costó 1 hora encontrar esto !. ¡El desarrollo puede ser ambiguo y frustrante en ocasiones! :)

Pradeep Reddy Kypa
fuente
0

Estaba trabajando en flutter con todos los repositorios públicos. Recibí un error similar:

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

Por alguna razón, la TOCropViewControllerespecificación no estaba disponible. Intenté lo siguiente:

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

Pero la especificación del complemento aún no estaba disponible. Finalmente, lo resolví eliminando el maestro de repositorios del pod.

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

Para validar y confirmar que el complemento está aquí, probé grepadentro .cocoapods, usando:

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

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

Encontré el repositorio git del complemento y el número de versión correcto.

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

Después de eso flutter cleany flutter runcomencé a trabajar.

jerrymouse
fuente