web-dev-qa-db-fra.com

Erreur de pod dans Xcode "Id: framework non trouvé Pods"

J'essaie de cloner un projet à partir d'un référentiel bitbucket et j'obtiens une erreur Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation) lorsque j'essaie d'exécuter un projet Xcode dans l'espace de travail. Ce sont les étapes que j'ai suivies, si quelqu'un pouvait me faire savoir ce que je fais mal, ce serait génial!

  1. git clone (link to bitbucket)
  2. modification des paramètres de configuration dans le projet de pods Xcode en none pour le débogage et la publication
  3. effectué pod install
  4. fichier d'espace de travail Xcode ouvert
  5. essayé de construire dans Xcode et a reçu l'erreur Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)

Edit Voici le podfile:

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

target 'Oncarb' do
  pod 'Alamofire'
  pod 'SwiftyJSON', '~> 2.2.0'
end

#target 'OncarbTests' do
#  pod 'Alamofire'
#  pod 'SwiftlyJSON', '~> 2.2.0'
#end

Y a-t-il une étape qui me manque?

Merci!

38
Pami

Cela l'a corrigé pour moi:

  1. Ouvrez l'espace de travail.
  2. Cliquez sur l'icône bleue du projet (qui se développe dans votre arborescence de fichiers) à gauche de l'écran.
  3. Juste à droite, sélectionnez "Cibles" (par opposition à "Projet" - Le projet est bleu. Cible est comme un crayon, une règle et un pinceau formant un triangle).
  4. Cliquez sur l'onglet Général
  5. Allez à la section "Frameworks and Libraries" (tout en bas)
  6. Supprimer les frameworks Pods
  7. Ajouter Alamofire et SwiftyJSON

Dans mon cas, cela n’a fonctionné que si j’ai supprimé les frameworks de pods, mais j’ai le sentiment que c’est une solution de contournement. Peut-être que quelqu'un avec plus d'expérience peut commenter.

131
sudo make install

Parfois, après avoir renommé une cible ou déplacé quelque chose, vous pouvez corrompre l’installation de vos pods. Heureusement, il existe un moyen plus simple de résoudre ce problème que la solution de Sudo make install.

  1. Exécutez pod deintegrate Pour supprimer toute trace de Cocoapod de votre projet.
  2. Exécutez à nouveau pod install Pour tout ajouter.

C'est ça, réparé.

28
NiñoScript

Mes problèmes sont quand j'ai couru le test j'ai eu cette erreur. Parce que je viens de l'installer dans mon

target 'Project' do
   pod 'xxx'
end

Vous devriez également l'ajouter à votre cible de test:

target 'ProjectTests' do
   pod 'xxx'
end
5
William Hu

Dans mon cas, plusieurs cadres étaient listés en rouge. Celles-ci ont été laissées par les configurations précédentes de Podfile. J'ai simplement supprimé ces cadres répertoriés en rouge et le problème a été résolu.

1
Andrew

Une cause possible dans une explicite importation d'un framework Cocoapods dans une classe de test/dans la cible de test.

Exemple:

import XCTest
//import AlamofireImage
@testable import MyProject

// instead of importing AlamofireImage:
#if os(iOS) || os(tvOS) || os(watchOS)
    import UIKit
    public typealias Image = UIImage
#elseif os(macOS)
    import Cocoa
    public typealias Image = NSImage
#endif

J'ai d'abord importé AlamofireImage parce que j'ai explicitement utilisé typealias Image dans mon test tel que défini dans AlamofireImage.

S'il est aussi facile d'empêcher une importation que dans mon exemple, faites-le. Je viens de copier la définition de Image dans mon fichier de classe de test.

Si vous pensez avoir vraiment besoin de cette importation, continuez avec la réponse de William Hu. Une note de bas de page à sa réponse:

target 'MyProjectTests' do
   pod 'OnlyThatFrameworkYouImportIntoYourTest' 
end

Vous devez ajouter uniquement les pods à votre cible de test, que vous devez (importer) explicitement.

1
Gerd Castan