Ошибка нескольких целевых структур: Crashlytics "фатальная ошибка: файл 'Crashlytics / Crashlytics.h' не найден" - PullRequest
0 голосов
/ 25 апреля 2018

Я использую Fabric , и у меня не было проблем раньше, пока я не добавил новую цель, которая требуется для "Сегодняшнего расширения".

"Multiple Targets" of type "Today Extension"

Я добавил фазу сборки сценария «Выполнить» для этой вновь созданной цели с теми же параметрами, что и для «Основной цели», а также с клавишами Fabric в Info.plist для обеих целей.

Run Script: "${PODS_ROOT}/Fabric/run" hex_value.... hex_value...

Когда я строю проект, я получаю ошибки сборки, в которых говорится:

fatal error: 'Crashlytics/Crashlytics.h' file not found

Мой оператор импорта это и находится в файле, который является общим и выбран для обеих целей (целевое членство).

#import <Crashlytics/Crashlytics.h>

1 Ответ

0 голосов
/ 26 апреля 2018

Сценарий запуска Fabric является частью сценария сборки и должен быть добавлен к каждой цели и должен быть последним элементом в списке фаз сборки.

например. Добавьте скрипт запуска к цели «Сегодняшнее расширение».

(примечание: нет необходимости добавлять данные Fabric в plist-файл для цели "Today Extension").

Заголовочный файл, который не найден, связан с «путями поиска», и если Fabric установлен через CocoaPods.

Убедитесь, что Podfile устанавливает его для обеих целей.

Запустите команду «pod install» после редактирования Podfile. Примечание: обе цели включают в себя Fabric.

, например

   platform :ios, '9.0'
  # Uncomment this line if you're using Swift
  # use_frameworks!

  use_frameworks!

  target 'MyApp' do
  pod 'Fabric'
  pod 'Crashlytics', '~>  3.9'
  end

  target 'MoTodayExtenstion' do
  pod 'Fabric'
  pod 'Crashlytics', '~>  3.9'
  end

  post_install do |installer|
  puts("Update debug pod settings to speed up build time")
  Dir.glob(File.join("Pods", "**", "Pods*{debug,Private}.xcconfig")).each do |file|
  File.open(file, 'a') { |f| f.puts "\nDEBUG_INFORMATION_FORMAT = dwarf" }
  end

Обратите внимание на часть post_install в Podfile, этот шаг обновляет / создает файл xcconfig, который находится в Xcode. Посмотрите в папке "Pods" в проекте приложения Xcode;

Внутри этих файлов есть пара переменных

FRAMEWORK_SEARCH_PATHS 
GCC_PREPROCESSOR_DEFINITIONS 
HEADER_SEARCH_PATHS   
LD_RUNPATH_SEARCH_PATHS 
OTHER_CFLAGS 
OTHER_LDFLAGS 
PODS_BUILD_DIR
etc....

В частности, «HEADER_SEARCH_PATHS» должен включать путь файл заголовка, который не может быть найден.

...