2013 年 8 月 10 日
关注 @fabiopelosinCocoaPods 将为 Podfile 中指定的每个目标生成两个“致谢”文件。如果 pod 来自主仓库,则它们必须包含一个。私有 pod 不需要一个。这些文件包含每个 Pod 的许可证详细信息,并且在大多数情况下,在致谢中包含这些文件足以符合许可证。
CocoaPods 会生成一个供一般使用 Markdown 文件,以及一个可以添加到 iOS 应用程序设置包的属性列表文件。您无需执行任何操作即可实现此目的,它会自动执行。如果您想了解有关此功能的更多信息,请继续阅读。
自定义
如果您对文件中标题、页眉和脚注的默认样板文本不满意,可以通过在 Podfile
中覆盖生成文本的方法来对其进行自定义,如下所示
class ::Pod::Generator::Acknowledgements
def header_text
"My custom header text"
end
end
您甚至可以更进一步,通过检查目标名称来按目标自定义文本,如下所示
class ::Pod::Generator::Acknowledgements
def header_text
if @target_definition.label.end_with?("MyTargetName")
"Custom header text for MyTargetName"
else
"Custom header text for other targets"
end
end
end
以下是可以覆盖的方法:header_title
、header_text
、footnote_title
和 footnote_text
。
iOS 设置包
如果您在设置包中使用生成的 plist
,您可能希望在每次更新 pod 时更新文件。可以通过将以下 post_install
钩子添加到 Podfile
来实现此目的。
post_install do | installer |
require 'fileutils'
FileUtils.cp_r('Pods/Pods-Acknowledgements.plist', 'Resources/Settings.bundle/Acknowledgements.plist', :remove_destination => true)
end
要从设置包的 Root.plist 访问此文件,请用此文件替换 Root.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSChildPaneSpecifier</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>File</key>
<string>Acknowledgements</string>
</dict>
</array>
</dict>
</plist>
可以在 Martin Hicks 的博客 中找到更多详细信息