LicensePlist
is a command-line tool that automatically generates a Plist of all your dependencies, including files added manually(specified by YAML config file) or using Carthage
or CocoaPods
. All these licenses then show up in the Settings app.
App Setting Root | License List | License Detail |
---|---|---|
![]() |
![]() |
![]() |
pod 'LicensePlist'
# Installation path: `${PODS_ROOT}/LicensePlist/license-plist`
$ brew install mono0926/license-plist/license-plist
Or
$ brew tap mono0926/license-plist
$ brew install license-plist
$ mint run mono0926/LicensePlist
Download from Releases, then copy to /usr/local/bin/license-plist
etc.
Or you can also download the latest binary and install it with a one-liner.
$ curl -fsSL https://raw.githubusercontent.com/mono0926/LicensePlist/master/install.sh | sh
Clone the master branch of the repository, then run make install
.
$ git clone https://github.com/mono0926/LicensePlist.git
$ make install
Cartfile
or Pods
, simply execute license-plist
.com.mono0926.LicensePlist.Output
directory will be generated.Settings.bundle
.
Settings.bundle
├── Root.plist
├── com.mono0926.LicensePlist
│ ├── APIKit.plist
│ ├── Alamofire.plist
│ └── EditDistance.plist
├── com.mono0926.LicensePlist.plist
├── en.lproj
│ └── Root.strings
└── ja.lproj
└── Root.strings
You can see options by license-plist --help
.
--cartfile-path
Cartfile
--mintfile-path
Mintfile
--pods-path
Pods
--package-path
Package.swift
LicensePlist
tries to find YourProjectName.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
and YourProjectName.xcworkspace/xcshareddata/swiftpm/Package.resolved
, then uses new one. If you make anothor workspace in custom directory, you can use --package-path PathToYourCustomWorkspace/CustomWorkspaceName.xcworkspace/xcshareddata/swiftpm/Package.swift
inside your Run script
.--output-path
com.mono0926.LicensePlist.Output
--output-path YOUR_PRODUCT_DIR/Settings.bundle
--github-token
LicensePlist
uses GitHub API, so sometimes API limit error occures. You can avoid it by using github-token.repo
scope is needed.--config-path
license_plist.yml
--prefix
com.mono0926.LicensePlist
--html-path
--markdown-path
--force
LicensePlist
saves latest result summary, so if there are no changes, the program interrupts.
LicensePlist
at Run Script Phase
every time 🎉--force
flag.--add-version-numbers
SomeLibrary
, by adding --add-version-numbers
flag, the name will be changed to SomeLibrary (X.Y.Z)
.
X.Y.Z
is parsed from CocoaPods and Cartfile information, and GitHub libraries specified at Config YAML also support this flag.--suppress-opening-directory
--suppress-opening-directory
flag, this behavior is suppressed.--single-page
--fail-if-missing-license
Add a Run Script Phase
to Build Phases
:
if [ $CONFIGURATION = "Debug" ]; then
/usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi
Alternatively, if you've installed LicensePlist via CocoaPods the script should look like this:
if [ $CONFIGURATION = "Debug" ]; then
${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi
Execute swift package generate-xcodeproj
or make xcode
.
Donations are welcome if you like LicensePlist🤗
link |
Stars: 1864 |
Last commit: 2 days ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco