submódulos submodulos submodule sobrescritos siguientes serán recursiva los locales how fusionar error diseño create configurar clonacion cambios atom archivos ios github repository git-submodules cocoapods

ios - submodule - submodulos en diseño



Trabajando con git submódulos/cocoápodos. (2)

Estoy trabajando en un proyecto que incluye otros repositorios de Git.

Me gustaría estar al día con estos repositorios. Sepa cuáles son las últimas funciones, correcciones de errores, etc. Qu 1) ¿Cuál es la mejor manera de mantenerse al día con un repositorio en Git sin recibir correos electrónicos de todos los problemas informados, etc.?

Después de completar esto, me gustaría saber la mejor manera de incluirlos en su proyecto. Tengo entendido que puede copiar el código fuente en el proyecto, pero ¿para qué se usan los cocoapods / submódulos? Por ejemplo, ¿cuál es la forma correcta de actualizar su proyecto con los últimos cambios en ese repositorio incluido?

¿Hay alguna GUI para cualquiera de estos métodos en lugar de terminal?


La respuesta de James Frost es una excelente explicación de cómo trabajar con Cocoapods y sus ventajas sobre los submódulos.

Algunas ventajas importantes que tienen los submódulos sobre los Cocoapods son:

los submódulos son sub-repos - no solo esto significa que las GUIs de git y git los reconocen implícitamente y cada vez son más fáciles de trabajar con ellos, también significa que sus dependencias permanecen conectadas al mundo maravilloso en el que residen sus repositorios git, Cocoapods o no Esto significa que puede colaborar y probar cambios desde su proyecto, ya que su proyecto suele ser la fuente de inspiración para la elaboración de una dependencia.

Desafortunadamente, Cocoapods no mantiene este enlace, para trabajar en un medio de dependencia para clonarlo desde git, fuera del rango de Cocoapods. Edición: vale la pena señalar que Cocoapods permite trabajar en un pod local con la path o local campos local o incluso construir su propio repositorio de especificaciones, pero aún no es un proceso tan simple.

una dependencia de la herramienta menos - como se mencionó en la viñeta anterior, los submódulos son una función de git y su uso de git significa que están disponibles para usted. La adopción de git por parte de cualquier software implica que eventualmente admitirán todas las características (importantes) de git o todas las características que cubren casos de uso comunes. Xcode 5 ha traído un soporte básico para git y GUIs (que son dependencias de herramientas, es cierto, pero es de esperar que solo dicte cómo la información es superficial, git dicta cómo funciona), como Git Tower hace que el trabajo con subposiciones sea sencillo.

Cocoapods ha recorrido un largo camino y todos los días están tomando medidas para convertirse en una herramienta estable e indispensable. Sin embargo, Apple aún no ha recibido un gesto de asentimiento y no hay ninguna razón por la que Apple no lance un cambio a Xcode que rompa los Cocoapods. Además Cocoapods depende de Ruby. Aparte, considerando la cantidad de atención y comunidad que se ha generado alrededor de Cocoapods, sería una tontería que Apple lo ignorara.

También vale la pena señalar que usar uno no le impide usar el otro. Podría ser un dolor de cabeza o podría ser lo que necesita, tal vez utilizando Cocoapods para bibliotecas de una sola clase o bibliotecas con dependencias complejas y submódulos para bibliotecas con las que interactuará a menudo.


Cocoapods es una excelente manera de incluir otros proyectos en su proyecto Xcode. El proyecto Cocoapods mantiene una lista de archivos de especificaciones de pod para muchas bibliotecas de código abierto, que especifican dónde descargar el código y cómo integrarlos en un proyecto existente. Como notó, tradicionalmente tendría que agregar un git submodule , agregar manualmente los archivos de origen a su proyecto, actualizar la configuración de compilación, etc. Cocoapods se encarga de todo esto por ti.

No estoy seguro de una forma de hacer un seguimiento de las actualizaciones de los proyectos de Github sin que también se nos notifique sobre los problemas, pero Cocoapods ciertamente puede decirle si alguno de sus ''pods'' se ha quedado obsoleto. Es entonces un comando para actualizarlos a las últimas versiones. Dicho esto, generalmente es una buena práctica "bloquear" sus dependencias externas a una versión específica que sepa que funciona correctamente.

Utilizando Cocoapods

Para empezar, primero instala Cocoapods . Entonces simplemente necesita crear un archivo en el directorio de su proyecto raíz (el mismo directorio que contiene su archivo .xcodeproj ) llamado Podfile . En el interior, puede especificar su sistema operativo de destino y sus dependencias:

platform :ios, ''5.0'' pod ''AFNetworking'', ''0.9.1'' pod ''OHAttributedLabel'', ''0.1.1''

El ejemplo anterior está dirigido a iOS 5.0 y está activando los proyectos AFNetworking y OHAttributedLabel .

Luego, en la Terminal, cambie a su directorio de proyectos:

> cd path/to/my/project

Y ejecuta pod install .

> pod install

Esto comprobará la última versión de sus dependencias para usted. También te generará un archivo .xcworkspace . De ahora en adelante, cuando trabaje en su proyecto, debe abrir .xcworkspace, no el archivo .xcodeproj .

Dentro de su nueva área de trabajo, tendrá su proyecto Xcode existente y un nuevo proyecto Pods , que contiene todas sus bibliotecas de terceros. Simplemente cree y ejecute su aplicación de la manera habitual, y el proyecto Pods también se compilará e incluirá.

Algunos otros comandos útiles de Cocoapods:

> pod outdated

Enumera todas las dependencias que tienen una actualización disponible.

> pod search query

Buscará todas las especificaciones conocidas de Pod para ''consulta''. Útil para encontrar nuevas bibliotecas!

Tutoriales

GUIs

Me temo que no conozco ninguna GUI para Cocoapods, pero realmente no hay muchos comandos de Terminal Server que deba conocer. Vale la pena sentirse cómodo con la línea de comandos, ya que es una herramienta de desarrollador tan útil.

Dicho esto, por lo que sé, Appcode ( el IDE alternativo de Jetbrains para Objective-C) planea agregar el soporte de Cocoapods en su próxima actualización.

¡Buena suerte!