Swift Package 鸣谢

从 Swift Package Manager 解析的 JSON 文件中创建 PLIST 文件,包含其 GitHub 许可证。然后,您的应用程序可以使用此 PLIST 文件显示应用程序中包含的第三方库,通过使用许多可用于 CocoaPods 的 Acknowledgement ViewControllers 之一,例如 https://github.com/vtourraine/AcknowList,这是此脚本测试时使用的库。

由于此脚本的输出与 CocoaPods 的输出完美匹配,您可以将两个 PLIST 文件合并为一个,并在您的致谢屏幕上显示您在应用程序中使用的所有依赖项,无论它们来自 SPM 还是 Pods。

许可证从 GitHub 获取,未经身份验证的 API 限制约为每小时 60 个请求。如果这对您来说不够,此脚本支持 OAuth 客户端凭据,因此您可以注册自己的 GitHub 应用程序,并使用您的 ClientID 和 ClientSecret 调用此脚本,将限制提高到每小时约 5000 个。

要注册 GitHub 应用程序,请访问此链接: https://github.com/settings/developers

如何使用

不使用 GitHub 令牌

> swift run spm-ack generate-plist ~/MyProject/MyProject.xcworkspace ~/MyProject/Resources/SwiftPackageManager.plist

使用 GitHub 令牌

> swift run spm-ack generate-plist ~/MyProject/MyProject.xcworkspace ~/MyProject/Resources/SwiftPackageManager.plist MyClientID MyClientToken

未来计划

我们计划使用我们自己的 JSON 格式作为输出,而不是使用 CocoaPods PLIST,并允许此脚本也将 CocoaPods PLIST 转换为此 JSON 格式。这样做的好处是可以将更多信息存储在 JSON 中,例如 GitHub etag,以避免在不需要时进行获取。缺点是这将破坏与其他 Acknowledgement ViewControllers 实现的兼容性,我们需要提供一个新的实现。为了避免这种情况,当此功能实现后,您可以使用两种选项。

此外,我们计划支持其他 SPM 来源,例如 BitBucket 或 GitLab,但这目前不是我们的首要任务,因此如果这对您有用,请随时贡献。