web-dev-qa-db-fra.com

Aucun de ces modules ... dans Xcode

J'ai rencontré un problème avec Xcode (avec Swift) qui m'a complètement bouleversé. Je me rends compte que cette question a été posée et répondue, mais aucune des réponses n’a fonctionné pour moi, et ma situation semble être un peu différente de celle des autres, car tous mes pods échouent (pas seulement un spécifique). Ils ont tous bien travaillé il y a une semaine.

J'utilise Cocoapods pour certains des cadres Swift les plus courants (par exemple, Alamofire, Eureka, Kingfisher, SwiftyJSON, etc.). Ils fonctionnaient tous correctement dans Xcode 7. Cependant, une des mises à jour (automatiques) a modifié ma version de Xcode, après quoi il est devenu obligatoire de spécifier votre cible dans le podfile. Je l'ai fait et ai exécuté l'installation de pod. Les pods sont toujours présents, mais toutes les instructions d'importation liées à ces frameworks échouent.

Au début, je pensais que c'était un problème d'Alamofire, car c'est le premier qui a échoué avec l'erreur "Aucun module de ce type 'Alamofire" ". J'ai tout essayé avec Alamofire, notamment:

  • Nettoyer et reconstruire
  • Dossier de construction propre
  • Redémarrer Xcode 
  • Redémarrer l'ordinateur
  • Supprimer toutes les données dérivées 
  • Ajout du framework à "Frameworks and Libraries"
  • Cadre ajouté à "Lier le binaire avec les bibliothèques"
  • Vérifié que j'ouvre l'espace de travail plutôt que le projet
  • CocoaPods réinstallés
  • Xcode version 7.3.1 réinstallé

Rien ne supprime l'erreur "Aucun module de ce type ...". Enfin, j'ai retiré Alamofire des modules et j'ai juste fait glisser le projet Alamofire dans mon projet. Cela m'a permis de supprimer les instructions d'importation pour Alamofire. Cependant, à mon grand désarroi, le cadre suivant a maintenant créé "Aucun module de ce type". J'ai déplacé les trois prochains cadres dans mon projet, et il semble que cela va continuer. Apparemment, plus aucun de mes frameworks Pods n'est reconnu. J'ai installé Xcode 8 et essayé avec Swift 2.3, mais je reçois le même message d'erreur "Aucun module de ce type".

Je préférerais vraiment utiliser des Cocoapods, car cela facilite beaucoup les mises à niveau, ainsi que d’autres bonus. J'imagine que certains réglages sont faux et que tous mes gousses sont foutus, mais je n'ai pas eu la chance de les trouver. C'est un peu un désastre car le développement a été interrompu pendant plusieurs jours, sans aucun signe de solution. Si je peux faire quelque chose ou apporter quelque chose pour vous aider à trouver une solution, faites le moi savoir. Si quelqu'un pouvait proposer des solutions ou même des solutions, il serait grandement apprécié. Je travaille actuellement avec Xcode version 7.3.1. 

Mon fichier pod ressemble à ceci:

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

target 'Y2GOsp' do
    use_frameworks!

    # Pods for Y2GOsp
    pod 'Alamofire', '~> 3.0'
    pod 'AlecrimCoreData', '~> 4.0'
    pod 'Kingfisher', '~> 2.4'
    pod 'Eureka', '~> 1.6'
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
    pod 'PhoneNumberKit', '~> 0.1'
    pod 'PKHUD'
    pod 'Dollar'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['Swift_VERSION'] = '2.2'
        end
    end
end
8
Lastmboy

Les commentaires de @l'l m'ont conduit à la solution. je suis allé à 

build settings > frameworks search path

et réglez-le comme suit:

$(inherited) (non-recursive)
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive)
$(SRCROOT) (recursive)

Il est maintenant correctement trouver les cadres de pod.

19
Lastmboy

Assurez-vous que vous avez ouvert le fichier .xcworkspace dans Xcode et pas seulement le fichier .xcodeproj.

2
Siklab.ph

Dans le fichier Pod

Ne commentez pas les lignes pour définir une plate-forme globale pour votre projet

platform: ios, '10 .0 '

use_frameworks!

Maintenant en xcode

a) Nettoyez votre projet

b) Assurez-vous que tous vos "Pods"> "Paramètres de construction"> "Construire une architecture active uniquement" sont réglés sur "NON"

c) Maintenant, construisez le projet 

1
krish

essayez de transformer la version de votre SDK en versions antérieures

pod 'Alamofire', '~> 3.0'
pod 'AlecrimCoreData', '~> 4.0'
pod 'Kingfisher', '~> 2.4'
pod 'Eureka', '~> 1.6'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
pod 'PhoneNumberKit', '~> 0.1'
pod 'PKHUD'
pod 'Dollar'

par exemple, passer de la version 3.0 à la version précédente, cela a fonctionné une fois pour moi lorsque je faisais face au même problème. 

pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4

Mais il ne doit pas nécessairement s'agir de la version "Alamofire", vous pouvez essayer chacun de vos éléments dans la liste du fichier pod.

1
Developer Sheldon