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!
git clone (link to bitbucket)
none
pour le débogage et la publicationpod install
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!
Cela l'a corrigé pour moi:
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.
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
.
pod deintegrate
Pour supprimer toute trace de Cocoapod de votre projet.pod install
Pour tout ajouter.C'est ça, réparé.
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
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.
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.