1

я установил FBSDKCoreKit, FBSDKLoginKit и FBSDKShareKit скачав SDK для ~/Documents/FacebookSDK, а затем перетаскивая рамки в папку рамок в XCode. Я проверил возможность скопировать файлы, если это необходимо, чтобы они отображались в проекте.Реагировать Родной файл FBSDK не найден на CI

Затем я добавил правильно рамочное путь поиска ~/Documents/FacebookSDK

Строительство локально работает отлично, однако, опираясь на Bitrise (CI) завершается с ошибкой:

/Users/vagrant/git/node_modules/react-native-fbsdk/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h:21:9: 'FBSDKShareKit/FBSDKShareKit.h' file not found

Путь поиска база также содержит $(PROJECT_DIR), которые должен найти рамки, расположенные в appname/Frameworks/, но я не могу исправить эту ошибку.

ответ

2

Я столкнулся с этой проблемой, используя BuddyBuild (другой системы CI), и решить ее с помощью инструкции, ссылки на их странице документации здесь http://docs.buddybuild.com/docs/common-react-native-errors#section-error-fbsdksharekit-fbsdksharekit-h-file-not-found, в частности, этот раздел:

error: 'FBSDKShareKit/FBSDKShareKit.h' file not found

This is generally a result of an incorrectly configured repository with regards to the location of FBSDK dependencies. If you take a look at: https://github.com/facebook/react-native-fbsdk/blob/master/ios/RCTFBSDK.xcodeproj/project.pbxproj

You will notice that RCTFBSDK will look for dependencies in one of two locations:

  • ~/Documents/FacebookSDK
  • $(PROJECT_DIR)/../../../ios/Frameworks

The second option is the correct option for continuous integration systems like Buddybuild. In other words, you MUST place your FBSDK dependencies under the "ios/Frameworks" folder in order for it to work on a continuous integration system.

Проблема заключается в том, что, как Виктор отметил система CI не имеет ссылки на вашу папку FacebookSDK, содержащую требуемые Framework, поэтому вам нужно фактически скопировать сами Frameworks в ваш проект, чтобы все было в вашем репозитории. Это необходимо, потому что библиотека RCTFBSDK ожидает найти Frameworks, который требуется в точности в папке $PROJECT_ROOT/ios/Frameworks в вашем проекте (см. Документацию BuddyBuild), и если они где-нибудь еще, это будет волновать.

Для ясности шаги, которые я взял, чтобы получить мой билд работать были:

  • Создать папку $PROJECT_ROOT/ios/Frameworks в моем проекте (Frameworks не может уже существовать)
  • Скопируйте Facebook рамочные файлы из ~/Documents/FacebookSDK в этот новая папка
  • Ссылка на Frameworks в Xcode в соответствии с инструкциями по установке на странице fbsdk Github.

Надеюсь, что это поможет любому будущему читателю.