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

Spiegazione dettagliata della creazione di CocoaPods su iOS

Dopo aver imparato a utilizzare le librerie di dipendenza di Pods di altri, sei sicuramente desideroso di creare la tua propria libreria di dipendenza, oggi scopriremo il mistero del processo di creazione delle librerie di dipendenza Pods. Tutto il processo di creazione è illustrato con un esempio di view che ho implementato con il nome WZMarqueeView per l'effetto di display a scorrimento, i passaggi sono i seguenti:

1. Creare il proprio repository su github

CocoaPods sono ospitati su github (il link ufficiale è:https://github.com/CocoaPods) Poiché tutte le librerie di dipendenze Pods dipendono anche da github, la prima cosa che dobbiamo fare è creare un repository github personale. L'interfaccia di creazione del repository è come nell'immagine:


I sei punti numerati nell'immagine sopra corrispondono alle seguenti spiegazioni:

1, Repository name

Il nome del repository, qui scrivi WZMarqueeView, obbligatorio;

2, Description

Le informazioni di descrizione del repository, opzionali;

3, la visibilità del repository

Qui puoi solo selezionare Public, una parte è che Private ha un costo monetario, l'altra è che Private non è visibile agli altri, quindi non c'è molto senso di condivisione;

4, creare o no un file README predefinito

Un repository completo deve avere una documentazione di descrizione README, si consiglia di selezionare. Naturalmente, se non ti dispiace, puoi crearne uno manualmente in seguito;

5, aggiungere o no il file .gitignore

Il file .gitignore contiene diversi tipi di file, per qualsiasi tipo di file incluso in questo file, git non lo includerà nella gestione delle versioni. La scelta dipende dalle tue esigenze personali;

6, tipo di license

Tutti i repository regolari dovrebbero avere un file license, la libreria di dipendenze Pods ha requisiti più rigorosi per questo file, è obbligatorio averlo. Pertanto, è meglio farlo creare da github qui, o crearlo in seguito. Il tipo di license che utilizzo è MIT.

Dopo aver compilato tutti gli elementi sopra, fare clic sul pulsante Create repository per creare, l'interfaccia di creazione di successo è come nell'immagine:


Fino a questo punto, il processo di creazione del repository è terminato.

Secondo: clonare il repository localmente
Per facilitare la rimozione di contenuti dal repository, è necessario prima clonare il repository localmente, ci sono molti modi per farlo, si consiglia di utilizzare la riga di comando:

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

Dopo aver completato l'operazione, i file corrispondenti su github saranno copiati localmente, la struttura della directory è:

Il file .gitignore nel repository di github è un file nascosto che inizia con un punto, quindi qui si possono vedere solo due di loro.
Tutte le operazioni di aggiunta, rimozione e modifica dei file successivi saranno eseguite in questa directory.

Terzo: aggiungere i file necessari per creare la libreria di dipendenze Pods nel repository locale

Attenzione: tutti i file descritti di seguito devono essere posizionati nella directory radice del repository locale clonato nel passo due.
1, file con suffisso .podspec
Questo file è la descrizione della libreria di dipendenze Pods, ogni libreria di dipendenze Pods deve avere ed avere solo una descrizione del file. Il nome del file deve essere coerente con il nome della libreria di dipendenze che desideriamo creare, la mia libreria di dipendenze WZMarqueeView ha come nome del file WZMarqueeView.podspec.
1.1 podspec文件内容

WZMarqueeView.podspec的保存内容为:

Pod::Spec.new do |s|
 s.name       = "WZMarqueeView"
 s.version     = "1.0.0"
 s.summary     = "A marquee view used on iOS."
 s.description   = <<-DESC
            It is a marquee view used on iOS, which implement by 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      = { "王中周" => "[email protected]" }
 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
Tra cui alcuni parametri da spiegare: il file è un file Ruby, le voci al suo interno sono facili da capire.
① s.license
Il tipo di licenza utilizzato dalla libreria di dipendenze Pods, è sufficiente compilare la scelta corrispondente.
② s.source_files
Rappresenta il percorso dei file di origine, notare che questo percorso è relativo al file podspec.
③ s.frameworks
I framework necessari, non è necessario aggiungere il suffisso .frameworks.

1.2 Come creare un file podspec

I metodi per creare il proprio file podspec possono essere due:
① Copia il mio file podspec e modifica i parametri corrispondenti, è raccomandato utilizzare questo metodo.
② Esegui il seguente comando di creazione:

$ pod spec create WZMarqueeView

Verrà anche creato un file chiamato WZMarqueeView.podspec. Ma aprendo il file creato, noterai che c'è molto dentro, molte cose che non ci servono.

2, file LICENSE
CocoaPods richiede che tutte le librerie di dipendenze Pods abbiano un file di licenza, altrimenti la verifica non passerà. Ci sono molti tipi di licenza, dettagli che possono essere consultati sul sito tl;dr Legal. Quando ho creato il repository GitHub, ho scelto la licenza MIT.

3, file principale della classe
La creazione di una libreria di dipendenze Pods è per facilitare l'uso delle nostre opere da parte di altri, come la classe WZMarqueeView che voglio condividere con tutti, è ovviamente necessaria. Ho messo i due file della classe in una cartella chiamata WZMarqueeView, la struttura del percorso corrispondente è illustrata di seguito:

Contiene due file: WZMarqueeView.h e WZMarqueeView.m

4, progetto demo
Per insegnare rapidamente agli altri come utilizzare la nostra libreria di dipendenze Pods, di solito è necessario fornire un progetto demo. Ho messo il mio progetto demo in una cartella chiamata WZMarqueeViewDemo, la quale contiene i file illustrati di seguito:

5, README.md
Chi utilizza GitHub dovrebbe essere familiare con questo file, che è una parte essenziale di un repository GitHub di successo, utilizzato il linguaggio di markup Markdown per descrivere dettagliatamente il repository.

I cinque menzionati sopra sono i file fondamentali necessari per creare una libreria di dipendenze Pods, tra cui 1, 2 e 3 sono obbligatori, mentre 4 e 5 sono opzionali ma fortemente raccomandati da creare.
Dopo aver aggiunto questi file, la directory del repository locale GitHub è diventata come illustrato di seguito:

4. Invia i file modificati al repository GitHub
Dopo il passo tre, sono stati aggiunti molti file al repository locale git. Ora è necessario inviarli al repository GitHub. Il processo di invio si suddivide in i seguenti passaggi:
1. Verifica pod
Esegui i seguenti comandi:

$ Imposta la nuova versione a 1.0.0
$ Imposta il nuovo tag a 1.0.0

Questi due comandi sono per aggiungere un numero di versione a pod e applicare un tag. Poi esegui il comando di verifica pod:

$ pod lib lint

Se tutto è andato bene, dopo aver eseguito questo comando apparirà l'output seguente:

 -> WZMarqueeView (1.0.0)
WZMarqueeView ha superato la verifica.

Con questo, la verifica pod è terminata.
Va spiegato che durante l'esecuzione del comando di verifica pod, se viene stampato qualsiasi messaggio di warning o error, la verifica fallirà! Se la verifica si verifica in modo anomalo, le informazioni stampate saranno dettagliate e i membri possono fare le modifiche in base alle indicazioni corrispondenti.

2. Carica i contenuti modificati del repository locale su GitHub
Esegui i seguenti comandi in sequenza:

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

Questi comandi appartengono alla sfera di git, non necessitano di molte spiegazioni. Se tutto è andato bene, dovresti vedere il contenuto che hai appena aggiunto su GitHub. Come illustrato di seguito:

V. Carica il file podspec nel repository ufficiale di CocoaPods
Dopo aver completato i primi quattro passaggi, potresti pensare che tutto sia finito, ma sfortunatamente non è così.

Per rendere una libreria di dipendenza Pods effettivamente utilizzabile, è necessario eseguire l'ultimo passaggio: caricare il file podspec generato di recente nel repository ufficiale Specs di CocoaPods, raggiungibile tramite l'indirizzo: https://github.com/CocoaPods/Specs

Apri questo link e scoprirai che tutti i Pods dipendenti che possiamo utilizzare e che possiamo cercare con il comando pod search caricano i loro file podspec in questo repository. Questo significa che solo dopo aver caricato il nostro file podspec in questo repository possiamo diventare una vera libreria di dipendenza Pods e permettere agli altri di utilizzarla normalmente!

Secondo le regole di git, per aggiungere file a un repository di qualcun altro, è necessario prima fare un fork del repository altrui, apportare le modifiche necessarie e poi fare un push al creatore del repository originale. Dopo che l'autore ha approvato, è possibile unire il tutto nel repository originale.

Dopo aver capito il flusso, sai cosa fare:
1、Fork il repository ufficiale di Specs di CocoaPods
Entrando nel link del repository ufficiale, clicca sul pulsante fork in alto a destra dello schermo, come nella figura seguente:



Poi noterai che avrai una nuova branch del repository sotto il tuo nome. Ad esempio, la mia branch è:

2、Clona il repository forkato localmente
Esegui i seguenti comandi:

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

Attenzione, tutti devono sostituire l'indirizzo del repository con il proprio.
Questo repository è un po' grande, ha bisogno di pazienza.

3、Aggiungi il tuo file podspec al repository locale Specs
Dopo aver clonato il repository di Specs localmente, verrà messo in una directory chiamata Specs. Il principio di conservazione dei file podspec nel repository Specs è:
Directory omonima delle dipendenze Pods--->Directory omonima del numero di versione--->file podspec
Secondo questo principio, devo creare una directory chiamata WZMarqueeView sotto la directory Specs, entrare nella directory WZMarqueeView, creare una directory chiamata 1.0.0, e infine entrare nella directory 1.0.0 e copiare il file WZMarqueeView.podspec creato in precedenza.
Non è difficile capire che, se in futuro ci saranno aggiornamenti per la classe WZMarqueeView, è sufficiente creare una directory con il nome della versione corrispondente sotto la directory WZMarqueeView per salvare il file podspec della versione corrispondente.
Dopo aver completato queste operazioni, la struttura delle directory sarà come segue:

4、Carica le modifiche del repository locale Specs nel repository github
Esegui i seguenti comandi:

$ git add -A && git commit -m "Aggiungi il file podspec di WZMarqueeView"
$ git push origin master

Dopo il successo, potrai vedere il file appena caricato nel repository di Specs che hai forkato su github.

5、Tracciare le modifiche fatte su Specs forkato a repository ufficiale di Specs di CocoaPods
Entrando nel repository di Specs che hai forkato, vedrai un pulsante verde in alto a sinistra della schermata:


Dopo aver cliccato sul pulsante, vedrai l'interfaccia come nella figura seguente:

Clicca sul pulsante verde Create Pull Request dell'immagine, puoi tracciare le modifiche fatte su Specs che abbiamo forkato al repository ufficiale di Specs di CocoaPods.

Dopo questo passaggio, il lavoro rimanente è solo aspettare, aspettare che i manutenitori di CocoaPods revisionino e integrino le modifiche che abbiamo tirato nel repository Spec ufficiale, questo processo richiede solitamente circa un giorno di attesa. Se ci sono qualsiasi messaggi, come il rifiuto della revisione, o l'approvazione della revisione, CocoaPods ufficiale invierà una email di notifica.
Quando l'approvazione è stata completata, possiamo vedere la cartella che abbiamo caricato negli Specs repository ufficiali.

6、Visualizzare il progresso di revisione
Naturalmente, possiamo anche controllare il progresso di revisione, aprire questo link:https://github.com/CocoaPods/Specs/pullsqui puoi vedere tutte le richieste di pull repository di Specs, come nell'immagine seguente:

Il cerchio rosso indica la richiesta che ho appena tirato, facendo clic su di essa puoi vedere il progresso di revisione corrispondente.

Sei、Visualizzare le nostre librerie di dipendenze Pods create
Dopo aver ricevuto l'email di approvazione ufficiale di CocoaPods, potresti essere molto ansioso di eseguire il comando pod search sul tuo computer, per vedere se puoi cercare la libreria di dipendenze Pods che hai creato. Tuttavia, sarai deluso, perché devi eseguire un altro comando per poter utilizzare il comando search sul nostro computer locale:

$ pod setup

Nel mio primo articolo della serie di tutorial CocoaPods: 'Approfondimento su CocoaPods - Parte avanzata', nella parte finale è stata introdotta questa comando, che aggiorna l'albero di tutte le librerie di dipendenze Pods locali. Dopo aver eseguito questo comando, eseguire:

$ pod search WZMarqueeView

e mostrerà le informazioni di descrizione corrispondenti!

Dopo aver detto così tanto, il processo di creazione della libreria di dipendenze Pods è finalmente terminato! Ragazzi, avete avuto successo?? Se avete problemi, lasciate un messaggio.

Sette、Documentazione di riferimento

1、http://guides.cocoapods.org

Ti potrebbe interessare