Заголовочный файл Swift bridging не будет работать с use_frameworks
Я пытаюсь использовать библиотеку GoogleidentityToolkit для обработки входа в систему. Я включаю use_frameworks! в моем файле pod, но модуль GITkit не может быть найден. Я пытаюсь понять, что происходит. Насколько я знаю, если вы используете "use_frameworks", вам не нужно создавать какой-либо мостовой заголовочный файл, поскольку cocoapods собирает библиотеку в один модуль, поэтому в дальнейшем вы можете импортировать как обычно файлы *.swift.
Что мне нужно получить, используя библиотеку Google Identity Toolkit в Swift?
Этот вопрос был задан через неделю после выпуска CocoaPods 1.0.0 (в то время, когда CocoaPods 0.39.0 все еще был популярен), а доступная версия Google Identity Toolkit была 1.1.3 с 2015 года, но устарела в пользу Firebase Authentication (pod 'FirebaseUI/Auth'
) после Google I/O 2016.
Ответы
Ответ 1
A) Создайте файл заголовка моста с именем "ProjectName-Bridging-Header.h" в корневой папке вашего проекта.
B) Перейдите к настройкам сборки проекта и установите следующие значения:
- "Установить objective-c заголовок совместимости": ДА
- "Objective-C Bridging Header": путь вашего заголовочного заголовка (например, "ProjectName/ProjectName-Bridging-Header.h"
После этого вы можете использовать файл заголовка для импорта всех ваших файлов ObjectiveC, которые вы хотите использовать в быстром коде.
ПРИМЕЧАНИЕ: при необходимости задайте путь как рекурсивный как в заголовках ресурсов, так и в разделе поиска компилятора Swift.
Ответ 2
Ни один из ответов выше не работал для меня или не был достаточно точным. В Xcode 10.0 (Swift 4.2) это решение работало для меня:
1. Создайте новый заголовочный файл в корневом каталоге вашего проекта. Я не уверен, что имя файла действительно имеет значение, но автоматически сгенерированные Apple файлы заголовка моста называются "ProjectName-Bridging-Header.h".
2. Добавьте все необходимые импорты во вновь созданный файл.
3. В Project Navigator нажмите на название вашего проекта.
4. В самой верхней панели выберите "Build settings", а в одной чуть ниже выберите All и Combined.
![enter image description here]()
5. Найдите "Swift Compiler" в правом верхнем углу.
6. Найдите вкладку "Swift Compiler- General", разверните ее и дважды щелкните правой кнопкой мыши "Objective-C Bridging Header".
![enter image description here]()
7. Все, что вам нужно сделать сейчас, это просто перетащить файл заголовка моста, который вы создали, во всплывающее окно и нажать Enter. Вы все готово!
* Помните, что вам придется обновлять путь к заголовку моста каждый раз, когда вы проецируете прямые изменения пути
Ответ 3
- Добавьте новый файл в Xcode (Файл > Создать > Файл), затем выберите "Источник" и нажмите "Файл заголовка".
- Назовите свой файл "YourProjectName-Bridging-Header.h".
- Создайте файл.
- Перейдите к настройкам вашей сборки проекта и найдите раздел "Swift Compiler - Code Generation". Вы можете быстрее найти "Swift Compiler" в окне поиска, чтобы сузить результаты. Примечание. Если у вас нет раздела "Swift Compiler - Code Generation", это означает, что у вас, вероятно, еще нет классов Swift, добавленных в ваш проект. Добавьте файл Swift, затем повторите попытку.
- Рядом с Objective-C Bridging Header "вам нужно будет добавить имя/путь вашего файла заголовка. Если ваш файл находится в корневой папке ваших проектов, просто введите имя файла заголовка. Примеры:" ProjectName/ProjectName-Bridging-Header.h "или просто" ProjectName-Bridging-Header.h". Или просто перетащите и перетащите заголовочный файл из finder в это пустое поле. Это автоматически добавит путь для связывания файла заголовка.
- Откройте свой вновь созданный заголовок моста и импортируйте классы Objective-C с помощью операторов #import. Любой класс, указанный в этом файле, будет доступен из ваших быстрых классов.
Ответ 4
Самый простой способ, который я нашел, - создать поддельный .swift
файл в XCode. Это должно вызвать подсказку для автоматического создания заголовка моста.
- Файл > Новый > Файл...
- Для типа файла выберите Swift.
- Разрешить Xcode вручную создавать Swift Bridging Header.
- Удалите файл
.swift
, который вы изначально создали.
Ответ 5
Swift 4 и Xcode 9.3
-
Создайте файл заголовка моста:
- Xcode> File/New.../File> Заголовочный файл
- Назовите файл "ProjectName-bridging-header.h"
- Сохранить в корне вашей папки проекта
-
Xcode> Go to Build Settings (в панели проводника проекта выберите самый верхний элемент, должно быть название вашего проекта и в правой панели выберите тему "Build Settings")
- Чуть ниже "Настройка сборки" убедитесь, что выбраны "Все" и "Комбинированные"
- В поле поиска введите "быстрый компилятор" и найдите элемент "Objective-C Bridging Header"
- Сверните его и дважды щелкните справа от него, чтобы изменить
- Вставьте имя файла 1. выше → " ProjectName/ProjectName-bridging-header.h" (запомните путь к папке, если файл моста сохранен в папке проекта)
-
Включите необходимый импорт
Ответ 6
Сначала создайте ярлык заголовочного файла с именем "projectname-bridging-header.h" на корневом уровне вашего проекта.
Теперь в настройках сборки задайте путь к файлу заголовка моста и его заголовок совместимости с objc.
Сделав это, очистите и постройте свой проект в полной мере.