update manually mac check cocoapods

manually - npm install cocoapods



¿Cómo creo un podspec CocoaPods que tiene una dependencia que existe fuera de las especificaciones? (2)

Esto no está permitido desde las podspecs, ya que al hacerlo, sería casi imposible para otras podspecs definir de qué paquete dependen y / o podrían fallar otros paquetes debido a las diferencias inesperadas de la API.

Por ejemplo, considere dos grupos que dependen de AFNetworking, pero uno especifica una ubicación de origen externa (Pod A) mientras que el otro solo especifica un requisito de versión mínima (Pod B):

  • Pod A: s.dependency ''AFNetworking'', :git => ''https://arbitrary/location''
  • Pod B: s.dependency ''AFNetworking'', ''> 2''

Ahora hay un par de problemas potenciales:

  1. En este momento, no tenemos idea de qué versión hay en el repositorio "Pod A" hasta que lo descarguemos, lo cual es una gran pérdida de tiempo en caso de que las diversas dependencias comunes de AFNetworking (por ejemplo, "Pod B") no puedan ser satisfechas.
  2. Pero lo que es aún peor es si ''Pod A'' coincide con el requisito de versión de dependencia de otros pods (por ejemplo, ''Pod B''), pero el código AFNetworking es en realidad de una ubicación fuente bifurcada y cambia alguna API esencial de la que ''Pod B'' depende en. Esto romperá silenciosamente la promesa que CocoaPods intenta hacer.

Espero que esto aclare por qué no podemos introducir una forma para que podspecs rompa silenciosamente las promesas de la versión. Sin embargo, desde su Podfile se le permite anular la ubicación de origen de cualquier pod, porque es el usuario final (el desarrollador de la aplicación) quien tiene el control y no debe haber ninguna ruptura inesperada .

Tengo un tenedor público de una biblioteca que ya existe en CocoaPods / Specs. En un Podfile, puedo hacer referencia a este pod bifurcado haciendo esto:

pod ''CoolLibrary'', :git => ''[email protected]:myname/CoolLibrary-Forked.git'', :commit => ''abcdef1234567890abcdef1234567890''

Intenté poner esto en mi MyLibrary.podspec :

s.dependency ''CoolLibrary'', :git => ''[email protected]:myname/CoolLibrary-Forked.git'', :commit => ''abcdef1234567890abcdef1234567890''

Pero recibe el siguiente mensaje de error:

-> MyLibrary.podspec - ERROR | The specification defined in `MyLibrary.podspec` could not be loaded. [!] Invalid `MyLibrary.podspec` file: [!] Unsupported version requirements. Updating CocoaPods might fix the issue.

¿Es posible especificar una dependencia en un .podspec de esta manera (es decir, para un pod que tiene un podspec, pero que no está en CocoaPods / Specs)?


Las dependencias son muy simples , y solo tienen la capacidad de definir el nombre y el especificador de versión de un Pod. No pueden extenderse con las mismas extensiones que una dependencia en el Podfile.