使用致谢

CocoaPods 将为 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_titleheader_textfootnote_titlefootnote_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>