У меня есть проект iOS с использованием CocoaPods. Все работало гладко, пока другой разработчик не начал работать над тем же проектом. Он внес некоторые изменения (только в код, насколько я знаю) и сделал новую ветку в репо. Я проверил его ветку и попытался построить его, но получаю сообщение об ошибке: файл ASLogger / ASLogger.h не найден.
Даже если я удалю весь проект, сделаю новую копию и использую «pods install». сбой сборки все еще там. У вас есть идеи, где может быть проблема? Если вам нужно больше информации, просто спросите.
Ответы:
Обновить
Убедитесь , что ваш
Podfile
включает в себяlink_with
по мишеням , пропускающих конфигурационный файл. В противном случае Cocoapods устанавливает только первую цель по умолчанию . например------ Конец обновления
Примечание. Обращаем ваше внимание на то, что вы должны изучить Project-> Info-> Configurations для следующих шагов.
У меня были похожие симптомы, и я обнаружил, что
pods.xcconfig
файл не включен в конкретную информацию, которуюtarget
я пытался создать. Некоторые из других предложенных решений работали для меня, но это, казалось, решало часть основной проблемы.Простым решением было изменить набор конфигурационного файла для целей, у которых не было одного набора.
источник
link_with
для указания моей другой цели сработало для меня. Большое спасибо. Я просто потратил несколько часов на это.link_with
не поддерживается в Cocoapods 1.0 или выше.Обновить
Я обновил это, так как мой первоначальный ответ получил отрицательное голосование, поэтому я надеюсь, что это поможет. И если это произойдет, надеюсь, это вернет мой голос.
Если заголовки не импортируются, возможно, у вас конфликт в
HEADER_SEARCH_PATHS
. Попробуйте добавить$(inherited)
в заголовок пути поиска в настройках сборки, чтобы убедиться, что он извлекает любые пути поиска, включенные в файл .xcconfig, из ваших CocoaPods.Это должно помочь при любых конфликтах и правильно импортировать ваш источник.
источник
1.Check
2. Проверьте стиль импорта (KEY POINT), если у вас
podfile
есть установленныйuse_frameworks!
По твоему
File-Bridging-Header.h
форматер должен вот так#import "MBProgressHUD.h"
остальное должно быть ниже
#import <MBProgressHUD.h>
3. Это должно быть работа! Доверьтесь мне
источник
Заголовочные файлы, ты будешь моей смертью ...
Наконец получил его на работу, добавив (включая кавычки)
к записи «Пути поиска заголовка пользователя» и проверке «рекурсивно».
источник
$(inherited)
(не работал), но добавление этого работало для меня.Я обнаружил,
${PODS_HEADERS_SEARCH_PATHS}
что отсутствует и не определен в моей ветке git для разработки, поэтому я добавил"$(SRCROOT)/Pods/Headers/"
рекурсивные пути поиска по заголовкамЭто нормально для меня
источник
$(SRCROOT)/Pods/Headers
Оба других ответа здесь не помогли. Я нашел 2 другие проблемы, которые могут это исправить:
Проект-> Информация-> Конфигурации в проекте XCode (ваш проект) должен быть установлен в «Стручки» для Отладки, Выпуска (и того, что у вас есть). Смотрите "Заголовки не найдены - пути поиска не включены"
Возможно, вам нужно связать цель с помощью команды link_with. См. «Невозможно найти заголовки в проекте статической библиотеки».
РЕДАКТИРОВАТЬ Вы можете проверить символическую ссылку следующим образом: создать текстовый файл с именем «проверить» без расширения. скопируйте эти строки в это:
Затем перейдите в терминал, перейдите в папку, в которой находится проверочный файл, и введите
источник
Вот что сработало для меня:
Перейдите на вкладку «Цель»> «Настройки сборки» и найдите параметр «Пути поиска по заголовку пользователя».
Установите для этого параметра значение «$ (BUILT_PRODUCTS_DIR)» и установите флажок «Рекурсивно».
Теперь скомпилированная цель будет искать в общем каталоге компоновки рабочей области, чтобы найти связанные заголовочные файлы.
====
ОБНОВИТЬ
У меня была похожая (хотя и немного другая) проблема в последнее время. Оказалось, что Xcode не может найти стручки, потому что я открыл
.xcodeproj
файл, а не.xcworkspace
файл. Может помочь другим в будущем.источник
pod install
и повторного открытия.Если ничего из вышеперечисленного не
use_frameworks!
помогло вам, и вы обнаружили эту ошибку, потому что вы только что переключились в свой Podfile, читайте дальше:Я перепробовал все приведенные выше решения и многое другое, прежде чем узнал, что в моем конкретном случае речь не идет о путях заголовка поиска; это когда вы переключаетесь на
use_frameworks!
Дело ваш Podfile, вам больше не нужно включать фреймворки в заголовок моста, и на самом деле XCode выдаст очень бесполезную ошибку «не удается найти заголовок».Что вам нужно сделать, это удалить все импорты из файла заголовка моста, и вместо этого использовать Swift
import Module
в ваших отдельных файлах Swift по мере необходимости, так же, как вы это сделали бы для сред Swift.И если вы используете какой-либо из заголовков фреймворка в ваших классах Obj-C (в моем случае у нас есть вспомогательный класс, который использовал FBSDK), вам нужно изменить его с локального на глобальный импорт (это означает изменение
#import "Module.h"
на#import <Module/Module.h>
, которое должно автоматически завершаться для вас, когда вы начнете вводить имя фреймворка. В моем случае это было<AFNetworking/AFHTTPRequestOperationManager.h>
).Редактировать: с тех пор я узнал, что при
@import Module
использовании файла зонтика, который еще безопаснее.источник
Вы пробовали импортировать стиль Cocoapods?
Информация на сайте не очень понятна, я отправил запрос на удаление:
https://github.com/CocoaPods/cocoapods.org/pull/34
Обновление: они потянули мою просьбу :)
источник
В вики дается совет, как решить эту проблему:
источник
$(PROJECT_DIR)/Pods/Headers/Public/xxx/ios/xxx.h
, есть дополнительнаяios
папка ...Я был единственным разработчиком в команде, столкнувшейся с такой же проблемой, она отлично работала для всех, поэтому я понял, что это должна быть моя среда. Я попробовал
git clone
тот же проект в другом каталоге, и он отлично скомпилировался, затем я понял, что это должно быть что-то вроде кэширования Xcode для пути моего проекта, где-то где-то есть папка DerivedData, просто удалите ее и выполните чистую сборку вашего проект, он работал для меня.Вы можете получить путь и даже открыть папку в Finder, перейдя в:
Xcode -> Настройки -> Местоположения -> ** DerivedData
источник
Я буду обновлять нижеприведенные вещи в своих настройках сборки, и я не получил никаких ошибок. Чтобы проверить эти вещи при обновлении ваших cocoapods.
Настройки сборки
Строить только архитектуру
Путь поиска
источник
Если у вас были ошибки сборки после « установки pod » или « обновления pod », возможно, один из ваших модулей был собран с XCode 6.3, пока вы все еще используете предыдущую версию.
В моем случае мне пришлось обновить мой OSX с Mavericks до Yosemite, чтобы иметь Xcode 6.3 и решить проблему
источник
для меня проблема была в значении Other Linker flags. По какой-то причине у меня не было кавычек в флагах, как
-l"xml2"
-l"Pods-MBProgressHUD"
.источник
Other Linker Flags
я нашел две записи:-|Localytics
а|-PodsLocalytics
. Я удалил их и смог собрать.Мне пришлось скачать zip из git hub и перетащить недостающие файлы в Finder по соответствующим путям в Pod / ...
источник
Для меня сработало то, что я выбрал проект Pods, нашел и выбрал целевую платформу с отсутствующим заголовком в целевом каталоге проекта Pod и установил «Build Active Architecture Only» на «No» в «Architectures» в настройках сборки цели.
источник
У меня та же проблема, но вышеуказанные решения не могут работать. Я исправил это, выполнив это:
И тогда это работает.
источник
Для меня то, что исправило это, было целью развертывания iOS для моего проекта Pods, был ниже, чем сам мой проект. Как только я сделал это так же, как мой проект, он смог найти файл заголовка.
источник
Я был на GM-семени Xcode 5.0 и не мог заставить ни один из этих ответов работать. Я попробовал каждый отдельный ответ на SO на несколько разных вопросов об импорте заголовков с cocoapods.
Наконец, я нашел решение, которое сработало для меня : я обновился до Xcode 5.0 через Mac AppStore (установлен поверх GM-семени), и теперь импорт заголовков работает как положено.
У меня также была бета-версия Xcode 5 в моей системе, и я тоже удалил ее. Может быть, это было сочетание двух вещей, но, надеюсь, это поможет кому-то еще.
источник
Это был ответ для меня, я обновил cocoapods, и я думаю, что это заставило PODS_HEADERS_SEARCH_PATHS уйти. Мое решение было похоже на это, но я использовал "$ (PODS_ROOT) / Заголовки" - Эндрю Айткен
Большое вам спасибо за этот ответ. Мне было трудно искать способы решить мою проблему. Большое спасибо.
источник
Ни один из ответов не помог мне (у меня были свои модули, связанные со всеми целями, правильная настройка конфигураций, правильные пути поиска $ (наследуемый) и т. Д.).
Проблема исчезла сама собой после того, как я обновил cocoapods до новейшей отладочной версии, используя стандартную команду установки / обновления:
или:
(если sudo использовалось во время установки).
Должно быть, это ошибка кокоапод.
источник
Один простой обходной путь: 1. Удалите папку Pods и файл Podfile.lock. Но не удаляйте Podfile 2. Запустите следующую команду в корневой папке вашего проекта:
источник
Вот еще одна причина: все пути к заголовкам выглядели нормально, но у нас все еще была ошибка в предварительно скомпилированном (.pch) файле при попытке прочитать заголовок pod
(т.е. #import <CocoaLumberjack / CocoaLumberjack.h>).
Глядя на исходные данные сборки, я наконец-то заметил, что ошибка нарушала нашу цель расширения OS Watch, а не основную цель, которую мы строили, потому что мы также импортировали предварительно скомпилированный заголовочный файл .pch в цели Watch OS, и это не удавалось. там. Убедитесь, что прилагаемые настройки цели Watch OS не пытаются импортировать файл .pch (особенно если вы установили этот импорт из основной настройки цели, как я!)
источник
Я обнаружил, что включение библиотеки в качестве модуля pod напрямую помогает динамическим библиотекам. Например, для Firebase:
Или для ASLogger:
Изменение или жесткое кодирование
HEADER_SEARCH_PATHS
не помогло мне. Если ошибка когда-либо повторяется, нет необходимостиrm -rf node_modules
удалять или удалять файл pod и т. Д., Я считаю полезным очистить кеш.Для реактивно-родного я бегу
Для Xcode я удаляю папки в
~/Library/Developer/Xcode/DerivedData
источник
Я думаю, что окончательное решение состоит в том, чтобы пойти
Build settings -> Search Path -> User Header Search Paths
, найти путь к вашей библиотеке и пройти его в Finder. Убедитесь, что существует весь путь, включая ваш путь импорта.Для меня мой путь был короче, чем в учебнике. В учебнике это было что-то вроде
#import <SDK/path/to/sdk/File.h>
, но оказалось, что это просто#import <SDK/File.h>
источник
У меня есть другое проработанное решение здесь,
источник
Попробуйте прокомментировать эту строку для вашей цели
Или вы можете обратиться к моему другому ответу, добавленному объекту модульного тестирования в xcode - не удалось импортировать заголовок моста не исчезнет
источник
Я решил эту проблему для Xcode 8.2.1 путем перетаскивания фреймворка, который я хочу использовать.
источник