web-dev-qa-db-fra.com

Aucun de ces modules 'RestKit' avec des cocoapodes et rapide

J'ai ce problème avec un tout nouveau projet. Ce problème se produit avec RestKit et le SDK Facebook. Étrangement, SwiftyJSON fonctionne très bien. Je crée un tout nouveau projet Swift et un Podfile avec:

source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!

target 'test-fb-Swift4' do
    pod "FBSDKCoreKit"
    pod 'SwiftyJSON', '~> 2.1'
    pod 'RestKit', :inhibit_warnings => true
end

target 'test-fb-Swift4Tests' do

end

Après avoir créé ce fichier, je lance l'installation du pod et rouvre xcode avec le fichier test-fb-Swift4.xcworkspace.

Maintenant, dans mon contrôleur, je mets un RestKit d'importation et j'obtiens le message d'erreur Aucun module de ce type 'RestKit'. J'ai essayé de nombreuses manières différentes de formater le fichier Podfile, même en versions très simples telles que:

source 'https://github.com/CocoaPods/Specs.git'

pod 'RestKit'

J'ai essayé d'ajouter et de supprimer use_frameworks, avec et sans la cible. Avec et sans le: inhibit_warnings.

J'exécute CocoaPods 0.36.4 et ai essayé la dernière version de rc, même affaire. La version d'Objective-C d'un autre projet fonctionne correctement. Ceci est mon premier projet utilisant Swift et je suis coincé sur cette question.

54
Joped

J'ai eu le même problème. Ma solution a été d'ouvrir le projet en utilisant le .xcworkspace, pas le .xcodeproj. .xcodeproj contient uniquement le projet principal; .xcworkspace inclut tout, y compris Restkit.

100
BHuelse

J'avais un problème similaire. Pas avec RestKit en particulier, mais au départ avec le HockeySDK. J'ai tout essayé, y compris la suppression et la réinstallation de pods, la mise à jour des cocoapodes et la mise à jour des pods, la suppression des données dérivées, le nettoyage du projet, etc. 

J'ai alors remarqué que chaque pod était un problème pour moi. Après avoir continué à chercher sur des sujets connexes, j'ai finalement découvert que sous:

• Cible> Phases de construction> Lier un binaire avec des bibliothèques

J'avais un framework de Pods mal placé (probablement issu d'une précédente installation ou tentative d'installation de Pods).

Target > Build Phases > Link Binary With Libraries

Après l'avoir enlevé, le problème a disparu. J'ai remarqué que les gens semblaient rencontrer des problèmes similaires sous:

• Projet> Info> Configurations

ainsi, où le cadre Pods était mal mappé. Donc, si le premier ne fonctionne pas pour vous, vous pouvez également vérifier le second.

39
metatheoretic

La deuxième option a fonctionné pour moi. Dans mon projet> Info> Configurations, j'ai 2 cibles pour mon projet: la cible normale (Quizz) et la cible test (QuizzTests): enter image description here

Pour le modèle standard, la configuration a été définie avec "Pods.debug" ou "Pods.release", mais il n'y en a pas eu pour QuizzTests. Dès que j'ai rempli la configuration pour QuizzTests, tout a fonctionné pour moi.

33
louftansa

Une chose que vous pouvez très facilement faire pour résoudre ce problème est de vous assurer que XCode est complètement arrêté lors de l'installation des pods. Chaque fois que j'ai ce problème, je reviens et découvre que XCode était toujours ouvert, même si j'ai fermé le projet. J'espère que cela pourra aider! 

16
Marquis103

Pour moi, la désintégration et la réinstallation des pods ont résolu le problème.

Premier

pod deintegrate

et alors 

pod install
15
Vishal

Une autre solution potentielle que j'ai trouvée consistait à ajouter use_frameworks! à votre fichier podfile si vous ne l'avez pas déjà fait, puis à exécuter à nouveau pod install . C'était un problème avec Firebase lorsque j'ai ajouté uniquement ce pod.

13
Ian Han

Une autre raison de ce problème peut être des valeurs incorrectes dans les paramètres de construction de la cible - Construire une architecture active uniquement. Les réglages comme sur la photo fonctionnent pour moi .  Correct settings

12
saltwat5r

J'ai eu un problème similaire lors de l'ajout de Fabric à mon projet. J'ai eu plusieurs cibles (Release et Dev). Il lancerait No Such Module pour import Fabric. Ce qui a fonctionné pour moi a été d'aller dans Projet> Étapes de construction> Lier binaire avec bibliothèques et simplement marquer le statut du framework de pod comme Facultatif .  enter image description here

5
Sharukh Mastan

Dans mon cas, il me suffisait de cocher l'option suivante dans Xcode Trouver les dépendances implicites enter image description here

Je ne sais pas exactement pourquoi mais c'était suffisant pour moi, j'espère aussi pour vous :).

4
GOrozco58

Cela devrait faire l'affaire:

  1. pod désintégré
  2. rm -rf votreprojet.xcworkspace
  3. installation de pod
3
Hyperfine

Après des heures d’essai, j’ai découvert la cause. Ma cible principale de l'application avait 4 configurations de construction (débogage, édition, interne et externe). Cependant, mes frameworks (projets enfants) n'avaient PAS interne, externe car ils ont été ajoutés. Une fois que j'ai ajouté interne/externe à mes projets de framework, tout est archivé correctement. 

3
VaporwareWolf

Choses que j'ai essayées:

  • Supprimer et ré-ajouter le framework de pods liés
  • Nettoyage
  • Suppression des données dérivées
  • pod installer à nouveau

La seule solution à ce problème était d'exposer la cible Pods (votre application) dans le sélecteur de schéma (à côté des boutons Exécuter/Arrêter) et de construire manuellement cette cible Pods avant de créer et d'exécuter à nouveau ma cible principale. J'espère que cela peut sauver quelqu'un 10 minutes! 

1
Dennis L

Une des réponses ici était make sure that XCode is completely shut down when installing pods et je savais que je ne l'avais pas fait. Donc, je viens de fermer complètement Xcode et de l'ouvrir à nouveau sans en cours d'exécution pod install et le problème a été résolu. Donc, redémarrer Xcode a fonctionné pour moi.

1

Dans mon cas, au début, je n'avais qu'une seule cible dans xcode. J'ai exécuté pod install. Quelques mois plus tard, je devais créer une autre cible afin d'avoir plusieurs cibles.

Dans cette situation, si je fais pod install et construisais xcode, j'obtiens une erreur "no such module".

J'ai donc supprimé les fichiers pod, puis pod init.

Le format Podfile a été modifié pour plusieurs cibles

Ça marche!!

Regarde ça!

1
user2189597

Si vous utilisez plusieurs cibles qui accèdent à la même classe (par exemple, l'application Messages Extension) et si cette classe est ajoutée aux deux cibles, vous devez ajouter le pod pour les deux cibles dans le fichier podfile. 

1
Ömer Karışman

Journal des idées: .__ Tout d’abord, je pense que ce problème est dû au fait qu’il manque ce module dans le lien de la bibliothèque ou le chemin de recherche de la structure, mais c’est effectivement le cas ici.

Deuxièmement, je pense que cela est peut-être dû au fait que la version prend en charge XCode 10, ce qui entraîne un mappage incorrect du pod. Mais après le projet propre, supprimez les données dérivées, fermez Xcode, supprimez le fichier associé de pod et réinstallez-le. Toutes ces étapes ont encore échoué… ..__ J'ai passé 4 heures sur cette deuxième étape…

Troisièmement, en cherchant enfin dans google dans StackOverflow, j’ai trouvé cette personne @Tyler Sheaffer laisser son expérience sous la solution @metatheoretic.

Il y a une personne qui laisse son expérience en réponse à une autre. Et cela me rappelle que je modifie la configuration tôt pour plusieurs schémas, le plus important, parce que le tutoriel que je suis ici nous apprend à nommer le nom de la configuration avec un exemple: Debug (développement). Mais les Cocoapods ne peuvent pas accepter le (). J'ai donc modifié le nom de la configuration Debug_Development… So !!! Le problème est que la gestion des schémas met automatiquement à jour le nom de configuration sur l’un de mes schémas client tel que Development, et je ne vérifie que la mise à jour du nom sur le développement de schéma, qui est mise à jour avec succès, puis je passe à la vérification des autres , production). Mais!!! Ces deux noms restent le nom de configuration incorrect le plus ancien. C'est pourquoi mon module Kingfisher ne sera jamais trouvé car il ne correspond pas à la configuration et au schéma. Enfin, je résous ce problème en sélectionnant le nouveau fichier de configuration de la mise à jour dans Projet/Schéma/Gérer les schémas/Affaire clôturée.

 enter image description here

0
Wangdu Lin

Lorsque j'ai modifié et supprimé un répertoire dont je n'avais pas besoin dans Project - Build Settings (à côté de Info), deux des entrées de Framework Search Paths étaient effacées dans mon application Cible dans Paramètres de construction. Assurez-vous que les entrées sur les quatre rangées sont automatiquement renseignées lors de l'installation de Pod, comme indiqué dans l'image ci-dessous:  Framework Search Paths in Build Settings for your Target App Pour copier les entrées de Debug et Release dans les lignes ci-dessous, sélectionnez une ligne à la fois et appuyez sur Suppr, qui doit copier à partir de la ligne ci-dessus. Une fois que je l'aurais fait, l'espace de travail serait bien construit.

0
RT Denver

J'ai eu ce problème après avoir marqué le dossier Pods comme ignoré dans .gitignore. Comment j'ai résolu le problème, c'est que j'ai rm -rfedans le dossier Pods et que j'ai exécuté pod install, clean & build.

0
kubilay

Votre application est-elle générée à l'aide de la cible principale?

Si oui, j'ai réussi à faire fonctionner ça en:

  1. Ajout d'une entrée pour chaque cible dans le fichier podfile
  2. Exécuter pod install

Voici mon dernier Podfile.

platform :ios, '11.3'

target 'myapp' do
  use_frameworks!

  # Pods for myapp
  pod 'KeychainSwift'
  pod 'ReachabilitySwift'
  pod 'Firebase/Core'
  pod 'Fabric'
  pod 'Crashlytics'

  target 'myappTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'myappUITests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'myapp-local' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'myapp-master' do
    inherit! :search_paths
    # Pods for testing
  end
end
0
user896993

Cela m'est arrivé lorsqu'une extension d'application avait une version iOS cible différente de celle de l'application. Les faire correspondre à corrigé cela pour moi.

0
YichenBman