Заголовочный файл 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

  1. Создайте файл заголовка моста:

    • Xcode> File/New.../File> Заголовочный файл
    • Назовите файл "ProjectName-bridging-header.h"
    • Сохранить в корне вашей папки проекта
  2. Xcode> Go to Build Settings (в панели проводника проекта выберите самый верхний элемент, должно быть название вашего проекта и в правой панели выберите тему "Build Settings")

    • Чуть ниже "Настройка сборки" убедитесь, что выбраны "Все" и "Комбинированные"
    • В поле поиска введите "быстрый компилятор" и найдите элемент "Objective-C Bridging Header"
    • Сверните его и дважды щелкните справа от него, чтобы изменить
    • Вставьте имя файла 1. выше → " ProjectName/ProjectName-bridging-header.h" (запомните путь к папке, если файл моста сохранен в папке проекта)
  3. Включите необходимый импорт

Ответ 6

Сначала создайте ярлык заголовочного файла с именем "projectname-bridging-header.h" на корневом уровне вашего проекта.

Теперь в настройках сборки задайте путь к файлу заголовка моста и его заголовок совместимости с objc.

Сделав это, очистите и постройте свой проект в полной мере.