Come rimuovere CocoaPods

Dopo aver visto come installarlo e come usarlo, non poteva mancare anche come rimuovere completamente (disintegrare, se proprio vogliamo usare il comando in italiano):

sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate && pod clean
rm Podfile

Ovviamente tutto eseguito da terminale e nel percorso del progetto con all’interno le dipendenze.

Come usare CocoaPods

Dopo aver visto come installare CocoaPods, vediamo come utilizzarlo.

Se avete appena scaricato un progetto da GitHub ma non sapete come eseguirlo perché ha diverse dipendenze gestite con CocoaPods (di solito viene indicato se la documentazione è fatta come si deve), vediamo subito come fare!

Spostatevi nel percorso del progetto e create un file denominato Podfile senza estensione.

sudo nano Podfile

E incollate qualcosa di simile:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target 'Example app' do
    pod 'Alamofire', '~> 4.7'
end

Salvate ed eseguite:

pod install

Attendete il tempo necessario per scaricare tutte le dipendenze e aprite il progetto (normalmente dev’esserci un file .xcworkspace altrimenti il classico file del progetto di Xcode).

Come installare CocoaPods

CocoaPods è un gestore di dipendenze per progetti in Swift e Objective-C. Qualche mese fa abbiamo visto come alleggerirlo, ma non abbiamo mai affrontato l’argomento base, cioè come installarlo.

Installarlo è molto semplice, vi basterà aprire il terminale ed eseguire:

sudo gem install cocoapods

Ovviamente dovete già aver installato Xcode da App Store o scaricato tramite il developer.apple.com.

Come alleggerire CocoaPods

Molti di voi probabilmente li hanno utilizzati o li utilizzano ancora tutt’oggi. Io già un anno fa vi avevo avvisati (l’articolo non è mio, però condivido il pensiero) che CocoaPods avesse qualcosa che non andava.

Beh arrivo al dunque brevemente come al solito e non mi dilungo troppo: se avete utilizzato delle dipendenze nei vostri progetti con CocoaPods e avete problemi di spazio (online c’è anche chi si lamenta d’avere più di 20 GB di file), ecco a voi come alleggerire la cartella dei progetti (nel caso vogliate alleggerire anche Xcode, due anni fa ho scritto come cancellare la cache di Xcode in inglese).

La cartella è nascosta, quindi dovete accedervi da terminale con:

cd ~/.cocoapods/

E cancellatela ovviamente con:

sudo rm -R ~/.cocoapods/

Screenshot di DaisyDisk nel quale mi sono accorto che… lasciamo stare

Nella speranza che usiate altri metodi per le vostre dipendenze (ehm… Carthage), alla prossima!

Come installare Carthage

Andate qui e scaricate l’ultima versione https://github.com/Carthage/Carthage/releases altrimenti compilatevelo da zero Installatelo normalmente e aprite il terminale.

Spostatevi nella cartella del vostro progetto ed eseguite:

nano Cartfile

E incollate (modificando il nome in base a quello che state creando):

github "Utente/Progetto"

Salvate ed eseguite:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
carthage update --platform iOS
open Carthage

Poi andate dentro la cartella /Carthage/Build/iOS, selezionate il file .framework e trascinatelo dentro il vostro progetto.

Run script

Ora andate su Build Phases, cliccate sul + in alto a sinistra e poi su Run Script. Dentro Shell mettete:

/usr/local/bin/carthage copy-frameworks

E su Input Files il percorso del framework che avete appena creato:

Linked frameworks and libraries

E voilà, ora andate e importatene tutti! Vi basterà importare le vostre dipendenze semplicemente con:

import Progetto

Perché CocoaPods è il male assoluto

Ok, sì lo so, male assoluto è un esagerazione e sopratutto è un opinione e non un dato di fatto.

Non starò qua a spiegarvi il perché o il per come CocoaPods rischia di essere svantaggioso su grandi progetti (anche piccoli in realtà a dire il vero) ma vi rimando a questo articolo di Zalando in cui spiegano come mai l’hanno abbandonato:

https://tech.zalando.com/blog/how-the-zalando-ios-app-abandoned-cocoapods-and-reduced-build-time/

Screenshot preso dall’articolo

Voi cosa ne pensate?