Ошибка Fabric Multiple Targets: фатальная ошибка Crashlytics: файл Crashlytics/Crashlytics.h не найден

Я использую 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>

person Wayne    schedule 25.04.2018    source источник
comment
Возможный дубликат Как использовать Crashlytics с расширениями iMessage?   -  person Mike Bonnell    schedule 26.04.2018


Ответы (1)


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

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

(примечание: нет необходимости добавлять сведения о Fabric в файл plist для цели «Сегодняшнее расширение»).

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

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

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

e.g.

   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 в подфайле, этот шаг обновляет/создает файл 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» должен включать путь к заголовочному файлу, который не удалось найти.

person Wayne    schedule 26.04.2018