Как заставить Xcode найти файл FacebookSDK.h?

Там написано "Файл FacebookSDK / FacebookSDK.h не найден"

Тем не менее, я могу перейти к определению в #import, и это приведет меня к файлу.

И как только я добавил #import, он теперь знает, что такое FBFriendPickerDelegate, и теперь у него нет ошибки в этой строке.

У меня есть facebookSDK.framework в моем проекте и в нужной папке. Это SDK 3.1. Я попытался добавить пути поиска в / FacebookSDK и /FacebookSDK.framework и /FacebookSDK/Versions/A/Headers и т. Д. Я также попытался #import "FacebookSDK.framework/Versions/A/Headers/FacebookSDK.h", и он все еще говорит, что может не найти это. Я также попытался очистить и перезапустить. У меня последняя версия Xcode.

//
//  FacebookView.h
//

#import <UIKit/UIKit.h>
#import <FacebookSDK/FacebookSDK.h>

@interface FacebookView : UIViewController <FBFriendPickerDelegate>
{
}

17 ответов

Решение

Во-первых, вы должны удалить свою FacebookSDK.framework из вашего проекта. Затем начните снова с этих 5 шагов. НЕ переподключайте рамки.

  1. Перейдите к этапам сборки в вашей цели проекта.
  2. В Link Binary With Libraries нажмите кнопку "+".
  3. Нажмите на кнопку "Добавить другое..."
  4. Просмотрите папку FacebookSDK. Обычно в ~/Documents/FacebookSDK/
  5. Нажмите (выберите) "facebookSDK.framework" и затем ОТКРЫТЬ.

Вот и все.

Не нужно ничего удалять.

В вашем проекте перейдите: "Настройки сборки", затем "Пути поиска". Ищите "Пути поиска фреймворка". Вы, вероятно, что-то исправили, как это:

Пути поиска фреймворков: /Users/john/Documents/exampleappxyz

Измените это на:

Пути поиска фреймворков: $ (PROJECT_DIR)

Voila!.

Я попробовал это, но у меня не получилось. Мне пришлось зайти в настройки сборки для проекта и вручную исправить FacebookSDK Framework Search Paths найти FacebookSDK.

Хорошо, ребята, я думаю, что получил ответ. Следуйте инструкциям ниже.

  1. Скопируйте ваш фреймворк в ваш проект.
  2. Убедитесь, что он находится в каком-то каталоге. например $(PROJECT_DIR)/project_name/Resources/Frameworks
  3. Нажмите на цель.
  4. Перейти к этапам сборки → Связать бинарный файл с библиотеками
  5. Добавьте пользовательский фреймворк, нажав "Добавить другое"
  6. Проверьте в навигаторе проекта, что фреймворк существует только один раз.
  7. Теперь перейдите в "Настройки сборки" → "Пути поиска" → "Путь поиска инфраструктуры" и убедитесь, что в нем есть следующие две вещи.

    (А) $(inherited)(Б) $(PROJECT_DIR)/project_name/Resources/Frameworks.

    Не напоминать, что рамки существуют внутри Frameworks папка

  8. Убедитесь, что в пути поиска библиотеки ничего нет.
  9. Теперь нажмите на проект (над целью)→ Построить настройки и повторите шаги 7 и 8.
  10. Теперь очистите проект и постройте проект.

Надеюсь, что это работает. Пожалуйста, помните, чтобы не оставлять имена папок с пробелами. Если вы сохранили их, убедитесь, что вы указали правильные escape-символы.

Я получил эту проблему сегодня.

Оказывается, мне нужен мой путь поиска Framework во всех трех местах:

1) Project Build Settings
2) App Target Build Settings
3) UnitTests Target Build Settings

Мой путь поиска:

/Users/myusername/Documents/FacebookSDK

После этого ошибка исчезла для меня.

Как удалить ссылки SDK facebook:

Для тех, кто любит меня, ненадлежащим образом добавлен фейсбук sdk. удалить SDK facebook из вашего проекта,

проверьте ссылку в вашей папке фреймворков, удалите любую ссылку на SDK facebook там

перейдите к этапам сборки -> Link Binary With Libraries и удалите там любой SDK facebook

Щелкните правой кнопкой мыши папку фреймворков и выберите "Показать в Finder" и удалите там любой SDK facebook

Теперь следуйте инструкциям "Fede Cugliandolo" и повторно добавьте SDK на Facebook.

Я использую xcode 5, и при добавлении SDK это не правильно написать собственный адрес в "project.pbxproj".

Вместо локального адреса для SDK это сохранить глобальный адрес.

Я открываю "project.pbxproj" и нахожу его места и оставляю адрес только для sdk в проекте.

<project name>/src/external/facebook
<project name>/src/external/testflight

редактировать запись было следующим

/Users/<user Name>/myProjects/.../ios/<project name>/src/external/facebook

В итоге я проверил каталог моего проекта, удалил все старые ссылки на файл фреймворка. Затем удалите его из фаз сборки / путей поиска. Также удалите связанный Framework. Перезапустите XCode и повторите процесс заново: перетащите Framework на Frameworks, не копируйте в него. Проверьте этапы сборки / пути поиска. включите "#import ". Наконец-то сработало. Уф.

Это просто, вы должны удалить вашу FacebookSDK.framework из вашего проекта.

Перейдите к этапам сборки в вашей цели проекта. В Link Binary With Libraries нажмите кнопку "+". Нажмите кнопку "Добавить другое...". Просмотрите папку FacebookSDK. Обычно в ~/mohit/Documents/FacebookSDK/ Clik на (выберите) "facebookSDK.framework", а затем ОТКРЫТЬ.

Теперь скопируйте настройки Target> путь поиска фреймворка в настройки проекта> путь поиска фреймворка.

Просто следуйте этим шагам:

  1. Откройте вкладку Настройки сборки XCode в вашем проекте.
  2. Добавьте ~/Documents/FacebookSDK в настройку пути поиска платформы.

Помимо добавления пути поиска мне также пришлось установить пути к рекурсивным и удалить "*.framework" из опции "Подкаталоги для исключения", чтобы это работало.

Это происходит, если вы дважды импортировали facebookSDK и после удаления некоторых файлов.

Например, я импортировал facebookSDK в $project/framework, но по некоторым причинам удалил его. Затем я импортировал его через ~/Documents/FacebookSDK, но XCode сохранил старую папку и по ней осуществлял поиск по умолчанию.

Я должен удалить все ссылки и файлы старого импорта, чтобы решить мою проблему.

Вы должны изменить свойство "Путь поиска платформы" в настройках сборки и указать, где находится файл FacebookSDK.framework (затем вы можете использовать переменную SRCROOT, чтобы указать на корень каталога вашего проекта, и, таким образом, избегать использования абсолютного дорожки;)) например:

$(SRCROOT)/SampleProject/src/Utils/Facebook/

это обычно делается автоматически XCode, когда вы импортируете фреймворк третьей части, но иногда это портится (например, когда вы изменяете дерево каталогов вашего проекта...)

Надеюсь, это поможет...

У меня была та же проблема, когда я обновлял XCode, но в моем случае я не хотел вносить какие-либо изменения в настройки проекта вручную, так как я использую CMake для его создания. Вы можете найти способ, которым я исправил это здесь: /questions/12731481/kak-dobavit-facebooksdk-v-proekt-xcode-s-pomoschyu-cmake/12731492#12731492

Единственное решение, которое я нашел, было:

  1. Удалить плагин phonegap: плагин ionic rm phonegap-facebook-plugin

  2. Клонировать следующий плагин git clone: https://github.com/jeduan/cordova-plugin-facebook4.git

  3. Добавить плагин вручную: cordova -d plugin add PATH/cordova-plugin-facebook4 --variable APP_ID="*****" --variable APP_NAME="*****"

Перед этим попытался повторно добавить FacebookSDK.framework и установил плагин phonegap facebook через локально клонированного, но ошибка не исчезла.

Следуйте инструкциям на шаге 4 Настройка вашего проекта Xcode. Я думаю, что вы что-то упустили. Удалите Facebook.sdk в вашем проекте и попробуйте снова.

Ни один из всех ответов выше не работал для меня.

Наконец, мне удалось изменить структуру папки плагинов:

  1. Создать папку: com.phonegap.plugins.facebookconnect/FacebookSDK

  2. Скопируйте весь контент из:com.phonegap.plugins.facebookconnect/FacebookSDK.framework/Headersв com.phonegap.plugins.facebookconnect/FacebookSDK

  3. копия com.phonegap.plugins.facebookconnect/Facebook.frameworkв com.phonegap.plugins.facebookconnect/FacebookSDK

И наконец, изменить

#import <FacebookSDK/FacebookSDK.h>

в

#import "FacebookSDK/FacebookSDK.h"
Другие вопросы по тегам