DEV Community

Leonir Deolindo
Leonir Deolindo

Posted on

Repositórios locais com Carthage

Quando se trabalha com modularização de aplicativos iOS, geralmente é necessário realizar muitas alterações no código que está no framework. O caminho mais fácil é ter o módulo em sua máquina, fazer o projeto principal apontar para ele e receber essas alterações de forma rápida. Claro que antes de levar o framework para o app, trabalha-se primeiro em um projeto exemplo dentro do workspace do mesmo.

Após implementar as funcionalidades pretendidas, é preciso levar o framework para o app e ver se tudo está funcionando como esperado. Aqui entra o problema a ser resolvido.

Como adicionar dependências ao projeto utilizando Carthage?

Primeiro você cria um Cartfile e em cada linha é adiciona o nome dos frameworks desejados. Para isso é utilizado a seguinte notação:

github "Nome do framework" versão

Se o framework desejado for privado ou, simplesmente, você quiser apontar para sua URL, pode ser passado o link do repositório:

git "https://link/do/repo.git" versão

Mas, essa opção para uso de repositório privado gera muita "dor de cabeça". Pois, para qualquer alteração é necessário fazer o push das mesmas, depois atualizar o projeto, contar com a estabilidade da sua conexão e assim lá se vão preciosos segundos ou até minutos do seu tempo.

A solução é apontar seu Cartfile para um repositório local, assim:

git "file:///path/do/projeto"

Dica 1: Não precisa colocar .git no final da URL.

Dica 2: Você pode trabalhar com branchs? Sim! E para fazer isso basta seguir essa notação:

git "file:///path/do/projeto" "nome branch"

Dica 3: Use o terminal ao seu favor. Para conseguir o caminho do seu repositório, utilize o comando $ pwd dentro do diretório.

Dica 4: E agora José, como utilizo o framework local sendo que ele não tem nome e aponta pra um path na minha maquina?

Tomando como exemplo, que o caminho para seu framework é:

$ ~/projetos[meu_framework]

Agora é só rodar o comando de update do Carthage apontando para o módulo local, assim:

carthage update [meu_framework]

Fontes:

https://github.com/Carthage/Carthage
https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile

Top comments (0)