查看CocoaPods自己的例子(来自https://guides.cocoapods.org/syntax/podfile.html#abstract_target)
# 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#inherit_bang)的具体示例不会增加任何清晰度
target 'App' do
target 'AppTests' do
inherit! :search_paths
end
end
你能帮我理解inherit! :search_paths
的用途吗?
答案 0 :(得分:11)
根据https://guides.cocoapods.org/syntax/podfile.html#inherit_bang inherit!
背后的目的
(我同意不是很清楚),是提供3种可用模式之一:
:complete
目标继承父项的所有行为。 :none
目标不会从父级继承任何行为。:search_paths
目标仅继承父级的搜索路径。在这个问题的例子中,正在表达:search_paths
模式。测试Pod项目时,三种不同的模式可以起到不同的作用。
Here is an additional link与Xcode中的框架搜索路径相关,帮助我清除了一些混淆。
答案 1 :(得分:0)
想要了解目标吊舱但不需要链接的目标(例如,测试目标)可以通过其inherit
定义它们search paths
吊舱
inherit! :search_paths
意思是“不要将Pod链接到此处,而要让此目标知道它们的存在。”
了解更多here