Avertissement Cocoapods - CocoaPods n'a pas défini la configuration de base de votre projet car votre projet a déjà un ensemble de configuration personnalisé


331

Après avoir exécuté un pod installà la base de mon projet, j'obtiens l'erreur suivante:

CocoaPods n'a pas défini la configuration de base de votre projet car votre projet a déjà un ensemble de configuration personnalisé. Pour l' intégration de CocoaPods au travail du tout, s'il vous plaît soit définir les configurations de base de la cible BluePlaquesLondonFrameworkà Pods/Target Support Files/Pods/Pods.debug.xcconfigou inclure le Pods/Target Support Files/Pods/Pods.debug.xcconfigdans votre configuration de construction.

Cela ressemble probablement à une question stupide, mais comment puis-je définir la configuration de base pour une cible?

https://github.com/seanoshea/BluePlaquesLondon/blob/ios8/Podfile est le Podfile qui cause ce problème.

http://github.com/seanoshea/BluePlaquesLondon sur la branche iOS 8 est le Podfile en question si vous êtes curieux de voir à quoi ressemble le projet.


2
C'est un peu hors sujet, mais; Je veux juste vous mettre en garde contre iOS-KML-Framework. Il utilise la version 1.5 de TBXML, qui est un peu boguée. Si vous obtenez du XML mal formé dans votre flux, votre application se bloquera. Vous voudrez peut-être créer un fork privé pour iOS-KML-Framework où vous supprimez le '1.5' de la podspec, et utilisez simplement le HEAD de TBXML. Cela semble résoudre beaucoup de problèmes.
churowa

Veuillez mettre à jour votre titre pour inclure davantage d'avertissement réel. Par exemple: "CocoaPods n'a pas défini d'avertissement de configuration".
David James

Mise à jour du titre @DavidJames. Heureux de le modifier à nouveau si vous le trouvez un peu verbeux.
seanoshea

4
Maintenant, c'est l'un des titres les plus longs que j'ai vus sur stackoverflow.
Klaas

github.com/CocoaPods/CocoaPods/issues/2633 a une bonne solution de contournement - définissez toutes les configurations sur Aucun, puis exécutez "pod install"
David Airapetyan

Réponses:


583

J'ai eu le même problème, mais dans Xcode 6.1.1 - ce qui m'a corrigé était de changer le paramètre du fichier de configuration Nonepour les deux cibles liées aux pods, puis d'exécuterpod install .

Le paramètre du fichier de configuration est trouvé en sélectionnant le projet (pas la cible) puis l'onglet Info.


144
Ce paramètre est trouvé en sélectionnant le projet (pas la cible) puis l'onglet Info.
Grav

34
Cela aide à effectuer le changement, suivi de la fermeture de xcode, de l'exécution pod install, puis de la réouverture. Ne laissez pas Xcode ouvert pendant cette période.
Sebastian Roth

1
Cela m'a arrangé. ma configuration pointait vers un ancien nom xcconfig, qui a changé depuis que j'ai ajouté deux cibles explicites dans mon podfile (une pour le projet principal pour les tests), provoquant la génération de nouveaux fichiers de configuration avec des noms différents.
qix

10
Pour ceux qui avaient la même inquiétude que moi que régler cela pour Nonecasser des trucs .. le suivant pod installtrie tout.
Matthew

4
où est ce paramètre dans xcode 10? J'ai parcouru tous les onglets, je
n'ai

168

Ne bricolez pas, réinitialisez.

Pas à pas

  1. Afficher le navigateur de projet
  2. Sélectionnez un projet
  3. Sélectionner Info
  4. Dans Configurations , sélectionnez chacun, un à la fois (Debug, ApplicationUnitTest, Release, etc.), et pour chaque cible dans ladite configuration, définissez la configuration sur None .
  5. Assurez-vous que Basé sur le fichier de configuration indique 0 jeu de configurations ou aucun jeu de configurations pour chaque configuration. C'est le noeud. 0 jeu de configurations
  6. Quittez Xcode
  7. rm -rf Pods/ Podfile.lock ; pod install

Une fois que vous avez permis pod installà l'étape 7de faire sa magie, vous pourrez peut-être utiliser une configuration personnalisée et modifier vos configurations.


10
cette réponse devrait être acceptée, la précédente n'était pas évidente pour moi non plus.
Evgeniy Kleban

L'utilisation de la Podsconfiguration, comme suggéré dans d'autres réponses, n'a pas résolu mon problème le moins du monde: les paramètres de construction correspondaient déjà à Pods.debug& Pods.release, ce qui était le problème. Qu'est-ce qui a été 0 Configurations définies pour chaque configuration. Pas la même réponse que ce soit.
SwiftArchitect

Cela a également fonctionné pour moi. Juste pour noter, vous devez passer des cibles aux projets pour voir les configurations. J'ai cherché cela pendant longtemps jusqu'à ce que je tombe sur la liste déroulante.
marty331

Je voterais cela cent fois si je le pouvais. Après 30 heures de lutte contre le processus de construction de Jenkins après la fusion de 4 branches de développeurs en ajoutant 3 extensions à une application iOS avec des fichiers de configuration personnalisés, en bombardant le script check manifest.lock des cosses de cacao, cela a finalement résolu le problème. (parmi beaucoup d'autres choses, mais c'était le dernier correctif de paille). : Cheers:
Augie

"[!] Impossible de déterminer la version de Swift pour les modules suivants:"
Richard

138

Allez dans XCode et ouvrez les paramètres de votre projet et sous l'onglet Info, vous verrez "Configurations" où vous pouvez définir un fichier de configuration pour Debug et Release. Vous avez apparemment déjà défini ces paramètres dans une configuration personnalisée et CocoaPods veut / a besoin de vous pour utiliser la configuration des pods.

Voici une capture d'écran


7
Notez que cela ne résout pas le problème si vous devez réellement utiliser une configuration personnalisée dans un but réel. Voir ce problème ouvert .
funroll le

1
Rien n'a changé dans Xcode 6 pour rendre cette réponse incorrecte
quark

Un autre problème, mais cela a résolu mon problème pour moi. J'utilisais des gousses de cacao avec des tests d'interface utilisateur et cette chose m'a sauvé la vie! Je vous remercie.
Akshit Zaveri

70

Ran dans le même problème. Il s'appuierait sur le simulateur mais pas sur mon appareil. Aucune des réponses n'a résolu cela pour moi. Voici ce que j'ai fait pour rassembler quelques réponses:

  1. Modification de mon fichier pods pour utiliser une cible spécifique:

    target :MyProject do
        pod 'AWSCognitoSync'
        pod 'Facebook-iOS-SDK'
    end
  2. Installation du pod run

  3. Cela donne une erreur: [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `MyProject` to `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` or include the `Pods/Target Support Files/Pods-MyProject/Pods-MyProject.debug.xcconfig` in your build configuration.
  4. Allez dans les paramètres du projet et cliquez sur l'onglet Info. Il y aura une erreur où il ne peut pas trouver le fichier de configuration. Définissez-le sur «Aucun» pour le débogage et la publication.
  5. Exécutez à nouveau l'installation de pod
  6. Nettoyez et construisez. Cela marche.

1
Entre les étapes 4 et 5, je ferme toujours xcode. J'ai rencontré des problèmes lors de l'exécution de xcode pendant l'installation du pod.
Ray Hunter

Je me suis juste heurté à cela en créant des schémas personnalisés. Ce qui précède fonctionne également dans Xcode 7. Je recommanderais les conseils de @srayhunter sur la fermeture de Xcode pendant une installation.
subv3rsion

1
J'aimerais pouvoir voter plus d'une fois. Cela me fait à chaque fois.
Bill Burgess

16

Vous devez également vous assurer que vous n'avez pas de pods à la racine de Podfile, vous devez définir tous les pods utilisés dans de nombreuses cibles comme celle-ci:

def shared_pods
  pod 'ReactiveCocoa', '~> 2.5'
end
target 'app' do
  shared_pods
  pod 'RestKit'
end
target 'tests' do
  shared_pods
  pod 'OCMock'
end

Vous devrez peut-être également supprimer libPods.aet libPods-app.ades dépendances cibles, effectuer un nettoyage, puis réexécuter pod install.


10

Je viens de rencontrer ce problème après avoir ajouté des configurations de construction personnalisées. Je pouvais voir sous:

Pods (target) > Target Support Files > Pods

qu'il avait effectivement créé les nouveaux xcconfigfichiers qui correspondaient aux nouvelles configurations de construction, mais pour une raison quelconque, je ne pouvais pas les sélectionner dans la cible du projet de mon application.

Ce qui m'a arrangé, c'est d'installer et d'utiliser des cocoapods-deintegrate :

gem install cocoapods-deintegrate

puis exécutez:

pod deintegrate

suivi par:

pod install

2
Cela m'a aidé.
Krishnan

7

La ligne dans le podfile qui génère un problème est: link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework'].

Faites simplement ceci: link_with ['BluePlaquesLondon'] ou ceci (a fonctionné dans mon cas, j'espère que ce sera dans le vôtre :-)):

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

xcodeproj 'BluePlaquesLondon.xcodeproj'
inhibit_all_warnings!
link_with ['BluePlaquesLondon']

def import_pods

     pod 'TTTAttributedLabel', '~> 1.10.1'
     pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.9'
     pod 'Google-Maps-iOS-SDK'
     pod 'IntentKit'
     pod 'HCViews'
     pod 'SVProgressHUD', :head
     pod 'iRate'
     pod 'iOS-KML-Framework', :git => 'https://github.com/FLCLjp/iOS-KML-Framework.git'

end

import_pods

target "BluePlaquesLondonFramework" do
    import_pods
    pod 'Kiwi'
end

Cela a très bien fonctionné pour moi. J'avais déjà les configurations Cocoapods définies selon la réponse acceptée, mais je voyais toujours l'avertissement. Alors pourquoi ça marche, alors link_with ['BluePlaquesLondon', 'BluePlaquesLondonFramework']que non?
churowa

6

Si vous avez ajouté une configuration de construction personnalisée à votre projet existant, Cocoapods s'en plaindra.

Cocoapods créera automatiquement des fichiers xcconfig sous le répertoire Pods/Target Support Files/<build_target>suivant le modèle de dénomination Pods-<build_target>.<build_config>.xcconfig.

Assurez-vous simplement d'ajouter manuellement ces fichiers à votre projet dans Xcode (sous le répertoire Pods, mais pas à l'intérieur du projet Pods!). Une fois ces fichiers inclus, sélectionnez votre projet dans Xcode, allez dans l'onglet "Info" et développez votre configuration personnalisée. Sélectionnez le fichier xcconfig approprié pour chaque cible sous votre configuration personnalisée.


4

J'ai eu la même erreur lors de l'installation du pod. J'ai tout essayé (réinstaller le pod, mettre à jour toutes les gemmes, etc.) et j'ai trouvé que la solution fonctionnait dans mon cas. Un problème est survenu en raison du changement de nom de la cible. Dans ce cas, la solution est simple:

  1. Cliquez sur Produit -> Schéma -> Gérer les schémas ...
  2. Cliquez sur votre cible dans la liste et supprimez-la avec le signe "-" en bas de la fenêtre.
  3. Cliquez sur "+" pour ajouter la cible à la liste. Choisissez la bonne cible et le bon nom.

Après tout, tout devrait fonctionner.


3
  1. Ajoutez les fichiers xcconfig pertinents à votre projet. Les cocoapods les auront créés, mais vous ne pouvez pas les définir dans Xcode tant qu'ils ne sont pas dans le projet.
    • Vous souhaiterez probablement les ajouter au groupe Pods où se trouvent les autres fichiers xcconfig des pods. Faites un clic droit et ajoutez des fichiers.
    • Recherchez les fichiers xcconfig dans votre dossier de projet ou recherchez Pods/Target Support Files/[TARGET_NAME]/(j'ai différents cocoapods configurés pour chaque cible (l'extension et le projet principal peuvent être légèrement différents dans votre cas)
  2. Accédez aux configurations de projet dans les informations de votre projet principal
  3. Pour chaque cible et configuration, définissez la configuration de modules appropriée.
  4. pod install et vous ne devriez voir aucune erreur.

3

J'ai déplacé des pods dans Podfile à l'extérieur de la cible. Modifications de fichier par rapport à ceci:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'MyProject' do

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

end

Pour ça:

# Uncomment this line to define a global platform for your project
# platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!

pod 'Firebase', '>= 2.5.0'
pod 'Onboard'
pod 'GoogleMaps'
pod 'IQDropDownTextField'

target 'MyProject' do

end

2

Si vous utilisez une configuration personnalisée, vous pouvez suivre la suggestion de l'avertissement et inclure la configuration du pod dans votre fichier de configuration

     #include "Pods/Target Support Files/Pods-YYY/Pods-YYYY.develop-archive.xcconfig"

Cela n'arrêtera PAS les avertissements mais vous permettra d'utiliser votre configuration privée (il y a un bogue ouvert sur l'avertissement avec le projet CocoaPods) https://github.com/CocoaPods/CocoaPods/issues/2633


2
Merci d'avoir ajouté une réponse qui ne sacrifie pas la configuration actuelle de votre projet.
Dan Leonard

1

Donc, pour moi, le problème était dû au fait que les noms de fichiers xcconfig susmentionnés avaient été modifiés avant la mise à jour de Swift 3.

Quelque chose n'était pas synchronisé, donc Cocoapods a créé une section de dossier «Références récupérées» avec les anciens fichiers nommés et les a liés à eux.

Pour résoudre ce problème, je:

  1. Suppression du dossier «Références récupérées» et des anciens fichiers .xcconfig contenant de Xcode et du système de fichiers
  2. Quittez Xcode

  3. Exécutez l'installation du pod

Tout a été géré pour moi après, et les avertissements ont disparu.


0

J'ai pu construire le projet touché par ce problème sur XCode 6 en:

  • sélection d'un projet dans le navigateur de projet
  • choisir Project au lieu de Target
  • aller à l'onglet Info
  • en choisissant Pods. (debug / release) Configuration Files dans le combobox pour les configurations respectives.

J'espère que cela aidera quelqu'un.


0

Cela m'est arrivé parce que j'avais déjà une configuration de pod. Je suis nouveau sur le développement iOS, je cherchais des instructions pour installer Alamofire + SwiftyJSON et j'ai fini par installer les bibliothèques plus d'une fois, par inadvertance. Pour moi, ce qui a fonctionné était: sur le dossier "Target Support Files" dans le projet "Pods", j'ai sélectionné les deux fichiers .xcconfig corrects et les ai glissés dans le dossier "Pods" de mon projet d'application. Cela a permis la sélection des fichiers de configuration corrects dans la configuration de base.

Mais ensuite, si je lance à nouveau "pod install", l'avertissement passera au fichier .xcconfig précédent. J'essaie de supprimer les fichiers et l'ancien framework du projet principal mais quand j'ai exécuté la commande précédente une fois de plus, j'ai donné le même avertissement et j'ai créé le fichier "Pods.framework" sous le dossier "Pods" de mon projet d'application. Je l'ai ignoré, et il semble fonctionner correctement, malgré les deux cadres. Je ne sais pas si c'est juste, et une solution, si elle existe, serait la bienvenue.


Cela ne répond pas vraiment à la question. Si vous avez une autre question, vous pouvez la poser en cliquant sur Poser une question . Vous pouvez également ajouter une prime pour attirer davantage l'attention sur cette question une fois que vous avez suffisamment de réputation .
Petro Korienev

Merci pour l'explication Petro. Je voulais simplement partager le résultat qui a fonctionné pour moi (avec des avertissements, mais quand même), mais je serai plus prudent à l'avenir.
Pablo

0

J'ai eu une erreur:

diff: /../Podfile.lock: Aucun fichier ou répertoire de ce type diff: /Manifest.lock: Aucune erreur de fichier ou de répertoire de ce type: Le sandbox n'est pas synchronisé avec Podfile.lock.

J'ai retiré la demande de bitbucket pour la première fois. J'ai nettoyé mon projet et tout essayé (installation de pod, mise à jour de pod, etc.) mais aucune des réponses ci-dessus n'a fonctionné pour moi. Ensuite, je vérifie simplement le chemin où j'installe le pod et le corrige et le réinstalle, cela a juste fonctionné. Assurez-vous d'indiquer le chemin juste avant l'emplacement de .xcodeproj ou .xcworkspace (s'il est déjà là). Peut-être que quelqu'un en profite.


-2

La solution la plus simple pour cela (après avoir rencontré ce problème plusieurs fois):

  1. Supprimez Podfile & Podfile.lock de votre bibliothèque de projet (enregistrez Podfile quelque part afin de pouvoir facilement coller dans un nouveau Podfile)
  2. exécuter «pod init»
  3. Modifiez le 'Podfile' à votre gré (ajoutez les pods que vous utilisez)
  4. exécuter «pod install»

Cela recréerait tout et fonctionnerait toujours en quelques minutes (sans passer de temps à rétroconcevoir le "bug").

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.