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 |
---|---|---|
$ brew install mono0926/license-plist/license-plist
Or
$ brew tap mono0926/license-plist
$ brew install license-plist
Download the executable binary from Releases
Download from Releases, then copy to /usr/local/bin/license-plist
etc.
Or you can also download the latest binary and install it by 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
- On the directory same as
Cartfile
orPods
, simply executelicense-plist
. com.mono0926.LicensePlist.Output
directory will be generated.- Move the files in the output directory into your app's
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
.
- Default:
Cartfile
- Default:
Pods
- Default:
com.mono0926.LicensePlist.Output
- Recommended:
--output-path YOUR_PRODUCT_DIR/Settings.bundle
- Default: None.
LicensePlist
uses GitHub API, so sometimes API limit error occures. You can avoid it by using github-token .- You can generate token here
repo
scope is needed.
- Default:
license_plist.yml
- You can specify GitHub libraries(introduced by hand) and excluded libraries
- Default: false
LicensePlist
saves latest result summary, so if there are no changes, the program iterrupts.- In this case, excecution time is less than 100ms for the most case, so you can run
LicensePlist
atBuild - Pre-actions
every time 🎉
- In this case, excecution time is less than 100ms for the most case, so you can run
- You can run all the way anyway, by using
--force
flag.
- Default: false
- When the library name is
SomeLibrary
, by adding--add-version-numbers
flag, the name will be changed toSomeLibrary (X.Y.Z)
.X.Y.Z
is parsed from CocoaPods and Cartfile information, and GitHub libraries specified at Config YAML also support this flag.
- Default: false
- Only when the files are created or updated, the terminal or the finder opens. By adding
--suppress-opening-directory
flag, this behavior is suppressed.
Add Run Script
to Build - Pre-actions
:
if [ $CONFIGURATION = "Debug" ]; then
cd $SRCROOT
/usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle
fi
Execute swift package generate-xcodeproj
or make xcode
.