2
votes

Cocoapods - Avertissement de spécifications multiples détecté

Lors de l ' installation du pod , je reçois un avertissement du type Plusieurs spécifications ont été trouvées pour ""

Cela signifie que j'ai plusieurs Podspecs dans ce répertoire ~/cocoapods/repo

Exemple de Podfile:

source 'https://github.com/CocoaPods/Specs.git'
source '<Private Podspec>'

Ma question est la suivante p >

  1. quel Podspec sera utilisé lors de l'installation du pod.
  2. Si Podspec provient de , comment cela fonctionnera dans ce cas
source '<Private Podspec>'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target 'SDKDemo' do
  use_frameworks!    
  pod '<Pod Name>'
end 

Je suis arrivé à la conclusion que l'ordre des sources affectera le choix du Podspec. Mais je veux clarifier ceci.


0 commentaires

4 Réponses :


3
votes

De mon côté, cette approche (changer l'ordre des sources) n'a jamais fonctionné.

J'avais besoin de spécifier la source de mon pod privé afin de fais-le fonctionner. La raison en est que mon pod privé enregistré dans my private specs repo a le même nom qu'un autre enregistré dans le repo public des spécifications des cocoapodes .

ie:

source 'https://github.com/CocoaPods/Specs.git' # public cocoapods specs repo
source 'https://github.com/{:user}/specs.git' # my private specs repo

platform :ios, '11.0'

target 'MyAppTarget' do
  use_frameworks!
  # any other public pod ...
  pod 'PrivatePod', :source => 'https://github.com/{:user}/specs.git'
end

C'est ce qui a résolu mon problème.

p>


0 commentaires

-1
votes

Les guides CocoaPods ont la réponse:

L'ordre des sources est pertinent. CocoaPods utilisera la version la plus élevée d'un Pod de la première source qui inclut le Pod (indépendamment du fait que d'autres sources aient une version supérieure).

Quelle que soit la source que vous saisissez en premier, ce sera la première source que CocoaPods recherchera le pod.

Pour la question n ° 1: Puisque vous avez d'abord source '' , c'est ce qu'il utilisera.

Pour la question n ° 2: Puisque vous avez d'abord source 'https://github.com/CocoaPods/Specs.git' , c'est ce qu'il utilisera.

https://guides.cocoapods.org/syntax/podfile.html#tab_source


1 commentaires

Ce n'est absolument pas la bonne réponse au problème asekd. La bonne réponse a déjà été donnée et votée. (Suppression de plusieurs sources)



1
votes

Dans la version 1.8.x de Cocoapods, j'ai résolu ce problème en changeant la source de source 'https://github.com/CocoaPods/Specs.git' à source 'https://cdn.cocoapods.org/' dans Podfile

Cela dépend également des erreurs que vous recevez. Il est toujours utile de vérifier dans le dossier ~ / .cocoapods / repos pour voir quels dépôts sont à l'origine des avertissements. Il se peut que vous ayez deux instances de votre podspec privé dans ~ / .cocoapods / repos . Dans mon cas, j'ai eu ceci

pod repo remove master

Supprimez simplement le référentiel principal et je n'ai jamais vu cet avertissement depuis

[!] Found multiple specifications for `GoogleUtilities (6.2.4)`:
- /Users/hientran/.cocoapods/repos/master/Specs/0/8/4/GoogleUtilities/6.2.4/GoogleUtilities.podspec.json
- /Users/hientran/.cocoapods/repos/trunk/Specs/0/8/4/GoogleUtilities/6.2.4/GoogleUtilities.podspec.json
p >


0 commentaires

3
votes

J'avais à la fois la source "https://cdn.cocoapods.org/" et la source "https://github.com/CocoaPods/Specs.git" inclus dans Podfile

source 'https://cdn.cocoapods.org/'
source 'https://github.com/CocoaPods/Specs.git'

Après avoir supprimé source 'https://github.com/CocoaPods/Specs.git' , les avertissements ont disparu.


0 commentaires