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

Partie avancée détaillée de CocoaPods sur IOS

I. Fichier Podfile.lock
Comme mentionné précédemment, lorsque vous commencez à utiliser CocoaPods et que vous avez terminé l'exécution de pod install, un fichier Podfile.lock est généré. Ce fichier semble ne pas avoir de rapport avec nous, mais en réalité, il ne devrait pas être ignoré.
Ce fichier est utilisé pour enregistrer les versions des bibliothèques de dépendances Pods installées. Après avoir installé les dépendances Pods SBJson, AFNetworking et Reachability par CocoaPods, le contenu du fichier Podfile.lock correspondant est :

PODS:
 - AFNetworking (2.1.0):
  - AFNetworking/NSURLConnection
  - AFNetworking/NSURLSession
  - AFNetworking/Reachability
  - AFNetworking/Security
  - AFNetworking/Serialization
  - AFNetworking/UIKit
 - AFNetworking/NSURLConnection (2.1.0):
  - AFNetworking/Reachability
  - AFNetworking/Security
  - AFNetworking/Serialization
 - AFNetworking/NSURLSession (2.1.0):
  - AFNetworking/NSURLConnection
 - AFNetworking/Reachability (2.1.0)
 - AFNetworking/Security (2.1.0)
 - AFNetworking/Serialization (2.1.0)
 - AFNetworking/UIKit (2.1.0):
  - AFNetworking/NSURLConnection
 - Reachability (3.0.0)
 - SBJson (4.0.0)
DEPENDENCIES:
 - AFNetworking (~> 2.0)
 - Reachability (~> 3.0.0)
 - SBJson (~> 4.0.0)
SPEC CHECKSUMS:
 AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd
 Reachability: 500bd76bf6cd8ff2c6fb715fc5f44ef6e4c024f2
 SBJson: f3c686806e8e36ab89e020189ac582ba26ec4220
COCOAPODS: 0.29.0

L'utilisation la plus importante du fichier Podfile.lock est pour le développement en équipe. Pour les écritures qui n'indiquent pas la version de la bibliothèque de dépendances Pods dans le Podfile, voici :

pod 'SBJson'

Cette phrase est utilisée pour obtenir la dernière version de la bibliothèque de dépendances Pods SBJson.
Quand quelqu'un de l'équipe a exécuté la commande pod install, le fichier Podfile.lock généré enregistre la version la plus récente de la bibliothèque de dépendances Pods. Lorsque d'autres membres de l'équipe vérifient ce projet contenant le fichier Podfile.lock, puis exécutent la commande pod install, la version de la bibliothèque de dépendances Pods qu'ils obtiennent est la même que la version initiale obtenue par l'utilisateur. Sans fichier Podfile.lock, tous les utilisateurs qui exécutent la commande pod install obtiendront la dernière version de SBJson, ce qui pourrait entraîner que les membres de la même équipe utilisent des versions de bibliothèques de dépendances différentes, ce qui serait un désastre pour la collaboration d'équipe !
Dans ce cas, s'il souhaite utiliser la dernière version de la bibliothèque de dépendances SBJson, il y a deux solutions :
Modifier le Podfile pour le faire pointer vers la dernière version de la bibliothèque de dépendances SBJson ;
Exécuter la commande pod update ;
Étant donné l'importance du fichier Podfile.lock pour la collaboration d'équipe, nous devons le ajouter à la gestion des versions.

Deuxièmement, le fichier Podfile
Pour les utilisateurs ordinaires, le fichier Podfile est le fichier avec lequel nous interagissons le plus souvent en utilisant CocoaPods. CocoaPods est implémenté en ruby, donc la syntaxe du fichier Podfile est la syntaxe de ruby. Ensuite, nous allons présenter le Podfile à partir des aspects suivants :
1、L'emplacement du fichier Podfile
C'est un problème laissé en suspens dans l'article précédent. Souvent, nous recommandons de placer le fichier Podfile dans le répertoire racine du projet, comme indiqué dans l'image suivante :

En réalité, le fichier Podfile peut être placé dans n'importe quel répertoire, ce que l'on doit faire est de spécifier le chemin d'accès au projet dans le Podfile. Par rapport à l'ancien, le fichier Podfile a été ajouté une ligne au début, voici le contenu spécifique :

xcodeproj \/Users/wangzz/Desktop/CocoaPodsTest/CocoaPodsTest.xcodeproj
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0' 

La clé de chemin d'accès spécifiée est xcodeproj.
Par la suite, accédez au répertoire du fichier Podfile, exécutez la commande pod install pour télécharger ces bibliothèques de dépendance Pods comme auparavant, et les fichiers associés générés seront placés dans le répertoire du fichier Podfile, comme illustré dans l'image suivante :

Comme auparavant, nous devons toujours ouvrir le projet avec le fichier workspace généré ici.

2、Podfile et target
Podfile est essentiellement utilisé pour décrire les targets dans un projet Xcode. Si nous ne spécifions pas explicitement le target correspondant à Podfile, CocoaPods créera un target implicite nommé default qui correspondra au premier target de notre projet. En d'autres termes, si nous ne spécifions pas de target dans Podfile, seules les bibliothèques de dépendance Pods décrites dans Podfile pourront être utilisées par le premier target de notre projet.
Si vous souhaitez décrire plusieurs targets dans un même Podfile, selon les besoins, il existe différentes méthodes d'implémentation. Pour illustrer le problème, créez un target nommé Second dans l'ancien projet. À présent, les targets inclus dans le projet sont les suivants :

① Utilisation de la même bibliothèque de dépendance Pods dans plusieurs targets
Par exemple, si les targets nommés CocoaPodsTest et Second doivent utiliser les bibliothèques de dépendance Pods Reachability, SBJson et AFNetworking, vous pouvez utiliser la clé link_with pour réaliser cela, et écrire Podfile de la manière suivante :

link_with 'CocoaPodsTest', 'Second'
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0' 

Cette écriture permet de faire en sorte que les deux targets CocoaPodsTest et Second partagent les mêmes bibliothèques de dépendance Pods.
② Les différents targets utilisent des bibliothèques de dépendance Pods complètement différentes
CocoaPodsTest ce target utilise les bibliothèques de dépendance Reachability, SBJson et AFNetworking, mais le target Second n'a besoin que de la bibliothèque de dépendance OpenUDID. Dans ce cas, vous pouvez utiliser la clé target, et la description de Podfile est la suivante :

target :'CocoaPodsTest' do
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0'
end
target :'Second' do
pod 'OpenUDID', '~> 1.0.0'
end

Parmi eux, do/end comme marqueur de début et de fin.
3、Utiliser Podfile pour gérer la version des bibliothèques de dépendances Pods
Lors de l'introduction d'une nouvelle bibliothèque de dépendances, il est nécessaire de spécifier explicitement ou implicitement la version de la bibliothèque de dépendances, et la manière d'écrire et le sens sont les suivants :

pod 'AFNetworking'   //Ne pas spécifier explicitement la version de la bibliothèque de dépendances, cela signifie que la version la plus récente sera toujours obtenue à chaque fois.
pod 'AFNetworking', '2.0'   //Utiliser seulement2version .0
pod 'AFNetworking', '> 2.0'   //Utiliser supérieur à2.0 de la version
pod 'AFNetworking', '>=' 2.0'   //Utiliser >=2.0 de la version
pod 'AFNetworking', '< 2.0'   //Utiliser <2.0 de la version
pod 'AFNetworking', '<=' 2.0'   //Utiliser <=2.0 de la version
pod 'AFNetworking', '~> 0.'1.2'   //Utiliser >= 0.1.2mais inférieure à 0.2de la version
pod 'AFNetworking', '~>0.'1'   //Utiliser >= 0.1mais inférieure à1.0 de la version
pod 'AFNetworking', '~>0'   //Pour les versions supérieures à 0, écrire cette restriction est la même chose que ne rien écrire, cela signifie utiliser la version la plus récente.

III. Commandes courantes de CocoaPods
1、pod install
Selon le contenu spécifié dans le fichier Podfile, installer les bibliothèques de dépendances. Si il y a un fichier Podfile.lock et que le fichier Podfile correspondant n'a pas été modifié, il installera la version spécifiée par le fichier Podfile.lock.
Chaque fois que le fichier Podfile est mis à jour, il est nécessaire de réexécuter cette commande pour réinstaller les bibliothèques de dépendances Pods.
2、pod update
Si la version de la bibliothèque de dépendances spécifiée dans Podfile n'est pas fixe, lorsque la bibliothèque de dépendances correspondante est mise à jour, il ira chercher la version la plus récente autorisée par le fichier Podfile, peu importe s'il y a un fichier Podfile.lock ou non.
3、pod search
Le format de la commande est :

$ pod search OpenUDID

OpenUDID est le paramètre.
Il est facile de voir que cette commande est utilisée pour rechercher les dépendances Pods disponibles par nom, et le résultat est le suivant :

-> OpenUDID (1.0.0)
  Initiative ouverte pour une solution UDID universelle et persistante pour iOS.
  pod 'OpenUDID', '~> 1.0.0'
  - Page d'accueil : http://OpenUDID.org
  - Source :  https://github.com/ylechelle/OpenUDID.git
  - Versions : 1.0.0 [dépôt maître]

Nous avons trouvé une donnée disponible ici, qui décrit brièvement la bibliothèque OpenUDID. En réalité, ce que nous avons vraiment besoin est la troisième ligne de ce résultat :

pod 'OpenUDID', '~> 1.0.0'

Il est facile de voir que c'est ce que nous devons ajouter au fichier Podfile.
Avec cette commande, il est facile et rapide de trouver les dépendances Pods nécessaires.
4、pod setup
Le format de la commande est :

$ pod setup

Après exécution, il sera affiché :

Configuration du dépôt maître CocoaPods
Mise à jour 7cd4668..f3d3ced
Fast-forward

Des informations de mise à jour supplémentaires seront également affichées.
Cette commande est utilisée pour mettre à jour le dépôt local des dépendances Pods. Étant donné que de nombreuses personnes créent ou mettent à jour les dépendances Pods chaque jour, cette commande peut être assez lente, veuillez être patient. Nous devons exécuter cette commande régulièrement, sinon, lorsque de nouvelles dépendances Pods sont ajoutées, la commande pod search ne peut pas trouver.

Quatre, documents de référence

http://guides.cocoapods.org/using/index.html

Vous pourriez aussi aimer