create - Tenedores CocoaPods y GitHub
git push tag (2)
Otra opción es hacer que su proyecto haga referencia al pod directamente y no a través de github. De esta forma, no tiene que seguir cometiendo su fork o copiar / pegar código solo para probar sus cambios. Puede trabajar con dos proyectos diferentes de Xcode simultáneamente y comprometerse por separado en sus respectivos proyectos.
pod ''AFNetworking'', :path => ''~/Documents/AFNetworking''
Documentación de CocoaPods: http://guides.cocoapods.org/using/the-podfile.html#using-the-files-from-a-folder-local-to-the-machine
Esta es la primera vez que hago un proyecto de GitHub, y tampoco soy demasiado competente con CocoaPods, así que por favor tengan paciencia conmigo.
Básicamente, bifurqué un proyecto en GitHub usando lo siguiente en mi Podfile
:
pod ''REActivityViewController'', ''~> 1.6.7'', :git => ''https://github.com/<username>/REActivityViewController.git''
Luego hice algunos cambios en el tenedor, y por supuesto cuando hice una pod install
para instalar otro pod, reinstalé el REActivityViewController
original y borré mis cambios.
Me doy cuenta de que necesito enviar mis cambios a mi tenedor antes de la instalación de otra pod install
, pero ¿cómo puedo hacer eso si se trata de un repositorio instalado por CocoaPods? Busqué en la carpeta REActivityViewController
instalada debajo de la carpeta Pods
y no hay ningún archivo git.
¿Debo trabajar en el tenedor fuera de mi proyecto y luego usar CocoaPods para instalar los cambios? Eso es demasiado engorroso de un flujo de trabajo.
¿O necesito hacer algo con los submódulos?
Responderé a esta pregunta usando un ejemplo. Tengo un fork de TTTAttributedLabel con alguna funcionalidad adicional que agregué aquí:
Para utilizar esto en un proyecto Cocoapods, I:
- Empuja mis cambios a mi tenedor
- Configurar mi Podfile para obtener los cambios y la actualización
Una vez que haya llevado sus cambios a su tenedor, obtenga el SHA de su último compromiso. Puedes hacer esto usando git rev-parse origin/master | pbcopy
git rev-parse origin/master | pbcopy
o en la página de commits de GitHub para su proyecto:
Luego, puede especificar la confirmación específica en su fork en su Podfile de esta manera:
pod ''TTTAttributedLabel'', :git => ''https://github.com/getaaron/TTTAttributedLabel.git'', :commit => ''d358791c7f593d6ea7d6f8c2cac2cf8fae582bc1''
Después de eso, la pod update
este compromiso particular de tu tenedor. Si lo desea, también puede hacer un podspec
para su fork, pero encuentro este enfoque más simple y no realizo cambios con la frecuencia suficiente como para justificar un nuevo flujo de trabajo.
¿Debo trabajar en el tenedor fuera de mi proyecto y luego usar Cocoapods para instalar los cambios? Esa es la forma de engorroso de un flujo de trabajo.
Puedes hacerlo de esta manera, pero por lo general:
- Edite el código dentro de mi proyecto y asegúrese de que funcione
- Copie los cambios en mi tenedor, por
- exportar un parche, o
- copiando sobre todo el archivo de código fuente
- Comprometerse y empujar a Github
- Actualiza el Podfile con el nuevo SHA
- Ejecutar la
pod update
¿O necesito hacer algo con los submódulos?
No, no es necesario.