Что наследует!:search_paths делать?

После просмотра собственного примера CocoaPods (из https://guides.cocoapods.org/syntax/podfile.html)

# Note: There are no targets called "Shows" in any of this workspace's Xcode projects
abstract_target 'Shows' do
  pod 'ShowsKit'

  # The target ShowsiOS has its own copy of ShowsKit (inherited) + ShowWebAuth (added here)
  target 'ShowsiOS' do
    pod 'ShowWebAuth'
  end

  # The target ShowsTV has its own copy of ShowsKit (inherited) + ShowTVAuth (added here)
  target 'ShowsTV' do
    pod 'ShowTVAuth'
  end

  # Our tests target has its own copy of
  # our testing frameworks, and has access
  # to ShowsKit as well because it is
  # a child of the abstract target 'Shows'

  target 'ShowsTests' do
    inherit! :search_paths
    pod 'Specta'
    pod 'Expecta'
  end
end

Я не понимаю почему inherit! :search_paths является необходимым? Все 3 цели, ShowsiOS, ShowsTV а также ShowsTests иметь доступ к ShowsKit от их родительской цели.

Конкретный пример для inherit! (из https://guides.cocoapods.org/syntax/podfile.html) не добавляет ясности

target 'App' do
  target 'AppTests' do
    inherit! :search_paths
  end
end

Можете ли вы помочь мне понять, что inherit! :search_paths для?

1 ответ

Цель позади inherit!Согласно https://guides.cocoapods.org/syntax/podfile.html (что, я бы согласился, не очень понятно), заключается в предоставлении одного из 3 доступных режимов:

  • :complete Цель наследует все поведение от родителя.
  • :none Цель не наследует ни одно из действий от родителя.
  • :search_paths Цель наследует пути поиска только родителя.

В примере этого вопроса это :search_paths режим, который выражается. Три разных режима играют разные роли при тестировании проекта Pod.

Вот дополнительная ссылка, имеющая отношение к Путям поиска Структуры в XCode, которые помогли прояснить некоторую путаницу для меня.

Цели, которые хотят знать о модулях для цели, но не нуждаются в связывании (например, цели тестирования), могут определить, что они inherit стручки через их search paths

inherit! :search_paths

что означает "не связывайте сюда стручки, но дайте этой цели знать, что они существуют".

Узнайте больше здесь

Другие вопросы по тегам