Не удалось импортировать ошибку заголовка моста

Я случайно перепутал настройки своих проектов при установке и удалении cocopods. Теперь я получаю сообщение об ошибке «не удалось импортировать заголовок моста». Я проверил свои настройки сборки, и путь к файлу в настройках сборки> генерация кода> заголовок моста target-c правильный. Я возился со своими путями поиска фреймворка (сейчас они пусты) в настройках сборки, пытаясь заставить кокоаподы работать. Был бы очень признателен за помощь в устранении этой проблемы с заголовком моста.


person xyz123    schedule 27.06.2015    source источник
comment
Можете ли вы опубликовать полную ошибку компилятора?   -  person JAL    schedule 28.06.2015
comment
Что произойдет, если вы удалите свой связующий заголовок и заставите Xcode сгенерировать новый, пытаясь перетащить файл Objective-C в навигатор файлов?   -  person ndmeiri    schedule 28.06.2015
comment
Вот полная ошибка компилятора: /Users/xyz123/Documents/Apps/Backups/MostRecentAppName/AppName/Facebook-Bridging-Header.h:11:9: error: 'FacebookSDK/FacebookSDK.h' file not found #import ‹FacebookSDK/ FacebookSDK.h› ^ ‹unknown›:0: ошибка: не удалось импортировать связующий заголовок «/Users/xyz123/Documents/Apps/Backups/MostRecentAppName/AppName/Facebook-Bridging-Header.h»   -  person xyz123    schedule 28.06.2015
comment
xcode автоматически генерирует соединительный заголовок, когда вы пытаетесь создать или перетащить объектный файл c в проект в первый раз. Сейчас он этого не делает, потому что я не впервые работаю над этим проектом.   -  person xyz123    schedule 28.06.2015
comment
я получаю ту же ошибку.   -  person Hiren Panchal    schedule 23.07.2015
comment
Если у вас ранее был связующий заголовок, и вы удалили его, убедитесь, что вы также удалили путь из компилятора Swift — генерация кода. Затем создайте любой файл Objective-C в своем проекте, и вам будет предложено создать файл заголовка.   -  person Emmy R    schedule 25.11.2015
comment
Есть ответ: ">это ссылка   -  person childrenOurFuture    schedule 02.12.2015


Ответы (4)


Похоже, причиной ваших проблем могут быть пустые пути поиска заголовков. Попробуйте добавить $(inherited) в список путей поиска заголовков в настройках сборки. Это обеспечит использование путей поиска заголовков, установленных в файлах xcconfig модулей.

person Artal    schedule 27.06.2015
comment
я только что проверил, и $ (унаследовано) уже там. любой другой совет? - person xyz123; 29.06.2015
comment
@ xyz123 xyz123, вы сказали, что пути поиска пусты, поэтому я подумал, что проблема в этом. Возможно, вы пропустили что-то еще в путях поиска, кроме $(inherited). Кроме того, вы можете попробовать начать заново и самостоятельно воссоздать заголовок моста с нуля, убедившись, что все корректно. - person Artal; 29.06.2015
comment
я пробовал это уже, и это не работает. что все я должен иметь в путях поиска? - person xyz123; 30.06.2015
comment
@ xyz123 xyz123 Я не знаю, проблема ли здесь в путях поиска. Как сказал, я упомянул об этом, потому что изначально вы написали, что это все было пусто. - person Artal; 30.06.2015
comment
Мои пути поиска кажутся правильными (я сравнивал с более старыми работающими проектами), но я все еще получаю сообщение об ошибке. Также сообщается, что файл ‹FBSDKCoreKit/FBSDKCoreKit.h› не найден. Есть еще советы? - person xyz123; 30.06.2015

Выполните поиск в XCODE для заголовка, посмотрите, находится ли заголовок моста все еще «там», если это так, щелкните по нему, чтобы он отображался в кадре .... затем посмотрите, есть ли еще оператор facebook sdk #import, если не добавить.

если вы не найдете файл заголовка после поиска... щелкните файл и «Добавьте файлы и посмотрите, сможете ли вы найти там -Header.h, если да, добавьте его обратно в свой проект, если нет снова перейдите к настройкам сборки и "очистите" пути к заголовку, сохраните свой проект, закройте его, снова откройте, затем попробуйте добавить файл C и посмотрите, будет ли файл регенерироваться, а затем вы можете повторно добавить вызов #import facebookSDK

Еще одна вещь: вы можете проверить, чтобы убедиться, что FBSDKcoreKit.framework возвращен на этапы сборки вашей цели в бинарной ссылке с библиотеками.

РЕДАКТИРОВАТЬ из вашего ответа:

внутри ваших путей поиска вы также должны иметь следующий $(PROJECT_DIR)/yourprojectname чуть ниже $(inherited), если у вас НЕТ $(PROJECT_DIR)/yourprojectname, он БУДЕТ выдавать вам ту ошибку, которую вы упомянули, поскольку я продублировал ее, удалив это из Пути поиска фреймворков

Я пока не могу выложить изображение, или я бы для справки

person Darrell C    schedule 28.06.2015
comment
заголовок появляется, когда я это делаю, и есть оператор импорта. fbsdkcorekit.framework находится в стадии сборки - person xyz123; 29.06.2015
comment
внутри ваших путей поиска вы также должны иметь следующий $(PROJECT_DIR)/yourprojectname чуть ниже $(inherited), если у вас НЕТ $(PROJECT_DIR)/yourprojectname, он БУДЕТ выдавать вам ту ошибку, которую вы упомянули, поскольку я продублировал ее, удалив это из Пути поиска фреймворков - person Darrell C; 30.06.2015
comment
Я исправил это, но я все еще получаю ту же ошибку. Я также получаю сообщение об ошибке ‹FBSDKCoreKit/FBSDKCoreKit.h› не найден, когда я перехожу к файлу заголовка моста. Есть еще советы? - person xyz123; 30.06.2015
comment
На данный момент это звучит так, как будто файл фреймворка поврежден или ваши пути неверны. Я бы трижды удостоверился, что пути верны, т.е. проверили на простую опечатку, а затем удалили фреймворки и попробовали новую копию фреймворка SDK. В противном случае, судя по тому, что вы говорите, он должен найти файл в порядке. - person Darrell C; 30.06.2015
comment
если вы можете, возможно, вам поможет скриншот вашей файловой структуры и экран фазы сборки/настройки. Просто хватаюсь за соломинку сейчас на самом деле - person Darrell C; 30.06.2015

Если вы добавите модуль, написанный на Swift, и не включите «use_frameworks!» в вашем подфайле ваши модули не будут установлены, и вы получите эту ошибку. Включить «use_frameworks!» в Podfile и снова установите pod.

person Eric Hou    schedule 28.08.2015

Надеюсь, вам удалось найти решение самостоятельно. Сегодня я столкнулся с этой проблемой, пытаясь внедрить фреймворк в проект без использования кокоаподов. Фреймворк просто не будет распознан xcode. Как я решил это:


  1. Я создал пустой проект в xCode 6.4 и выполнил шаги, чтобы добавить фреймворк в быстрый проект в обычном режиме. Как и ожидалось, фреймворк отлично работал в сочетании с заголовком моста Objective C, так как этот фреймворк есть в Objective-C.

  2. Затем я сделал то же самое с xCode 7 beta 3. Это не сработало из-за этой ошибки.

  3. Затем я зашел в проект xCode 6.4 и посмотрел Target -> Build Settings -> Search Paths и посмотрел, что там написано для Framework Path и Header path.

  4. Потом зашел туда же и xCode 7 и обнаружил, что там совсем пусто.

  5. Тогда мне просто нужно было скопировать путь, написанный на xCode 6.4, и адаптировать его к пути xCode-beta. Вы можете найти путь в Finder, набрав Command + Shift + G, когда Finder открыт для поиска пути. А затем протестируйте его для своего пути для бета-версии xCode и для xCode 6.4 и посмотрите, находитесь ли вы на правильном пути.

  6. Очистите и соберите свой проект и проверьте, работает ли заголовок моста.

person luizParreira    schedule 19.07.2015