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.
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.
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).
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.
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):
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.
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!
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
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.
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 .
Cela devrait faire l'affaire:
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.
Choses que j'ai essayées:
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!
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.
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!
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.
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.
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: 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.
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 -rf
edans le dossier Pods
et que j'ai exécuté pod install
, clean & build.
Votre application est-elle générée à l'aide de la cible principale?
Si oui, j'ai réussi à faire fonctionner ça en:
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
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.