FBSDKCoreKit / FBSDKCoreKit.h не знайдено помилки


78

Я впроваджую FB Login, тому я завантажив SDK з https://developers.facebook.com/docs/ios . потім я перетягнути п вниз FBSDKCoreKit, FBSDKLoginKitі FBSDKShareKitрамки в моєму проекті.

коли я запускав проект, він прекрасно працює. але коли я закрив і відкрив його знову, "FBSDKCoreKit/FBSDKCoreKit.h not found error"з'являється. потім я знову копіюю FBSDKCoreKitфреймворк вставки в бібліотеку свого проекту, і помилка зникає, і цей процес триває. хтось стикався з цією проблемою раніше?

що мені робити, щоб вирішити цю помилку?


якби ви налаштували ваш .plist
EI Captain v2.0

так, з ідентифікатором FB, іменем та типом URL-адреси
M Swapnil

@MSwapnil Ви знайшли рішення для цього?
Феміна

3
@MSwapnil Я використовую стручки, я також встановив болти стручки. але все-таки вищезазначена проблема відбувається ...
Феміна

1
@Femina Ви знайшли рішення для цього? Я також використовую Pods
Ne AS

Відповіді:


95

Обов’язково виконайте цей крок:

Зніміть прапорець Копіювати елементи в папці цільової групи. https://developers.facebook.com/docs/ios/getting-started/

Крім того, у налаштуваннях збірки подивіться на це поле: "Фреймворкові шляхи пошуку" У вас повинно бути щось на зразок цього:

/Users/[username]/Documents/FacebookSDK

або для більш загальної конфігурації

~/Documents/FacebookSDK

Крім того, подивіться на Finder і переконайтеся, що фреймворк насправді є


3
Скасувати вибір або вибрати копію елементів у папку ??
M Swapnil

Скасувати вибір - НЕ вибирати
етайлуз

9
У мене була та сама проблема, але я також не перейменовував SDK з "FacebookSDKs-iOS-20151111" на "FacebookSDK" ...
adamteale

1
Я думаю, це повинно бути: $ {HOME} / Documents / FacebookSDK
Нестор

5
Навіщо потрібно перейменовувати у FacebookSDK і саме бути в папці Документи?
GutenYe

64

Після поновлення Cocoapods 1.0.0, я видалив pod.lockі встановив поточні версії стабільного стручка ( 4.7.0в 4.11.0) з FBSDKCoreKit, FBSDKLoginKit,FBSDKShareKit

Тоді я стикаюся з тією ж помилкою. Що я зробив:

  1. Додані параметри побудови шляхів пошуку заголовків у Xcode:

    "${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"
    "${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"
    "${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"
    "${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"
    

Тоді я все ще мав помилку для іншого файлу. Оскільки XCode використовує фреймворки попередньої збірки.

FBSDKCoreKit / FBSDKCopying.h не знайдено

  1. Clean Build -> ⇧⌘K (Shift + Command + K) - для очищення побудованих фреймворків.
  2. Папка Clean Build -> ⌥⇧⌘K (Option + Shift + Command + K)
  3. Закрити Xcode // важливо! - В іншому випадку він автоматично відтворює виведені дані для поточного відкритого проекту
  4. Запустіть цю команду в терміналі

    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  5. Відкрийте XCode і складіть успішно


2
Це насправді спрацювало. Дякую! Хотіли б Ви детально пояснити, чому це відбувається?
0x6A75616E

Врятував мене на цьому. Спасибі купу!
jdpipkin

це рішення!
Вільсон,

Чудово працює, я також нічого не змінив на шляхах пошуку заголовків.
templeman15

3
Я пропустив 1,2,3,4,5, але натомість просто вийшов на вулицю і пообідав. І це спрацювало! Дякую!!
Джефф,

33

Я вирішив це, видаливши Framework і додавши його ще раз, клацнувши правою кнопкою миші на проекті -> Додати файли ..., потім виберіть структуру та ВИБЕРІТЬ опцію Копіювати файли, якщо потрібно. Я знаю, що це не те, що рекомендує Facebook, але я не міг змусити це працювати, але таким чином це спрацювало! Я використовую v4.6 з FBSDK та Xcode 7 beta 6. Сподіваюся, це допоможе вам та всім іншим, хто стикається з тією ж проблемою :)


але це, безумовно, для неправильного посилання на шлях, переконайтесь, що воно існує в / User / mike / Documents / FacebookSDK, а не в папці для завантажень, а також у такій версії, як FacebookSDK1.1.x. Відповідь дуже корисна, хоча це гарантовано працює.
Дерево кодів

16

Це також забрало у мене години болю! Нарешті я знайшов кореневу проблему.

SDK Facebook ПОВИНЕН знаходитись за адресою ~ / Documents / FacebookSDK

Це тому, що в проекті RCTFBSDK цей шлях жорстко закодований. Але ви можете додати своє власне розташування, додавши його до Framework Search Paths проекту RCTFBSDK (це буде показано на консолі помилок)!


1
З якоїсь причини мені довелося скористатися System Framework Search PathsзамістьFramework Search Paths
tybro0103

7

Розробники FB кажуть, що не слід вибирати файли для копіювання . Що створює проблему. Але я зробив навпаки .

  1. Я вибрав елементи копіювання, якщо це потрібно. Він скопіював Frameworks у моєму проекті. Також автоматично Search Pathдодано користувачем xcode 7.2.

  2. Також подвійна перевірка , якщо немає нічого в Framework Search Pathsпід Search Pathsпід Build Settingsполями, то просто додайте $ (project_dir) , який дорівнює / Users / User / Documents / .... PROJECT..DIR ...

Успішно складено 2 проекти.


6

Мені довелося перемістити шлях FacebookSDK у пошукові шляхи Framework вище $ (PROJECT_DIR)

$(SRCROOT)/../../../Documents/FacebookSDK
$(inherited)
$(PROJECT_DIR)

3

Якщо будь-яка з наведених вище відповідей не спрацювала, спробуйте наступне:

Відкрийте свою ~/Documents/FacebookSDKпапку. Перевірте, чи є ця піктограма хмари праворуч від імен файлів:

screenshot.png

Якщо так, macOS видалила ваші файли з комп’ютера та завантажила їх у iCloud! (спасибі Apple)

Ти можеш:

  1. Клацніть на всі піктограми хмари, вона завантажить файли назад
  2. Вимкніть оптимізацію сховища на вашому mac, щоб не повторювати це

3

Для рідних розробників React:

Рекомендовані кроки:

1.Переконайтеся, що фреймворки Facebook SDK встановлені в ~ / Documents / FacebookSDK.

2) Переконайтеся, що FBSDK [Core, Login, Share] Kit.framework відображається в розділі «Зв’язати двійковий файл з бібліотеками» етапів побудови вашої цілі збірки.

3) Переконайтеся, що Framework Search Path для вашої цілі збірки Параметри збірки

$(HOME)/Documents/FacebookSDK

замість

~/Documents/FacebookSDK 

Якщо це все одно не працює у вас тоді:

1)sudo chmod -R 755 ~/Documents/FacebookSDK

2) встановити шлях шляху пошуку фреймворка RCTFBSDK.xcodeproj до

  $(HOME)/Documents/FacebookSDK 

(у бібліотеках вашої папки проекту) встановіть шлях пошуку фреймворку RCTFBSDK як тут

очистіть свій проект (команда + shift + k) та побудуйте.


3

Рішення проблеми, якщо ваш FacebookSDK відрізняється від

~ / Документи / FacebookSDK

Тому що ви не хочете, щоб iCloud Drive завантажувався FacebookSDK; вам доведеться змінити "Фреймворкові шляхи пошуку" для доданого

реакція-рідна-fbsdk

Це тому, що в RCTFBSDK.xcodeproj всередині бібліотеки; шлях жорстко закодований. Але ви можете додати власне розташування, додавши його до Framework Search Paths проекту RCTFBSDK.

  1. Виберіть проект
  2. Бібліотеки
  3. Виберіть "RCTFBSDK.xcodeproj"
  4. Параметри побудови
  5. Додайте свій власний шлях у "Фреймворкові шляхи пошуку", наприклад: / Users / rajanmaharjan / FacebookSDK
  6. Clean Build -> ⇧⌘K (Shift + Command + K) - для очищення фреймворків збірки.
  7. Побудувати проект; він повинен будуватися успішно.

2

У мене була та сама проблема. Я виправив це, використовуючи лапки навколо мого значення шляху пошуку фреймворка, тобто "/ Users / .....". Очевидно, у моїх шляхах до файлів є пробіли.


2

У мене така сама проблема. Я використовую Facebook SDK версії 4.10.0.
Я знав, що моє рішення не є добрим, але працювало для мене. Я змінив вихідний код Facebook. Змінено шлях #import <FBSDKCoreKit/FBSDKCoreKit+Internal.h>до файлу імпорту з на#import <FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h>


2

Рішення Xcode 11 + CocoaPods

У корені вашого проекту, тобто тому ж шляху, де у вас є MyApp.xcworkspace, відкритий термінал та init pod pod init, потім додайте необхідні стручки FBSDK - ваш Podfileповинен виглядати приблизно так:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyApp
  pod 'FBSDKCoreKit'
  pod 'FBSDKLoginKit'
  pod 'FBSDKShareKit'   
end

Тепер у своєму терміналі pod installвідкрийте MyApp.xcworkspace (який не є MyApp.xcodeproj ). Перейдіть до MyApp-> Build Phases-> Link Binary with Librariesі ви побачите внизу списку фреймворків Pods_MyApp.framework. Якщо ви натиснете +нижче, Pods_MyApp.frameworkви повинні в новому вікні під Workspaceсписком, Podsде має бути все, що стосується FBSDK.

Примітка: Переконайтесь, що ви встановлюєте FBSDK , а не Facebook SDK , оскільки другий застарілий.


1

Використовуючи CocoaPods , єдине, що мені вдалося:

  1. Оновіть шляхи пошуку заголовків ( НЕ Фреймворкові шляхи пошуку ) у розділі Параметри побудови в Xcode:

    - "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK\"",

    - "\"${PODS_ROOT}/Headers/Public/Facebook-iOS-SDK/FacebookSDK\"",

    + "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit\"",

    + "\"${PODS_ROOT}/Headers/Public/FBSDKCoreKit/FBSDKCoreKit\"",

  2. Додайте відсутній заголовок (и?):

    cd Pods/Headers/Public/FBSDKCoreKit/FBSDKCoreKit/ && ln -s ../../../../FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h FBSDKCoreKit+Internal.h

Редагувати: пункт 2., мабуть, потрібно повторювати після кожного наступного дзвінка pod install.


1

Для Xcode 7.3 для мене працювало нижче. Виконайте кроки, згадані в посібнику FB, і додатково виконайте наведені нижче дії.

крок 1. перейдіть до папки Document / FacebookSDK

крок 2. Клацніть FBSDKCoreKit.framework

крок 3. У цій папці Видаліть папку Модулі, а потім перетягніть проект Xcode.

Посилання: https://stackoverflow.com/a/29532202

Дякую


1

Для людей, які переходять від, Carthageне Cocoapodsзабудьте видалити Carthageпосилання на FBSDKCoreKit з параметра Link Binary With Librariesпід Фазами побудови.

введіть тут опис зображення


0

У мене була подібна проблема, і я все одно не міг усунути помилку компілятора.

Я виконував і виконував точні кроки інтеграції кілька разів, поки не помітив, що в моїй папці проекту є копія FBSDKCoreKit.framework (можливо, сталася помилка) . Крім того, Framework Search Path вже містить $ (PROJECT_DIR) крім / Users / {ім'я користувача} / Documents / FacebookSDK.

Тож я видалив копію FBSDKCoreKit.framework з каталогу проекту, і тепер все працює нормально.


0

Вчора ввечері я зіткнувся з цим питанням і хотів опублікувати своє рішення на випадок, якщо хтось інший має таку ж проблему. Моя проблема полягала в тому, що мій додаток працював і працював нормально в sim-програмі та на моєму пристрої, однак збірка не вдавалась через FBSDKCoreKit щоразу, коли я намагався запустити свої модульні тести. На пошук проблеми пішло близько 30 хвилин, і я відчув себе манекеном.

Переконайтеся, що комплект FBSDKCoreKit націлений і на ваші тести, а не лише на звичайну збірку додатків.


0

У мене була ця проблема під час оновлення до Xcode 8, і я зміг її вирішити, змінивши

#import <FBSDKCoreKit / FBSDKCoreKit.h>

до

#import <FBSDKCoreKit/FBSDKCoreKit.h>


0

Коли ви додаєте каталог до своїх налаштувань збірки -> "Шляхи пошуку Framework", переконайтеся, що ви додали його як до налагодження, так і до випуску.

Дурна помилка, але якщо ви новачок у розробнику iOS у xcode, ви можете пропустити це.


0

Особисто я мав проблеми з пробілами у різних шляхах, включаючи назву програми. Видалення пробілів (або додавання "" скрізь для захисту шляхів) вирішило проблему.


0

У мене була подібна проблема. Для мене виправлення полягало у виборі: "КОПІЮВАТИ ФАЙЛИ, ЯКЩО НЕОБХІДНО", коли вручну додавати різні фреймворки в фреймворк XCode.


0

Я перетягнув фреймворк до папки Framework усередині xcode, вирішив скопіювати файли, якщо потрібно, і все працювало нормально без будь-яких інших змін конфігурації.


0

Я встановив response-native-fbsdk та посилання за допомогою response-native-link response-native-fbsdk.

Дотримуйтесь інструкцій за наступним посиланням

https://developers.facebook.com/docs/react-native/configure-ios

Це забезпечує зв’язування рідної бібліотеки з використанням ios_setup.js. Є наступний крок, який я пройшов.

  1. Налаштування на Facebook розробнику відповідно .

  2. Встановіть файл ios_setup.js, виконавши наступну команду в командному рядку в кореневій папці вашого проекту.

curl -O https://raw.githubusercontent.com/facebook/react-native-fbsdk/master/bin/ios_setup.js

  1. Встановіть пакет plist, пакет xcode та пакет adm-zip, виконавши наступну команду. npm install plist xcode adm-zip
  2. Запустіть скрипт ios_setup.js, виконавши наступну команду, і вставте ідентифікатор програми та назву програми. Якщо назва вашого додатка містить більше одного слова, тоді вкладіть його в лапки.

node ios_setup.js [App ID] [App Name]

При запуску вузла ios_setup.js він автоматично зв’яже всі файли в ios.


0

Після усунення несправностей, використовуючи кілька відповідей тут. Це те, що я зробив.

  1. Я змінив, ~/Documents/FacebookSDKщоб "$(HOME)/Documents/FacebookSDK" зазначити : я використовував лапки"
  2. Я перемістився "$(HOME)/Documents/FacebookSDK"вгору списку в шляхи пошуку заголовків.

0

Мав таку ж помилку в FBSDKLoginKit

Якщо ви використовуєте кілька проектів стручків

install! 'cocoapods',
  :generate_multiple_pod_projects => true

Тоді вам слід змусити cocoapods помістити всі стручки FBSDK в один і той же проект, щоб зробити приватні заголовки видимими

pod 'FBSDKCoreKit', '5.11.0', :project_name => 'FBSDK'
pod 'Bolts', '1.9.0', :project_name => 'FBSDK'
pod 'FBSDKShareKit', '5.11.0', :project_name => 'FBSDK'
pod 'FBSDKLoginKit', '5.11.0', :project_name => 'FBSDK'

-1

-> Побудова конфігурації.

     -> Framework Search paths.

помістіть каталог FacebookSDK у моєму випадку ~ / Documents / FacebookSDK у:

Налагодження ,

Будь-яка архітектура I Any Sdk ,

Звільнення .

особливо ця помилка, оскільки в моєму випадку немає шляху в будь-якій архітектурі I Any Sdk

~ / Documents / FacebookSDK, і слід зазначити, що папка FacebookSDK повинна бути в Domuments

Приклад

https://photos.app.goo.gl/5bD4d39a11AalYsx1


Не уявляю, про що ви намагаєтесь тут спілкуватися. Подумайте про вдосконалення, якщо це мається на увазі як відповідь !
GhostCat

-2

Змініть /Users/[username]/Documents/FacebookSDK/каталог на " Documents/FacebookSDKподобається":

xcode

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.