Ошибка Pod в Xcode " Id: фреймворк не найден"
Я пытаюсь клонировать проект из репозитория bitbucket и получаю ошибку Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)
при попытке запустить проект Xcode в рабочей области. Вот шаги, которым я следовал, если бы кто-нибудь мог дать мне знать, что я делаю неправильно, это было бы здорово!
git clone (link to bitbucket)
- изменил параметры конфигурации в проекте Xcode pods на
none
для отладки и выпуска - выполненного
pod install
- открыто рабочее пространство Xcode файл
- попытался построить в Xcode и получил ошибку
Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)
редактировать вот подфайл:
# 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
есть ли шаг я пропустил?
спасибо!
5 ответов
это исправило его для меня:
- открыть рабочую область.
- нажмите на синий значок проекта (который расширяется в вашем дереве файлов) в левой части экрана
- справа выберите " цели "(в отличие от"проекта" - проект Синий, цель похожа на карандаш, линейку и кисть, образующую треугольник)
- нажмите на вкладку Общие
- перейдите в раздел" Связанные фреймворки и библиотеки " (полностью на внизу)
- удалить рамки стручков
- добавить Alamofire и SwiftyJSON
в моем случае это не сработало, если я не удалил рамки стручков, но я чувствую, что это обходной путь. Возможно, кто-то с большим опытом может прокомментировать.
иногда после переименования цели или перемещения чего-либо вы можете повредить установку стручков. К счастью, есть более простой способ исправить это, чем 'ы.
- выполнить
pod deintegrate
чтобы удалить любые следы Cocoapods из вашего проекта. - выполнить
pod install
добавить все обратно.
Это все, исправлено.
мои проблемы, когда я запустил тест, я получил эту ошибку. Потому что я просто устанавливаю его в свой
target 'Project' do
pod 'xxx'
end
вы также должны добавить его в свою тестовую цель:
target 'ProjectTests' do
pod 'xxx'
end
в моем случае, у меня было несколько рамок, занесенных в Красную. Они остались от предыдущих конфигураций Podfile. Я просто удалил эти рамки, перечисленные красным цветом, и проблема была исправлена.
одна возможная причина в явно импорт структуры Cocoapods в тестовый класс / в тестовую цель.
пример:
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
я сначала импортировал AlamofireImage
потому что я явно использовать typealias Image
в моем тесте, как определено в AlamofireImage
.
если это так же легко предотвратить импорт, как в моем примере, сделайте это. Я просто скопировал определение изображения в файл тестового класса.
если вы думаете, что вам действительно нужен этот импорт, продолжайте ответ Уильяма Ху. Сноска к его ответу:--8-->
target 'MyProjectTests' do
pod 'OnlyThatFrameworkYouImportIntoYourTest'
end
вам нужно добавить только те стручки к вашей тестовой цели, которые вам (нужно) импортировать явно.