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" в каталоге проекта. Он установит для вас недостающие библиотеки. Наконец попробуйте снова запустить проект.