Ошибка Pod в Xcode " Id: фреймворк не найден"

Я пытаюсь клонировать проект из репозитория bitbucket и получаю ошибку Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation) при попытке запустить проект Xcode в рабочей области. Вот шаги, которым я следовал, если бы кто-нибудь мог дать мне знать, что я делаю неправильно, это было бы здорово!

  1. git clone (link to bitbucket)
  2. изменил параметры конфигурации в проекте Xcode pods на none для отладки и выпуска
  3. выполненного pod install
  4. открыто рабочее пространство Xcode файл
  5. попытался построить в 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 ответов


это исправило его для меня:

  1. открыть рабочую область.
  2. нажмите на синий значок проекта (который расширяется в вашем дереве файлов) в левой части экрана
  3. справа выберите " цели "(в отличие от"проекта" - проект Синий, цель похожа на карандаш, линейку и кисть, образующую треугольник)
  4. нажмите на вкладку Общие
  5. перейдите в раздел" Связанные фреймворки и библиотеки " (полностью на внизу)
  6. удалить рамки стручков
  7. добавить Alamofire и SwiftyJSON

в моем случае это не сработало, если я не удалил рамки стручков, но я чувствую, что это обходной путь. Возможно, кто-то с большим опытом может прокомментировать.


иногда после переименования цели или перемещения чего-либо вы можете повредить установку стручков. К счастью, есть более простой способ исправить это, чем 'ы.

  1. выполнить pod deintegrate чтобы удалить любые следы Cocoapods из вашего проекта.
  2. выполнить 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

вам нужно добавить только те стручки к вашей тестовой цели, которые вам (нужно) импортировать явно.