CocoaPods is een eenvoudig te gebruiken hulpprogramma voor afhankelijkheidsbeheer voor de ontwikkeling van iOS en OS X. Hoewel CocoaPods vrij duidelijk en eenvoudig te gebruiken is, heb ik het gevoel dat veel ontwikkelaars van cacao terughoudend zijn om het eens te proberen. In deze zelfstudie laat ik je zien hoe je in minder dan vijf minuten aan de slag kunt met CocoaPods.
CocoaPods is een hulpprogramma voor afhankelijkheidsbeheer voor iOS- en OS X-ontwikkeling. Het maakt het beheren van externe bibliotheken in een Xcode-project eenvoudig en ongecompliceerd. CocoaPods heeft aanzienlijke tractie verworven in de cacaogemeenschap en als gevolg daarvan bieden honderden open-sourcebibliotheken nu ondersteuning voor CocoaPods. Om een idee te krijgen van welke bibliotheken beschikbaar zijn via CocoaPods, bezoekt u de CocoaPods-website en zoekt u naar enkele van uw favoriete externe bibliotheken. Bedrijven zoals TestFlight, Mixpanel en Google stellen hun bibliotheken beschikbaar via CocoaPods.
Het werken met bibliotheken van derden in een Xcode-project is niet altijd gemakkelijk en het kan vaak lastig zijn, vooral wanneer niet-ARC-bibliotheken worden geïntegreerd in een ARC-project. Eloy Durán startte het CocoaPods-project om deze pijn te verlichten. Voordat ik overschakelde naar CocoaPods, deed ik wat de meeste ontwikkelaars doen; ze kopiëren de bronbestanden van bibliotheken van derden handmatig naar een Xcode-project en compileren die bestanden met de rest van het project. Hoewel deze methode prima werkte, was het bijwerken van de afhankelijkheden van een project een omslachtig en foutgevoelig proces.
CocoaPods maakt het beheren van de afhankelijkheden van een project veel eenvoudiger en intuïtiever. U hoeft alleen op te geven welke afhankelijkheden of pods u in uw project wilt opnemen en CocoaPods zorgt voor de rest. Het bijwerken van een pod naar een nieuwe versie is net zo eenvoudig als het uitvoeren van een enkele opdracht op de opdrachtregel. Als je de commandoregel in het verleden hebt vermeden, is het misschien een goed moment om ermee bekend te raken.
Een ander geweldig kenmerk van CocoaPods is dat het wordt gedistribueerd als een robijn edelsteen. Dit maakt het installeren van CocoaPods vrijwel pijnloos. Om de CocoaPods-edelsteen te installeren, moet je systeem Ruby en RubyGems hebben geïnstalleerd. Vrees niet omdat zowel Ruby en RubyGems waarschijnlijk al op uw computer zijn geïnstalleerd.
Open een nieuw Terminal-venster en typ gem -v
om te bepalen of RubyGems op uw systeem is geïnstalleerd. Als je hulp nodig hebt bij het installeren van Ruby of RubyGems, schreef Andrew Burgess een geweldige tutorial over RubyGems op Nettuts +. In het geval u problemen ondervindt bij het installeren van CocoaPods, is het waarschijnlijk dat het artikel van Andrew de oplossing voor uw probleem heeft.
Voordat u CocoaPods installeert, moet RubyGems worden bijgewerkt door de volgende opdracht uit te voeren op de opdrachtregel:
edelsteen update - systeem
Afhankelijk van uw systeemconfiguratie kan het nodig zijn om deze opdracht vooraf in te voeren sudo
.
Als je meer wilt lezen over Ruby en Rubygems, schreef Jeffrey Way een leuk artikel over Ruby on Net Tuts +. De tutorial van Andrew Burgess die ik eerder noemde, maakt deel uit van een diepgaande serie genaamd Ruby voor nieuwkomers. Het is zeker de moeite van het bekijken waard.
Het installeren van CocoaPods is eenvoudig als Ruby en RubyGems zijn geïnstalleerd. Voer het volgende uit:
gem installeer cocoapods
Na installatie installeert u CocoaPods door de pod instellen
commando. Tijdens het instellingsproces wordt de CocoaPods-omgeving gevormd en een .cocoapods
map wordt aangemaakt in uw thuismap. Deze verborgen map bevat alle beschikbare podspecificaties of podspecificaties.
In plaats van uit te leggen hoe CocoaPods werkt, is het veel eenvoudiger om je te laten zien door een eenvoudig Xcode-project te maken met behulp van CocoaPods. Open Xcode en maak een nieuw project op basis van de Lege applicatie sjabloon. Geef het project een naam CocoaPods en zorg ervoor dat ARC (Automatic Reference Counting) voor het project wordt ingeschakeld (figuur 1).
Figuur 1Nu we het project hebben gemaakt, moeten we een podfile toevoegen. Een Podfile is vergelijkbaar met een Gemfile. Het is een tekstbestand met informatie over het project en het bevat ook de afhankelijkheden van het project, dat wil zeggen, de bibliotheken die worden beheerd door CocoaPods. Sluit het Xcode-project en open een nieuw Terminal-venster. Blader naar de hoofdmap van uw Xcode-project en maak een nieuw pod-bestand door te draaien tik op Podfile
in de Terminal. De aanraken
opdracht werkt het gemodificeerde datum van een bestand, maar het maakt het bestand voor u als het niet bestaat, en dat is precies wat we willen. Zorg ervoor dat u de Podfile maakt in de hoofdmap van uw Xcode-project.
tik op Podfile
Open de Podfile in uw favoriete teksteditor. Op het moment van schrijven van deze tutorial is de huidige versie van CocoaPods 0.16. In deze versie moet het platform, iOS of OS X worden gespecificeerd. Dit is niet langer nodig in de volgende versie van CocoaPods (0.17). In dit voorbeeld vertellen we CocoaPods dat we ons richten op het iOS-platform, zoals hieronder weergegeven. Het is mogelijk om het implementatiedoel van het project te specificeren, maar dit is optioneel. Het standaardimplementatiedoel is 4.3 voor iOS en 10.6 voor OS X.
platform: ios, '6.0'
Met het opgegeven platform wordt het tijd om de lijst met afhankelijkheden voor het project te maken. Een afhankelijkheid bestaat uit het sleutelwoord peul
gevolgd door de naam van de afhankelijkheid of pod. Een pod is net als een edelsteen, een afhankelijkheid of bibliotheek die u in een project of toepassing wilt opnemen. U kunt optioneel de afhankelijkheidsversie opgeven zoals hieronder wordt weergegeven.
pod 'SVProgressHUD', '0.9'
Door het versienummer van een pod weg te laten, gebruikt CocoaPods de nieuwste versie die beschikbaar is (dat is wat u het meeste van de tijd wilt). U kunt ook het versienummer vooraf een specificatie geven om CocoaPods meer controle te geven over welke versie u moet gebruiken. De specificeerders zijn meestal zelf verklarend (>, > =
, <
, <=
), maar één specifier, ~>
, lijkt misschien vreemd als je niet bekend bent met RubyGems. Ik zal uitleggen wat ~>
betekent in het onderstaande voorbeeld. De onderstaande pod-specificatie geeft aan dat de versie van de AFNetworking-bibliotheek er tussen moet liggen 1.0.1
en 1.1
maar exclusief de laatste. Dit is erg handig als je CocoaPods de mogelijkheid wilt geven om de afhankelijkheden van een project bij te werken wanneer kleine releases (bugfixes) beschikbaar zijn, maar belangrijke releases uitsluit die API-wijzigingen kunnen bevatten die iets in je project kunnen breken.
pod 'AFNetworking', '~> 1.0.1'
Een afhankelijkheidsverklaring heeft veel meer configuratie-opties, die kunnen worden ingesteld in de Podfile. Als u bijvoorbeeld met de laatste versie van een bibliotheek wilt werken, kunt u het versienummer van een pod vervangen door :hoofd
zoals hieronder getoond. Je kunt CocoaPods zelfs vertellen welke bron je moet gebruiken door de git-repository op te geven of CocoaPods naar een lokale kopie van de bibliotheek te verwijzen. Dit zijn meer geavanceerde functies van CocoaPods.
pod 'AFNetworking',: head pod 'SVProgressHUD',: git => 'https://github.com/samvermette/SVProgressHUD' pod 'ViewDeck',: local => '~ / Development / Library / ViewDeck'
Met onze lijst met opgegeven afhankelijkheden, is het tijd om door te gaan met het installatieproces. Werk het Podfile bij zoals hieronder wordt getoond en voer het uit pod installeren
in de Terminal. Zorg ervoor dat u deze opdracht uitvoert in de hoofdmap van uw Xcode-project, waar u ook het Podfile van het project hebt gemaakt.
platform: ios, '6.0' pod 'ViewDeck', '~> 2.2.2' pod 'AFNetworking', '~> 1.1.0' pod 'SVProgressHUD', '~> 0.9.0' pod 'HockeySDK', '~ > 3.0.0 '
pod installeren
CocoaPods inspecteert de lijst met afhankelijkheden en installeert elke afhankelijkheid zoals gespecificeerd in de Podfile van het project. De output op de commandolijn laat zien wat CocoaPods onder de motorkap doet. De laatste twee regels zijn vooral interessant voor ons; CocoaPods maakt een Xcode-werkruimte en voegt ons project toe aan die werkruimte. Het maakt ook een nieuw project genaamd Pods, voegt de vermelde afhankelijkheden toe aan dat project en koppelt dat statisch aan een bibliotheek. Het nieuw gemaakte Pods-project wordt ook aan diezelfde werkruimte toegevoegd (figuur 2).
De afhankelijkheden van oplossen./ Podfile 'Updates van datasets updaten Cocoapods 0.17.0.rc7 is beschikbaar. De afhankelijkheden voor het doel oplossenstandaard '(iOS 6.0) Afhankelijkheden downloaden AFNetworking (1.1.0) installeren HockeySDK (3.0.0) installeren SVProgressHUD (0.9) installeren ViewDeck (2.2.5) ondersteunende bestanden installeren 2013-03-28 11: 13: 54.663 xcodebuild [1352 : 1207] XcodeColors: load (v10.1) 2013-03-28 11: 13: 54.665 xcodebuild [1352: 1207] XcodeColors: pluginDidLoad: [!] Vanaf nu gebruikCocoaPods.xcworkspace'. IntegrerenlibPods.a 'in doelCocoaPods 'van Xcode-project./CocoaPods.xcodeproj'.
Figuur 2 Bij het uitvoeren van de pod installeren
opdracht, CocoaPods vertelt ons dat we de CocoaPods.xcworkspace
van nu af aan. Xcode-werkruimten zijn een belangrijk onderdeel van hoe CocoaPods werkt. Een Xcode-werkruimte is een container die een of meer Xcode-projecten groepeert, waardoor het gemakkelijker wordt om met meerdere projecten te werken. Zoals we eerder zagen, creëert CocoaPods een nieuw project voor jou, genaamd Pods
, en het voegt dit project automatisch toe aan een nieuwe Xcode-werkruimte. Het project waarmee we zijn begonnen, is ook toegevoegd aan deze werkruimte. Het belangrijkste voordeel is dat uw code en de afhankelijkheden van het project strikt gescheiden zijn. De afhankelijkheden in het Podsproject zijn statisch gekoppeld aan een bibliotheek die u kunt zien in de Bouw fases tabblad van ons project (figuur 3). Het is belangrijk om te onthouden dat u de werkruimte van CocoaPods moet gebruiken in plaats van het project waarmee we zijn begonnen. Ons project is nu klaar voor gebruik en we kunnen beginnen met het gebruik van de bibliotheken die zijn opgegeven in de Podfile van het project.
Het is duidelijk dat CocoaPods het gemakkelijker maakt om snel een project op te zetten met verschillende afhankelijkheden. Het bijwerken van afhankelijkheden wordt echter ook eenvoudiger. Als een van de afhankelijkheden van uw project een grote update heeft ontvangen en u deze update in uw project wilt gebruiken, hoeft u alleen maar het Podfile van uw project bij te werken en uit te voeren pod update
op de opdrachtregel. CocoaPods zal de afhankelijkheden van uw project voor u updaten.
De CocoaPods-edelsteen heeft nog veel meer tricks in petto. Hoewel je de CocoaPods-website kunt gebruiken om door de lijst met beschikbare pods te bladeren, kun je met het CocoaPods-juweel ook een lijst maken (lijst
) en zoeken (zoeken
) de beschikbare pod-specificaties. Open een nieuw Terminal-venster en voer de opdracht in pod zoekvoortgang
om te zoeken naar bibliotheken die het woord bevatten vooruitgang. Het voordeel van het zoeken naar pods via de opdrachtregel is dat u alleen de informatie ziet die belangrijk voor u is, zoals de bron van de pod en de beschikbare versies.
Voer de ... uit peul
commando (zonder opties) om een volledige lijst met beschikbare opties te zien. De CocoaPods handleiding is uitstekend, dus lees hem zeker als je problemen tegenkomt of vragen hebt.
Je zou nu een basiskennis van CocoaPods moeten hebben, zodat je CocoaPods in je ontwikkeling kunt gebruiken. Zodra u CocoaPods gaat gebruiken, is de kans groot dat u niet zonder kunt. Hoewel ik vaak van CocoaPods gehoord had, kostte het me wat tijd om de overgang te maken. Toen ik echter CocoaPods ging gebruiken, heb ik geen enkel project zonder. Ik weet zeker dat je het leuk zult vinden als je het eenmaal hebt geprobeerd. Niet alleen zal het u tijd besparen, het zal uw leven als ontwikkelaar ook een beetje gemakkelijker maken.