简单的 Acknowledgements Generator,用于 SPM 包许可证信息。
AckGen 自动生成一个 plist
文件,其中包含项目中使用的所有 Swift 包的标题和许可证信息。
这可以用于在您的应用中为 SwiftUI List 或 UITableView 数据源提供数据。
![]() |
![]() |
警告 请勿勾选可执行文件的复选框
DIR=$PROJECT_TEMP_DIR/../../../SourcePackages/checkouts/AckGen
if [ -d "$DIR" ]; then
cd $DIR
SDKROOT=(xcrun --sdk macosx --show-sdk-path)
swift run ackgen
else
echo "warning: AckGen not found. Please install the package via SPM (https://github.com/MartinP7r/AckGen#installation)"
fi
请确保在构建设置中将 ENABLE_USER_SCRIPT_SANDBOXING
设置为 NO
,以便上述构建阶段可以写入目标位置。
如果您希望将 plist 文件保存到项目根目录($SRCROOT/Acknowledgements.plist
)以外的位置,您可以将自定义路径作为第一个命令行参数提供给上面的 ackgen
。
swift run ackgen $SRCROOT/PackageLicenses.plist
如果您尚未添加生成的 plist
文件到您的项目,请添加。
请确保取消选中 如果需要则拷贝项目 的复选框
现在您可以随意使用 plist
文件,或者为了方便起见使用 Acknowledgement
模型
import AckGen
// ...
let acknowledgements: [Acknowledgement] = Acknowledgement.all()
acknowledgements.forEach { print($0.title, $0.license) }
(可选)AckGenUI
模块中包含一个基本的 SwiftUI AcknowledgementsList
组件(请参阅上面的 gif),您可以使用它快速创建一个通用的致谢列表,并嵌入到 NavigationView
中。
import AckGenUI
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
AcknowledgementsList()
}
}
}
在达到 1.0 版本之前,次要版本将是不兼容的。
这是我第一次尝试构建 Swift 包,主要目的是为了练习。
不过,我希望它对其他人也有用。
如果您遇到任何问题或有建议、补充或可能的改进要分享,非常欢迎您开启 PR 或 issue,我会在时间允许的情况下尽快回复您。