La optimización de flujo de trabajo para actualizar cocoapods propiedad internamente dependencias?

votos
6

Digamos que tengo una principal Project Acon varias dependencias cocoapods (que son propiedad internamente por cocoapods cesión temporal de nuestra organización).

Digamos que estoy trabajando Project A, y mientras se trabaja en ella puedo encontrar una solución en una DependencyB, así que modificar el código en el que la dependencia sin dejar de ser el proyecto de Xcode de ProjectA.

¿Cuál sería el mejor flujo de trabajo para impulsar los cambios en que la dependencia a su propio repositorio, y luego la actualización de esa dependencia en Project A?

Realmente me gustaría algunas maneras para evitar , por completo automatizar o simplificar el siguiente flujo de trabajo (que es un PITA)

Worflow para evitar

  1. git clone git@github.com:Organization/DependencyB.git
  2. Realice los cambios en el proyecto de dependencia (los mismos cambios que, cuando hizo mientras fijación de la cuestión que he encontrado mientras se trabaja en Project A)

  3. Actualizar el DependencyB.podspecarchivo

    s.version = 0.1.7
    s.source = { :git => https://github.com/Organization/DependencyB.git, :tag => 0.1.7 }
    
  4. Comprometerse y Tag versión de esta dependencia

    git add -A
    git commit -m 'Made some changes'
    git tag -a 0.1.7 -m 'This is an awesome tag :D'
    git push origin master
    git push --tags origin
    
  5. Actualizar cocoapods repo privada del organiazation (que guardé en ~/)

    cd ~/.cocoapods/OrganizationPrivateRepo/CoverFlux
    mkdir 0.1.7
    cd 0.1.7
    
  6. copiar el DependencyB.podspec actualizado a la cesión temporal privado del organiation (clonado en ~/.cocoapods)

    ~/.cocoapods/OrganizationPrivateRepo/DependencyB/0.1.7/CoverFlux.podspec
    
  7. Confirmar los cambios en el depósito privado y empujar a distancia

    cd ~/.cocoapods/OrganizationPrivateRepo/
    git commit -am 'Added version 0.1.7 to DependencyB spec'
    git push origin master
    
  8. Por último proceder a la carpeta y la actualización de la inicial 'Proyecto A'

    pod update
    

Nota:

Es un proyecto PODFILE se ve así:

    platform :ios, '6.0'
    pod 'DependencyB'
Publicado el 12/08/2013 a las 23:04
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
4

Estos son algunos consejos para simplificar el flujo de trabajo. Más allá de estos, puede que tenga que considerar la posibilidad de algunas secuencias de comandos adicionales.

En primer lugar, le recomiendo que mantenga su archivo podspec se encuentra en la raíz de su proyecto. Así, DependencyB.git tendría el archivo DependencyB.podspec.

Simplificar Paso 3

Cambiar la etiqueta de origen para hacer referencia a la versión. De esta manera, sólo tendrá que cambiar la línea en su versión podspec.

s.source = { :git => "https://github.com/Organization/DependencyB.git", :tag => "#{s.version}" }

Simplificar los pasos 5, 6 y 7

Ejecute el siguiente desde el directorio de DependencyB.git. (Asumiendo que tiene su podspec allí como he sugerido más arriba)

pod push OrganizationPrivateRepo DependencyB.podspec

Si DependencyB.podspec es el único archivo podspec, que ni siquiera es necesario incluirlo en la línea, obteniéndose:

pod push OrganizationPrivateRepo

Etapa 4

Por último, creo que la simplificación de la Etapa 4 es posible, pero es una de esas cosas que varían entre las organizaciones y los desarrolladores individuales, ya que es parte de su flujo de trabajo. Por ejemplo, normalmente cometo de mi IDE.

Estas secuencias de comandos podrían integrarse en el podspec para que actualicen el s.versionvalor. O alternativamente, obtener la etiqueta correcta del s.versionvalor.

UPDATE: Simplificar Paso 2

Parece que está haciendo un cambio dos veces para DependencyB. Usted puede tener la configuración CocoaPods un enlace simbólico. En PODFILE de ProjectA, establecer lo siguiente:

pod 'DependencyB', :path => "../path/to/DependencyB'

Ahora puede editar los archivos en DependencyB de ProjectA. Usted tendrá que ejecutar pod updatedespués de hacer este cambio. Después de eso, los cambios en la fuente estará disponible inmediatamente, ya que es un enlace simbólico. He tenido problemas para hacer confirmaciones Git desde Xcode cuando se hace esto, pero aparte de eso funciona bien.

Respondida el 12/08/2013 a las 23:25
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more