Build Swift 5.1 License Twitter

致谢

许多使用诸如 MIT 或 BSD 等流行开源许可证的开源库或框架,都要求在许可条款中包含署名。这意味着使用这些框架的应用程序需要在某处(通常在设置屏幕中)包含许可证信息。

记住包含所有这些许可证并保持其更新是一个令人沮丧的手动过程。很容易忘记,如果库供应商具有诉讼倾向,则可能会产生严重的后果。

Tribute 是一个命令行工具,旨在简化在您的项目中生成、检查和维护开源许可证的过程。

安装

您可以在 macOS 或 Linux 上安装此工具,方法是从源代码自行构建,从发布页面下载预构建的二进制文件,或者使用 Mint

$ mint install nicklockwood/tribute

用法

安装完 tribute 命令行工具后,您可以按如下方式运行它

$ cd path/to/your/project
$ tribute list

如果在您的项目内部运行,此命令应列出您正在使用的所有开源库。您可能会发现包含了一些您认为不应该包含的库。您可以使用 --skip library-name 和/或 --exclude subfolder 来忽略这些库,如下所示

$ tribute list --exclude Tests --skip UnusedKit

如果缺少任何库,请确保它们具有有效的 LICENSE 文件。只有包含标准开源许可证文件的库才能被 Tribute 工具检测到。

高级

除了列出项目中的许可证之外,Tribute 还可以生成一个文件,用于在您的应用程序或网站中显示。要生成许可证文件,请使用以下命令(请注意文件名

$ tribute export path/to/acknowledgements-file.json

Tribute 提供了多种选项来配置此文件的格式和结构。有关更多详细信息,请运行以下命令

$ tribute help export

生成许可证文件并将其集成到您的应用程序或网站后,您可能希望配置一个脚本,以便在每次构建时更新它。要在 Xcode 中进行设置,请执行以下操作

  1. 在文件列表中单击您的项目,在 TARGETS 下选择您的目标,单击 Build Phases 选项卡
  2. 通过单击左上角的小加号图标添加一个 New Run Script Phase,然后粘贴以下脚本
if which tribute >/dev/null; then
  tribute export path/to/acknowledgements-file.json
else
  echo "warning: Tribute not installed, download from https://github.com/nicklockwood/Tribute"
fi

如果您有 CI(持续集成)设置,您可能不希望在服务器上生成此文件,但您可能希望验证它是否已作为自动化测试套件的一部分运行。为此,您可以使用 check 命令,如下所示

$ tribute check path/to/acknowledgements-file.json

此命令不会更改任何文件,但如果许可证文件中缺少任何非排除的库,则会产生错误。

已知问题