Pod Ошибка в Xcode "Id: структура не найдена Pods"

Я пытаюсь клонировать проект из репозитория 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 на 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

Есть ли какой-то шаг, который мне не хватает?

Спасибо!

Ответ 1

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

  • Откройте рабочую область.
  • Нажмите на значок синего проекта (который расширяется в вашем дереве файлов) в левой части экрана.
  • Справа выберите "Цели" (в отличие от "Проект" - Проект синий, Цель - как карандаш и линейка, а кисть - треугольник).
  • Перейдите на вкладку Общие
  • Перейдите в раздел "Связанные структуры и библиотеки" (полностью внизу)
  • Удалить рамки Pods
  • Добавить Alamofire и SwiftyJSON

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

Ответ 2

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

  • Запустите pod deintegrate, чтобы удалить любую трассировку Cocoapods из вашего проекта.
  • Запустите pod install снова, чтобы добавить все обратно.

Что это, исправлено.

Ответ 3

Мои проблемы - когда я запускал тест, я получил эту ошибку. Потому что я просто устанавливаю его в своем

target 'Project' do
   pod 'xxx'
end

Вы также должны добавить его в свою тестовую цель:

target 'ProjectTests' do
   pod 'xxx'
end

Ответ 4

В моем случае у меня было несколько фреймворков, перечисленных в красном. Они были оставлены из предыдущих конфигураций Podfile. Я просто удалил эти фреймворки, перечисленные красным цветом, и проблема была исправлена.

Ответ 5

Одна возможная причина при явном явном импортировании фреймворка 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.

Если так легко предотвратить импорт, как в моем примере, сделайте это. Я просто скопировал определение Image в мой файл тестового класса.

Если вы думаете, что вам действительно нужен этот импорт, продолжайте с ответом Уильяма Ху. Сноска к его ответу:

target 'MyProjectTests' do
   pod 'OnlyThatFrameworkYouImportIntoYourTest' 
end

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

Ответ 6

Кажется, ваш проект использует библиотеки CocoaPods (https://cocoapods.org/), но эти библиотеки не были добавлены в репозиторий git.

Вам нужно установить командный инструмент, а затем запустить "pod install" в каталоге проекта. Он установит для вас недостающие библиотеки. Наконец попробуйте снова запустить проект.