English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Primero, el archivo Podfile.lock
Como se mencionó anteriormente, al comenzar a usar CocoaPods y ejecutar pod install, se generará un archivo Podfile.lock. Este archivo parece no tener relación con nosotros, pero en realidad no debe ser ignorado.
Este archivo se utiliza para guardar las versiones de las bibliotecas de dependencias de Pods instaladas, después de instalar las tres bibliotecas de dependencias de Pods SBJson, AFNetworking y Reachability mediante CocoaPods, el contenido del archivo Podfile.lock correspondiente es:
PODS: - AFNetworking (2.1.0): - AFNetworking/NSURLConnection - AFNetworking/NSURLSession - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/UIKit - AFNetworking/NSURLConnection (2.1.0): - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/NSURLSession (2.1.0): - AFNetworking/NSURLConnection - AFNetworking/Reachability (2.1.0) - AFNetworking/Security (2.1.0) - AFNetworking/Serialization (2.1.0) - AFNetworking/UIKit (2.1.0): - AFNetworking/NSURLConnection - Reachability (3.0.0) - SBJson (4.0.0) DEPENDENCIES: - AFNetworking (~> 2.0) - Reachability (~> 3.0.0) - SBJson (~> 4.0.0) SPEC CHECKSUMS: AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd Reachability: 500bd76bf6cd8ff2c6fb715fc5f44ef6e4c024f2 SBJson: f3c686806e8e36ab89e020189ac582ba26ec4220 COCOAPODS: 0.29.0
El archivo Podfile.lock es muy útil para el desarrollo en equipo. Para la escritura sin especificar la versión de la biblioteca de dependencias Pods en el archivo Podfile, es como sigue:
pod 'SBJson'
Esta frase se utiliza para obtener la última versión del dependencia de Pods SBJson.
Cuando alguien en el equipo ejecuta el comando pod install, el archivo Podfile.lock registra la versión más reciente de la biblioteca de dependencias Pods en ese momento. Luego, cuando otros miembros del equipo chequen este proyecto que contiene el archivo Podfile.lock y ejecuten el comando pod install, la versión de la biblioteca de dependencias Pods que obtendrán será la misma que la versión original del usuario. Sin el archivo Podfile.lock, todos los usuarios que ejecuten el comando pod install obtendrán la última versión de SBJson, lo que podría causar que los miembros del mismo equipo usen versiones diferentes de las bibliotecas de dependencias, lo que sería un desastre para la colaboración en equipo!
En este caso, si el equipo desea usar la última versión de la biblioteca de dependencias SBJson, hay dos opciones:
Cambiar el archivo Podfile para que apunte a la última versión de la biblioteca de dependencias SBJson;
Ejecutar el comando pod update;
Dado que el archivo Podfile.lock es tan importante para la colaboración en equipo, necesitamos agregarlo a la gestión de versiones.
Segundo, archivo Podfile
Para los usuarios comunes, el archivo Podfile es con el que más nos打交道 al usar CocoaPods. CocoaPods está implementado en ruby, por lo que la sintaxis del archivo Podfile es la sintaxis de ruby. A continuación, se presentan varios aspectos del archivo Podfile:
1、ubicación del archivo Podfile
Este es un problema que dejó de lado en el artículo anterior. En la mayoría de los casos, recomendamos que el archivo Podfile se coloque en la carpeta raíz del proyecto, como se muestra en la siguiente imagen:
De hecho, el archivo Podfile puede estar ubicado en cualquier directorio, lo que se necesita hacer es especificar la ruta del proyecto en el archivo Podfile. En comparación con el archivo original, el archivo Podfile se añadió una línea en la posición más inicial, con el siguiente contenido específico:
xcodeproj \/Usuarios/wangzz/Escritorio/CocoaPodsTest/CocoaPodsTest.xcodeproj platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0'
La ruta especificada utiliza la palabra clave xcodeproj.
Después de eso, ingrese a la ruta del archivo Podfile y ejecute el comando pod install, que será igual que antes para descargar estas bibliotecas de dependencia de Pods, y los archivos relacionados se colocarán debajo de la carpeta del Podfile, como se muestra en la siguiente imagen:
Como antes, seguimos necesitando usar el archivo workspace generado aquí para abrir el proyecto.
2、Podfile y objetivo
El Podfile es esencialmente utilizado para describir los objetivos del proyecto Xcode. Si no se especifica explícitamente el objetivo correspondiente al Podfile, CocoaPods creará un objetivo implícito llamado default, que se corresponderá con el primer objetivo del proyecto. En otras palabras, si no se especifica el objetivo en el Podfile, solo el primer objetivo del proyecto puede usar las bibliotecas de dependencia de Pods descritas en el Podfile.
Si se desea describir múltiples objetivos en un Podfile al mismo tiempo, según las necesidades diferentes, se pueden utilizar diferentes métodos de implementación. Para ilustrar el problema, se crea otro objetivo llamado Second en el proyecto original, ahora el proyecto contiene los siguientes objetivos:
① En múltiples objetivos se utilizan las mismas bibliotecas de dependencia de Pods
Por ejemplo, si los objetivos CocoaPodsTest y Second necesitan usar las bibliotecas de dependencia de Pods Reachability, SBJson y AFNetworking, se puede usar la palabra clave link_with para lograrlo, escribiendo Podfile de la siguiente manera:
link_with 'CocoaPodsTest', 'Second' platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0'
Esta forma de escribir permite que los objetivos CocoaPodsTest y Second compartan la misma biblioteca de dependencia de Pods.
② Los diferentes objetivos utilizan bibliotecas de dependencia de Pods completamente diferentes
CocoaPodsTest este objetivo utiliza las bibliotecas de dependencia Reachability, SBJson y AFNetworking, pero el objetivo Second solo necesita usar la biblioteca de dependencia OpenUDID, en este caso se puede usar la palabra clave target, la descripción de Podfile es como sigue:
target :'CocoaPodsTest' do platform :ios pod 'Reachability', '~> 3.0.0' pod 'SBJson', '~> 4.0.0' platform :ios, '7.0' pod 'AFNetworking', '~> 2.0' end target :'Second' do pod 'OpenUDID', '~> 1.0.0' end
Dentro de ellos, do/end como identificador de inicio y finalización.
3、usar Podfile para gestionar la versión de la biblioteca de dependencias Pods
Al introducir una biblioteca de dependencias, se debe especificar explícitamente o implícitamente la versión de la biblioteca de dependencias que se引用, y la forma de escribir y el significado específico son los siguientes:
pod 'AFNetworking' //No especificar explícitamente la versión de la biblioteca de dependencias, lo que significa obtener la última versión cada vez pod 'AFNetworking', ''2.0' //solo usar2versión .0 pod 'AFNetworking', '>' 2.0' //usar superior a2.0 de la versión pod 'AFNetworking', '>=' 2.0' //usar mayor o igual que2.0 de la versión pod 'AFNetworking', '<' 2.0' //usar menor que2.0 de la versión pod 'AFNetworking', '<=' 2.0' //usar menor o igual a2.0 de la versión pod 'AFNetworking', '~> 0.'1.2' //usar mayor o igual a 0.1.2pero menor que 0.2de la versión pod 'AFNetworking', '~>0.'1' //usar mayor o igual a 0.1pero menor que1.0 de la versión pod 'AFNetworking', '~>0' //Para versiones superiores a 0, la restricción de esta escritura y no escribir nada tienen el mismo efecto, ambos significan usar la última versión
Tercero, comandos comunes de CocoaPods
1、pod install
Instale la biblioteca de dependencias según el contenido especificado en el archivo Podfile. Si existe el archivo Podfile.lock y el archivo Podfile correspondiente no ha sido modificado, se instalará según la versión especificada en el archivo Podfile.lock.
Cada vez que se actualiza el archivo Podfile, se debe ejecutar nuevamente este comando para reinstalar la biblioteca de dependencias Pods.
2、pod update
Si la versión de la biblioteca de dependencias especificada en el archivo Podfile no está fijada, cuando la biblioteca de dependencias correspondiente tiene actualizaciones, ya sea que exista o no el archivo Podfile.lock, siempre se obtendrá la última versión de la biblioteca de dependencias permitida descrita en el archivo Podfile.
3、pod search
El formato de la orden es:
$ pod search OpenUDID
OpenUDID es el parámetro.
A partir del nombre del comando, no es difícil ver que esta orden se utiliza para buscar dependencias de Pods disponibles por nombre, los resultados de la ejecución son los siguientes:
-> OpenUDID (1.0.0) Iniciativa de código abierto para una solución UDID universal y persistente para iOS. pod 'OpenUDID', '~> 1.0.0' - Página principal: http://OpenUDID.org - Fuente: https://github.com/ylechelle/OpenUDID.git - Versiones: 1.0.0 [master repo]
Aquí hemos encontrado una información disponible que describe brevemente la biblioteca OpenUDID. De hecho, lo que realmente necesitamos es la tercera línea de los resultados anteriores:
pod 'OpenUDID', '~> 1.0.0'
No es difícil ver que esto es lo que necesitamos agregar al archivo Podfile.
Con esta orden, puede encontrar rápidamente las dependencias de Pods necesarias.
4、pod setup
El formato de la orden es:
$ pod setup
Después de ejecutar, se imprimirá lo siguiente:
Configuración del repositorio maestro de CocoaPods Actualización 7cd4668..f3d3ced Rápido-forward
A continuación, se imprimirán muchas más informaciónes de actualización.
Esta orden se utiliza para actualizar el árbol de dependencias de Pods guardadas en el ordenador local. Dado que muchos usuarios crean o actualizan las dependencias de Pods diariamente, la ejecución de esta orden puede ser bastante lenta, por favor tenga paciencia. Necesitamos ejecutar esta orden con frecuencia, de lo contrario, no se pueden encontrar nuevas dependencias de Pods al ejecutar la orden pod search.
Cuatro, documentos de referencia