Следуя инструкциям, я создал заголовок моста и добавил в свой проект. К сожалению, произошла следующая ошибка:
: 0: ошибка: не удалось импортировать заголовок Objective-C '--- путь - к --- заголовку / .... h'
В настройках сборки я добавил строку пути поиска заголовка к месту расположения заголовка моста, но ничего не помогло.
Кто-нибудь сталкивался с этой проблемой?
ios
swift
xcode6
bridging-header
objective-c-swift-bridge
Никита Прончик
источник
источник
Ответы:
Будьте осторожны, чтобы добавить файл в папку, в которой возникает ошибка! Я совершил ту же ошибку, если вы создадите файл из Xcode, он попадет в папку: Project-> Project-> Header.h
И Xcode ищет Project-> Header.h
Это означает, что вам нужно поместить файл в папку вашего проекта (ProjectName-> ProjectNameFolder)!
Надеюсь, это поможет ;)
ОБНОВЛЕНО: Я не уверен, что понял, что вы имеете в виду, но попробуйте следующее, чтобы решить вашу проблему:
1. Удалите все ваши файлы моста, которые вы создали до сих пор.
2. Выберите основную папку проекта и нажмите новый файл-> iOS-> Заголовочный файл.
3. Запишите свой импорт в созданный файл заголовка.
4. Выберите проект внутри Xcode-> Build Settings, введите в поле поиска: bridging и введите в ключ SWIFT_OBJC_BRIDGING_HEADER имя вашего файла заголовка или путь к нему!
Если вы выполните эти шаги, ваш заголовочный файл будет создан в правильном месте!
: D Надеюсь, что это поможет!
источник
В моем случае это была ошибка из-за циклической ссылки. У меня был класс, импортированный в заголовке моста, и файл заголовка этого класса импортировал swift header (
<MODULE_NAME>-Swift.h
). Я делал это потому, что в заголовочном файле Obj-C мне нужно было использовать класс, объявленный в Swift, решение заключалось в простом использовании@class
декларативного.Таким образом, в основном ошибка говорила «Не удалось импортировать заголовок моста», ошибка выше говорила, что
<MODULE_NAME>-Swift.h
файл не найден, выше это была ошибка, указывающая на конкретный файл заголовка Obj-C (а именно, контроллер представления).Изучая этот файл, я заметил, что внутри заголовка был объявлен -Swift.h. Перемещение этого импорта в реализацию разрешило проблему. Итак, мне нужно было использовать объект, позвольте назвать его
MyObject
определенным в Swift, поэтому я просто изменил заголовок, чтобы сказатьисточник
Найдите путь по адресу:
Параметры сборки / Компилятор Swift - Генерация кода / Заголовок моста Objective-C
и удалите этот файл. Тогда все будет в порядке.
источник
Это, вероятно, повлияет только на небольшой процент людей, но в моем случае мой проект использовал CocoaPods, и один из этих модулей имел вспомогательную спецификацию с собственными CocoaPods. Решением было использовать импорт под полным углом для ссылки на любые файлы в под-модулях.
Скорее, чем
источник
Для меня удаление производных данных исправило это, я заметил, что даже если я выхожу из старого коммита, возникает та же проблема.
Вы можете получить доступ к этой опции из Window-> Projects.
источник
Для меня это было потому, что я забыл добавить его в настройки сборки Target.
источник
«нам нужно указать Xcode, где искать файлы заголовков, которые мы перечисляем в нашем связующем заголовке . Найдите раздел« Пути поиска »и измените настройку уровня проекта для путей поиска заголовков пользователей , добавив рекурсивную запись для« Pods » каталог: Pods / ** " http://swiftalicio.us/2014/11/using-cocoapods-from-swift/
источник
Я тоже столкнулся с этой проблемой, и, к сожалению, это просто ошибка в SDK + Xcode. Я поговорил с инженером из WWDC об этой и нескольких других проблемах, которые у меня были с CloudKit. Эти ошибки будут устранены в следующем семени Xcode.
Это самое интересное в использовании бета-версии программного обеспечения.
источник
для тех, у кого есть проблемы с добавлением быстрого класса в проект objective-c. это то, что работает для меня:
и это все. теперь создайте в своем коде быстрый класс, как будто это было objective-c.
источник
Я неправильно импортировал некоторые файлы из заголовочных файлов bridgin из cocoapods.
Вместо импорта
я написал
И это была моя ОГРОМНАЯ ошибка
источник
Добавьте в проект временный файл Objective-C. Вы можете дать ему любое имя.
Выберите Да, чтобы настроить заголовок моста Objective-C.
Удалите только что созданный временный файл Objective-C.
В только что созданном файле projectName-Bridging-Header.h добавьте следующую строку:
'#import <GoogleMaps / GoogleMaps.h>'
Отредактируйте файл AppDelegate.swift:
Перейдите по ссылке, чтобы увидеть полный образец
источник
Для меня это не было выбором «Копировать элементы при необходимости» в пути назначения при добавлении фреймворка. Просто повторно добавьте каркас с выбранной опцией.
источник
После первых нескольких дней борьбы мне, наконец, удалось успешно интегрировать регистрацию в Facebook в мое приложение для iOS. Вот шаги (я предполагаю, что вы уже установили Facebook SDK v4.1 или выше на свои машины):
Добавьте информацию в pList, как указано здесь
Создайте свое приложение. И воу! нет ошибок времени компиляции.
источник
У меня такая же проблема по разным причинам, вот мой случай, когда я создаю проект, в который нужно включить слайд-меню, я использую SWRevealViewController lib, чтобы приблизиться к этому
когда я импортирую файлы библиотеки, я добавляю подпапку (SWRevealViewController) в раздел «Вспомогательные файлы» для файлов .h && .m, возникает две ошибки, не удается импортировать мост и SWRevealViewController.h не найден.
Как я это исправлю
когда я перемещаю файлы в вспомогательные файлы напрямую (удаляю подпапку), SWRevealViewController.m автоматически добавляется в Build Phases -> Compile Sources, и проблема исчезает
источник
У меня возникла такая ошибка, когда я добавлял расширение Today Extension в свое приложение. Целевая задача сборки для расширения была создана с тем же именем заголовка моста, что и цель сборки моего приложения. Это приводило к ошибке, потому что расширение не видит файлы, перечисленные в заголовке моста моего приложения.
Единственное, что вам нужно, это удалить или изменить имя заголовка моста для расширения, и все будет в порядке.
Надеюсь, это поможет.
источник
Я фактически создал пустой файл OSX Source Objective C в рамках проекта (где находятся все мои быстрые файлы).
Я добавил импорт, а затем удалил файл .m .
источник
Среди других исправлений у меня возникла ошибка, когда я попытался сделать Продукт-> Архив. Оказывается, у меня было это:
После установки в последней строке все заработало.
источник
Была аналогичная проблема, которую не удалось решить ни одним из указанных выше решений. В моем проекте используется CocoaPods. Я заметил, что наряду с ошибками я получил предупреждение со следующим сообщением:
Так что решение было довольно простым. Для проекта Pods измените флаг Build Active Architecture Only на No, и исходная ошибка исчезнет.
источник
Установите для заголовка Precompile Bridging Header значение No fix the problem for me.
источник