Simple Acknowledgements Generator for SPM package license information.
Overview
AckGen automatically generates a plist file containing the title and license information for all Swift packages used in your project. This can be used to feed a SwiftUI List or UITableView dataSource in your app.
Requirements
Xcode 12+ (tested with 12.5)
Installation
Add AckGen as a dependency for your project in Xcode.
Warning
Leave the checkbox for executable unchecked
Add the following as a Run Script for your target in Xcode
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
If you want the plist file to be saved somewhere other than Acknowledgements.plist at the root of your project ($SRCROOT/Acknowledgements.plist), you can provide a custom path as the first command line argument to ackgen above.
swift run ackgen $SRCROOT/PackageLicenses.plist
Add the generated plist file to your project if you haven’t already. Make sure to remove the check for Copy items if needed
You can now simply use the plist file however you like or use the Acknowledgement model for convenience:
Optionally, there’s a basic SwiftUI AcknowledgementsList component (see gif above) included in the AckGenUI module that you can use to quickly create a generic list of acknowledgements to embed into a NavigationView.
import AckGenUI
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
AcknowledgementsList()
}
}
}
Beta
Until 1.0 is reached, minor versions will be breaking.
Contribution
This is my first stab at building a Swift package and was mainly intended to be an exercise. I hope, however, that it can be useful to someone other than me.
If you encounter any problems or have suggestions, additions or possible improvements to share, you are more than welcome to open a PR or issue and I’ll get back to you as soon as my time allows it.
TODO
Add non-SPM licenses separately
Add UI components (SwiftUI List with NavigationLink to license info?)
Allow Run Script Output Files as alternative to command line argument
AckGen
Simple Acknowledgements Generator for SPM package license information.
Overview
AckGen automatically generates a
plist
file containing the title and license information for all Swift packages used in your project.This can be used to feed a SwiftUI List or UITableView dataSource in your app.
Requirements
Installation
If you want the plist file to be saved somewhere other than
Acknowledgements.plist
at the root of your project ($SRCROOT/Acknowledgements.plist
), you can provide a custom path as the first command line argument toackgen
above.Add the generated
plist
file to your project if you haven’t already.Make sure to remove the check for Copy items if needed
You can now simply use the
plist
file however you like or use theAcknowledgement
model for convenience:UI
Optionally, there’s a basic SwiftUI
AcknowledgementsList
component (see gif above) included in theAckGenUI
module that you can use to quickly create a generic list of acknowledgements to embed into aNavigationView
.Beta
Until 1.0 is reached, minor versions will be breaking.
Contribution
This is my first stab at building a Swift package and was mainly intended to be an exercise.
I hope, however, that it can be useful to someone other than me.
If you encounter any problems or have suggestions, additions or possible improvements to share, you are more than welcome to open a PR or issue and I’ll get back to you as soon as my time allows it.
TODO