English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explicação detalhada da criação do CocoaPods no IOS

Após aprender a usar as dependências de Pods de outros, você definitivamente tem a intenção de criar suas próprias dependências, hoje vamos revelar o mistério do processo de criação das dependências de Pods. O processo de criação inteiro usa um exemplo que eu implementei chamado WZMarqueeView de efeito de display de字幕, os passos são os seguintes:

I. Crie seu próprio repositório do GitHub

Os CocoaPods são hospedados no github (link oficial:https://github.com/CocoaPods) Todas as dependências do Pods também dependem do github, portanto, o primeiro passo que precisamos tomar é criar um repositório github próprio. A interface de criação do repositório é como na figura a seguir:


No gráfico acima, os itens marcados com números são6O local correspondente à descrição é o seguinte:

1、Nome do repositório

Nome do repositório, aqui é escrito WZMarqueeView, obrigatório;

2、Descrição

Informações de descrição do repositório, opcional;

3、Publicidade do repositório

Aqui só pode ser escolhido Público, por uma razão, Private custa dinheiro, e a outra é que Private, ninguém pode ver, por que compartilhar?

4、Criar um arquivo README padrão

Todo repositório completo precisa de um documento de descrição README, é recomendável marcar. Claro, se não se importar com a complicação, você também pode criar manualmente um posteriormente;

5、Adicionar arquivo .gitignore

O arquivo .gitignore lista vários tipos de arquivos, todos os tipos de arquivos que esse arquivo contém não serão incluídos no gerenciamento de versão do git. A escolha depende das necessidades pessoais;

6、Tipo de licença

Todos os repositórios regulares devem ter um arquivo de licença, as dependências do Pods têm requisitos mais rigorosos para esse arquivo, é obrigatório ter. Portanto, é melhor criar um aqui ou criar posteriormente. O tipo de licença que uso é MIT.

Após preencher todos os itens acima, clique no botão Create repository para criar. A interface de sucesso da criação é como na figura a seguir:


Até aqui, o processo de criação do repositório foi concluído.

II. Clone o repositório localmente
Para facilitar a exclusão de conteúdo do repositório, é necessário clonar o repositório localmente primeiro, existem várias maneiras de fazer isso, recomendo usar a linha de comando:

$ git clone https://github.com/wangzz/WZMarqueeView.git

Após a conclusão da operação, os arquivos correspondentes no GitHub serão copiados para o local, a estrutura do diretório é a seguinte:

O arquivo .gitignore na pasta do repositório do GitHub começa com um ponto, portanto, aqui só podemos ver dois.
Todas as operações de adição, exclusão e modificação de arquivos que vamos realizar estarão nesta pasta.

Terceiro: adicionar ao repositório git local os arquivos necessários para criar a biblioteca de dependência Pods

Atenção: todos os arquivos descritos a seguir devem ser colocados na raiz do repositório git clonado no passo dois.
1com sufixo .podspec
Este arquivo é o arquivo de descrição da biblioteca de dependência Pods, cada biblioteca de dependência Pods deve ter apenas um arquivo de descrição. O nome do arquivo deve coincidir com o nome da dependência que queremos criar, o arquivo correspondente à minha biblioteca de dependência WZMarqueeView é WZMarqueeView.podspec.
1.1 Conteúdo do arquivo podspec

O conteúdo salvo do podspec de WZMarqueeView é:

Pod::Spec.new do |s|
 s.name       = "WZMarqueeView"
 s.version     = "1.0.0"
 s.summary     = "Um vista de carrossel usada no iOS."
 s.description   = <<-DESC
            É uma vista de carrossel usada no iOS, implementada pelo Objective-C.
            DESC
 s.homepage     = "https:"//github.com/wangzz/WZMarqueeView"
 # s.screenshots   = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
 s.license     = 'MIT'
 s.author      = { "王中周" => "wzzvictory_tjsd@"163.com" }
 s.source      = { :git => "https:"//github.com/wangzz/WZMarqueeView.git", :tag => s.version.to_s }
 # s.social_media_url = 'https:'//twitter.com/NAME''
 s.platform   = :ios, ''4.3'
 # s.ios.deployment_target = ''5.0''
 # s.osx.deployment_target = ''10.7'
 s.requires_arc = true
 s.source_files = 'WZMarqueeView'/*'
 # s.resources = 'Assets'
 # s.ios.exclude_files = 'Classes'/osx'
 # s.osx.exclude_files = 'Classes'/ios'
 # s.public_header_files = 'Classes'/**/*.h'
 s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'
end

Este arquivo é um arquivo Ruby, todas as entradas nele são fáceis de entender.
Alguns parâmetros que precisam ser explicados:
① s.license
Tipo de licença usado pela biblioteca de dependências Pods, os usuários podem preencher suas próprias escolhas.
② s.source_files
Representa o caminho do arquivo de origem, observe que este caminho é relativo ao arquivo podspec.
③ s.frameworks
As frameworks necessárias, não é necessário adicionar sufixo .frameworks.

1.2 Como criar arquivo podspec

Os usuários podem criar seus próprios arquivos podspec de duas maneiras:
① Copie meu arquivo podspec e modifique os parâmetros correspondentes, recomendo usar essa maneira.
② Execute a seguinte comando de criação:

$ pod spec create WZMarqueeView

também será criado um arquivo chamado WZMarqueeView.podspec. Mas ao abrir o arquivo criado, você notará que há muita coisa lá dentro, muitas delas não são necessárias.

2arquivo de licença
O CocoaPods obriga todas as bibliotecas de dependências Pods a terem um arquivo de licença, caso contrário, a verificação não será concluída. Existem muitos tipos de licença, detalhes podem ser consultados no site tl;dr Legal. Ao criar um repositório no GitHub, já escolhi o tipo de licença MIT.

3arquivo principal
Criar bibliotecas de dependências Pods é para facilitar o uso de nossos resultados por outros, por exemplo, a classe WZMarqueeView que eu quero compartilhar com todos, é algo que é indispensável para fornecer aos usuários. Coloquei os dois arquivos dessa classe em uma pasta chamada WZMarqueeView, a estrutura de diretório correspondente é mostrada na figura:

que contém dois arquivos: WZMarqueeView.h e WZMarqueeView.m

4projeto demo
Para ensinar rapidamente a outros a usar nossa biblioteca de dependências Pods, geralmente é necessário fornecer um projeto demo. O projeto demo que eu criei foi colocado em uma pasta chamada WZMarqueeViewDemo, que contém os arquivos conforme mostrado na figura a seguir:

5、README.md
Quem usa o github deve estar familiarizado com esse arquivo, é uma parte essencial de um repositório github bem-sucedido, usando a linguagem de marcação markdown, usada para descrições detalhadas do repositório.

O que foi mencionado acima5são os arquivos mais básicos necessários para criar uma dependência Pods, entre eles1、2、3é necessário4、5é opcional mas altamente recomendado criar.
Após adicionar esses arquivos, o diretório do repositório github local ficou como mostrado na figura a seguir:

Quatro, submeter as alterações de arquivo para github
Após o passo três, muitos arquivos foram adicionados ao repositório git local, agora precisamos submetê-los ao repositório github. O processo de submissão é dividido em várias etapas:
1、verificação pod
Execute as seguintes comandos:

$ definir a nova versão para 1.0.0
$ definir a nova tag para 1.0.0

Esses dois comandos são para adicionar um número de versão ao pod e marcar com tag. Em seguida, execute o comando de verificação pod:

$ pod lib lint

Se tudo estiver normal, após a execução deste comando, aparecerá a seguinte saída:

 -> WZMarqueeView (1.0.0)
WZMarqueeView passou na verificação.

Aqui termina a verificação pod.
Deve ser mencionado que, ao executar o comando de verificação pod, qualquer mensagem de warning ou error será impressa, e a verificação falhará! Se ocorrer uma exceção na verificação, as informações impressas serão detalhadas, e você pode fazer as correções conforme as instruções.

2、uploadar o conteúdo do repositório git local para o repositório github
Execute as seguintes etapas consecutivamente:

$ git add -A && git commit -m "Release 1.0.0."
$ git tag '1.0.0'
$ git push --tags
$ git push origin master

Os comandos acima pertencem ao domínio do git, não vou discutir mais. Se tudo estiver normal, você deve ver o conteúdo adicionado recentemente no github. Como mostrado na figura a seguir:

Cinco, uploadar o arquivo podspec para o repositório oficial do CocoaPods
Após as quatro operações anteriores, você pode pensar que já está pronto, infelizmente, ainda falta muito.

Para que uma dependência Pods realmente esteja disponível, ainda é necessário fazer a última operação, uploadar o arquivo podspec gerado recentemente para o repositório oficial de Specs do CocoaPods, o link é: https://github.com/CocoaPods/Specs

Abra este link e você descobrirá que todos os bancos de dependências Pods que podemos usar, bem como todos os Pods que podemos encontrar com o comando pod search, uploadem seus arquivos podspec para este repositório, o que significa que apenas ao uploadar nosso arquivo podspec para este repositório, podemos nos tornar uma dependência Pods verdadeira, e os outros poderão usá-la normalmente!

Segundo as regras do git, para adicionar arquivos a um repositório de outra pessoa, é necessário fazer um fork do repositório da outra pessoa, fazer as alterações correspondentes e, em seguida, push para o autor do repositório, esperar que o autor aprove, e então mesclar com o repositório original.

Depois de entender o processo, é claro como proceder:
1Forkar um repositório oficial do CocoaPods Specs
Entre na link do repositório oficial mencionado anteriormente, clique no botão fork no canto superior direito da tela, conforme a figura a seguir:



Depois disso, você descobrirá que você terá mais uma ramificação do repositório sob seu nome. Por exemplo, a minha ramificação é:

2Clonar o repositório forkado para o local
Execute as seguintes comandos:

$ git clone https://github.com/wangzz/Specs.git

Atenção, todos precisam substituir o endereço do repositório correspondente pelo seu próprio.
Este repositório é um pouco grande, precise de paciência.

3Adicionar seu arquivo podspec ao repositório de Specs local
Após clonar o repositório de Specs para o local, ele será colocado em uma pasta chamada Specs. O princípio de armazenamento de arquivos podspec no repositório de Specs é:
> pasta com o mesmo nome da biblioteca dependente do Pods---> pasta com o mesmo nome da versão---> arquivo podspec
Seguindo este princípio, eu preciso criar uma pasta chamada WZMarqueeView na pasta Specs, e, em seguida, entrar na pasta WZMarqueeView, criar uma pasta com o nome1Na pasta .0.0, e, em seguida, entre na pasta1Na pasta .0.0, e copie o arquivo WZMarqueeView.podspec que foi criado anteriormente para lá.
É fácil entender que, se no futuro houver atualizações para a classe WZMarqueeView, você deve criar uma pasta com o nome da versão correspondente na pasta WZMarqueeView, para armazenar o arquivo podspec da versão correspondente.
Após essas operações, a estrutura de diretórios será como follows:

4Puxar as alterações locais do repositório de Specs para o repositório github
Execute as seguintes comandos:

$ git add -A && git commit -m "Adicionar arquivo podspec de WZMarqueeView"
$ git push origin master

Depois que o processo for bem-sucedido, você verá o arquivo recém-carregado no repositório de Specs que você clonou no github.

5Puxar as alterações feitas no seu fork do Specs para o repositório oficial de Specs do CocoaPods
Ao entrar no repositório de Specs que você clonou, você verá um botão verde no canto superior esquerdo da tela:


Clicando neste botão, você verá a interface conforme a figura a seguir:

Clicando no botão verde Create Pull Request da imagem, podemos puxar as mudanças feitas no Specs que forkamos para o repositório oficial de Specs do CocoaPods.

Depois de chegar a este ponto, o trabalho restante é apenas esperar, esperando que os mantenedores do CocoaPods revisem e misture as mudanças que puxamos para o repositório oficial de Specs. Este processo geralmente leva cerca de um dia. Se houver qualquer mensagem, como a revisão não ser aprovada, ou a revisão ser aprovada, o CocoaPods oficial enviará um e-mail de notificação.
Quando a revisão for aprovada, poderemos ver a pasta que uploadingmos no repositório oficial de Specs do CocoaPods.

6、Ver o progresso de revisão
Claro, também podemos verificar o progresso de revisão, abrindo este link:https://github.com/CocoaPods/Specs/pullsAqui você pode ver todas as solicitações de pull dos repositórios Specs, como na figura a seguir:

O círculo vermelho identifica a solicitação que eu puxei recentemente, e ao clicar nela, você pode ver o progresso de revisão correspondente.

Seis, Ver nossas bibliotecas de dependências Pods criadas
Se receber um e-mail de aprovação do CocoaPods oficial, você pode estar ansioso para executar o comando pod search no seu computador, para ver se consegue encontrar a biblioteca de dependências Pods que criou. No entanto, você definitivamente ficará desapontado, porque ainda é necessário executar um comando para usar o comando search no nosso computador local para encontrar nossas dependências:

$ pod setup

No meu primeiro tutorial da série CocoaPods: Detalhamento do CocoaPods----A última parte da seção avançada já介绍了这个命令,它会将所有的Pods dependências tree atualizadas para o local. Após executar este comando, execute:

$ pod search WZMarqueeView

será exibida a informação de introdução correspondente!

Depois de tanto falar, aqui é quando o processo de criação da biblioteca de dependências Pods realmente termina! Meus amigos, você teve sucesso???? Se encontrar algum problema, por favor, deixe um comentário.

Sete, Documentação de referência

1、http://guides.cocoapods.org

Você também pode gostar