Как импортировать obj c framework в заголовок быстрого моста?

Я всегда нахожу проблемы при импорте заголовков фреймворка в мой проект. Например, мой маленький пробный проект на этом скриншоте. Что я сделал не так при импорте заголовков Facebook SDK? Это очень простой шаг, и все же я не могу понять, что с ним не так. Я даже следую шаг за шагом, как на сайте разработчиков Facebook.

Скриншот

РЕДАКТИРОВАТЬ: извините, может быть, я не был ясен. Заголовок моста был установлен, и я установил путь расположения заголовка моста в настройках сборки. Вот почему он выдает ошибку, потому что он включен в компиляцию. Проблема в том, что при текущей настройке импорта SDK Facebook и заголовка моста я не могу импортировать SDK Facebook в заголовок моста.

Вещи, которые я пробовал:

  • #import "FBSDKCoreKit/FBSDKCoreKit.h"
  • #import <FBSDKCoreKit/FBSDKCoreKit.h>
  • #import "FBSDKCoreKit.h"
  • #import <FBSDKCoreKit.h>
  • #import "FBSDKCoreKit.framework/FBSDKCoreKit.h"
  • #import <FBSDKCoreKit.framework/FBSDKCoreKit.h>

Ни один из них не работает (все они выдают ошибку, как на скриншоте, это означает, что bridging-header в порядке и включен в компиляцию, но он не может найти заголовок, на который я ссылаюсь).

3 ответа

Решение

Теперь я нашел ответ. Проблема в том, что фреймворк хранится не в папке проекта, а в папке загрузки. И да, руководство разработчика Facebook сообщило мне перетащить фреймворк прямо с того места, где он был загружен, и я не установил флажок "копировать файлы при необходимости" при импорте. Из этого ответа я узнал, что мне нужно заполнить поисковый путь к базовой папке фреймворка, чтобы Xcode мог его найти. Спасибо всем за ответы.

Создайте Obj C Bridging: Файл -> Новый -> Источник -> Файл заголовка -> Имя как AppName-Bridging-Header.

Добавьте следующее (например, в случае SDWebImage):

  #ifndef AppName_AppName_Bridging_Header_h
        #define AppName_AppName_Bridging_Header_h

        #import <SDWebImage/UIImageView+WebCache.h>
        #import "UIImageView+WebCache.h"
        #endif

    or

 #import "UIImageView+WebCache.h"  

Примечание. В настройках сборки в Swift Compiler - Generation Code убедитесь, что в параметре сборки Objective-C Bridging Header указан путь к файлу заголовка моста. - это как testSD/testSD-Bridging-Header.h или testSD-Bridging-Header.h (откройте папку Project и найдите путь к файлу заголовка)

@Chen: В вашем случае попробуйте добавить флаг компоновщика "-ObjC".

Select the project file from the project navigator on the far left side of the window.

Select the target for where you want to add the linker flag.

Select the “Build Settings” tab.Choose “All” to show all Build Settings.

Scroll down to the “Linking” section, and double-click to the right of where it says “Other Linking Flags”.

A box will appear, Click on the “+” button to add a new linker flag.
Type “-ObjC” (no quotes) and press enter.

Новый файл -> Исходный код iOS -> Файл Objective-C -> Введите любое имя (например, "abc") -> Далее, Создать -> Появится сообщение вверху, выберите "Создать заголовок моста" -> Удалить abc.h -> Нажмите ProjectName-Bridging-Header.h -> импорт -> закончить.

Другие вопросы по тегам