XCode не создает автоматически заголовок моста?
Я импортировал файл Obj-C в свой проект swift, и Xcode автоматически предложил мне создать заголовочный файл моста, как и ожидалось. Тем не менее, я удалил оба файла (перемещен в корзину), чтобы внести некоторые изменения, но когда я пытаюсь импортировать файл Obj-C еще раз, приглашение больше не появляется. Какова причина? Я даже протестировал этот же сценарий в другом проекте. Кажется, когда я удаляю автоматически созданный мостовой заголовок XCode, он не вызовет приглашение снова в другой раз. Почему это?
9 ответов
Причиной вашей проблемы является то, что настройки сборки XCode по-прежнему содержат путь к автоматически сгенерированному файлу заголовка моста. Вы не можете получить какие-либо ошибки сборки из-за файла заголовка (ProjectName-Bridging-Header.h)
все еще существует в каталоге вашего проекта.
Как решить:
Нажмите на цель вашего проекта, перейдите на вкладку Build Settings ( выберите все вместо основных), найдите Bridging Header. Вы можете увидеть сгенерированную запись пути Xcode. Выберите его и нажмите кнопку "Удалить".
Кроме того, убедитесь, что удалили автоматически созданный файл заголовка моста Xcode (ProjectName-Bridging-Header.h)
из вашего каталога проекта XCode.
Теперь попробуйте импортировать файл Obj-C еще раз. Вы можете увидеть приглашение создать файл заголовка моста, как и ожидалось.
Файл -> Новый файл -> Заголовочный файл
Сохраните его как заголовок YourApp-Bridging-Header
Затем перейдите в "Настройки сборки", найдите "Заголовок моста Objective-C" (как говорили ранее парни) и перейдите к заголовку моста как: YourApp/YourApp-Bridging-Header.h Где "YourApp /" - это имя приложения. Он может содержать пробелы, например "Ваше приложение /".
В моем случае в xCode 7.3.1 это работает
Существует другой способ создания Bridging Header в xcode, как упомянуто / предложено выше. Здесь я хотел бы дать вам лучший и самый простой способ создания моста.
- На рисунке 1 показано, что в текущий момент времени мост отсутствует.
- На рисунке 2 показано, что я скопировал папку, содержащую заголовочные файлы target-c, после копирования на экране появится всплывающее окно.
- Изображение 3 покажет всплывающее сообщение. Но после нажатия кнопки "Готово" вы заметите, что моста еще нет. для справки см. изображение2.
- Теперь в изображениях 5 и 6 я просто перетаскиваю заголовочный файл target-c, после чего вы получите всплывающее сообщение.
- После нажатия на кнопку "Готово" вы получите сообщение " Вы хотели бы настроить заголовок моста Objective C"?, После нажатия на кнопку "Да" вы получите заголовок вашего моста, который вы можете увидеть на изображении 5.
если вы хотите сохранить свой заголовок в одной группе, используйте New Group и перетащите файл в эту группу.
Никогда не создавайте какую-либо папку, иначе вы получите ошибку из-за этого.
Посмотрите настройки вашего проекта -> настройки сборки, прокрутите вниз до User-Defined
раздел, посмотрите, есть ли у него ключ SWIFT_OBJC_BRIDGING_HEADER
и если это имеет значение. если он там, он, вероятно, думает, что он у вас уже есть, в этом случае просто пересоздайте файл с тем же именем.
Файл моста запрашивается только один раз в проекте.
Если вы удалите файл случайно, вы должны создать новый файл моста. Это то же самое.
Идти к
File->New File->Header File
и имя должно бытьYourProjectName-Bridging-Header
Или это не может быть распознано.
После рассмотрения этого вопроса около часа. Я обнаружил, что настоящая проблема была в папке!
Никогда не создавать / копировать папку.
Чтобы решить проблему-
Сначала создайте группу с любым именем. Затем скопируйте файлы Objective-C в группу (не в папку).
Тогда вам обязательно будет предложено создать файл заголовка моста.
Если вы хотите настроить его вручную, просто перейдите в Настройки сборки и измените выбор на ВСЕ с Базового (По умолчанию) или настроенного.
Поскольку пустые поля скрыты, чтобы облегчить жизнь обычному конечному пользователю, если вы пропустите запрос на добавление заголовка моста, у вас могут возникнуть трудности с поиском его вручную. Также опция поиска не будет включать скрытые поля.
Измените на Все, и раздел Swift Compiler - General должен отображаться с дочерним параметром "Objective-C Bridging Header".
Файл моста запрашивается только один раз в проекте.
Если вы случайно удалите файл, вам придется создать новый файл моста. Это то же самое.
Перейдите в File->New File->Header File, и имя должно быть YourProjectName-Bridging-Header, иначе оно не может быть распознано.
Если вы работаете с React Native, наконец, вам нужно добавить следующие строки:
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <React/RCTBridgeModule.h>
#import <React/RCTViewManager.h>
#import <React/RCTLog.h>
#import <Foundation/Foundation.h>
#import <React/RCTEventEmitter.h>
#import <React/RCTConvert.h>
@interface RCT_EXTERN_MODULE(core, NSObject)
@end
- открыть проект xcode
- Файл -> новый -> Файл -> если вы хотите файл.swift, затем щелкните файл Swift File .h, щелкните файл заголовка.m файл, цель c файл и т. Д.