LicensePlist alternatives and similar libraries
Based on the "UI" category.
Alternatively, view LicensePlist alternatives based on common mentions on social networks and blogs.
-
Animated Tab Bar
:octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion -
JTAppleCalendar
The Unofficial Apple iOS Swift Calendar View. Swift calendar Library. iOS calendar Control. 100% Customizable -
FSPagerView
FSPagerView is an elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders. -
SwipeCellKit
Swipeable UITableViewCell/UICollectionViewCell based on the stock Mail.app, implemented in Swift. -
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
Alerts Pickers
Advanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date... -
SideMenu
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less. -
Pagemenu
A paging menu controller built from other view controllers placed inside a scroll view (like Spotify, Windows Phone, Instagram) -
Scrollable-GraphView
An adaptive scrollable graph view for iOS to visualise simple discrete datasets. Written in Swift. -
ESTabBarController
:octocat: ESTabBarController is a Swift model for customize UI, badge and adding animation to tabbar items. Support lottie! -
Material Components for iOS
DISCONTINUED. [In maintenance mode] Modular and customizable Material Design UI components for iOS -
NotificationBanner
The easiest way to display highly customizable in app notification banners in iOS -
ActiveLabel
UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://) written in Swift -
SlideMenuControllerSwift
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift. -
PopupDialog
A simple, customizable popup dialog for iOS written in Swift. Replaces UIAlertController alert style. -
Siren
DISCONTINUED. Notify users when a new version of your app is available and prompt them to upgrade. -
TLYShyNavBar
DISCONTINUED. Unlike all those arrogant UINavigationBar, this one is shy and humble! Easily create auto-scrolling navigation bars! -
StarWars.iOS
This component implements transition animation to crumble view-controller into tiny pieces. -
Whisper
:mega: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside -
PaperOnboarding
:octocat: PaperOnboarding is a material design UI slider. Swift UI library by @Ramotion -
CircleMenu
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion -
KMNavigationBarTransition
A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations. And you don't need to write any line of code for it, it all happens automatically. -
RazzleDazzle
A simple keyframe-based animation framework for iOS, written in Swift. Perfect for scrolling app intros. -
CHIPageControl
A set of cool animated page controls written in Swift to replace boring UIPageControl. Mady by @ChiliLabs - https://chililabs.io
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of LicensePlist or a related project?
README
LicensePlist
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.
[Flow](Screenshots/flow.png)

| App Setting Root | License List | License Detail |
|---|---|---|
| [](Screenshots/root.png) | [](Screenshots/list.png) | [](Screenshots/detail.png) |
Installation
Warning
SPM(Swift Package Manager) are not supported.
CocoaPods (Recommended)
pod 'LicensePlist'
# Installation path: `${PODS_ROOT}/LicensePlist/license-plist`
Homebrew (Also Recommended)
brew install licenseplist
Mint (Also Recommended)
mint run mono0926/LicensePlist
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 with a one-liner.
curl -fsSL https://raw.githubusercontent.com/mono0926/LicensePlist/master/install.sh | sh
From Source
Clone the master branch of the repository, then run make install.
git clone https://github.com/mono0926/LicensePlist.git
make install
Usage
- When you are in the directory that contains your
CartfileorPods, simply executelicense-plist. com.mono0926.LicensePlist.Outputdirectory will be generated.- Move the files in the output directory into your app's
Settings.bundle.- [Settings.bundle's sample is here](Settings.bundle.zip)
- The point is to specify
com.mono0926.LicensePlistas license list file on yourRoot.plist.
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
Options
You can see options by license-plist --help.
--cartfile-path
- Default:
Cartfile
--mintfile-path
- Default:
Mintfile
--pods-path
- Default:
Pods
--package-path
- Default:
Package.swift LicensePlisttries to findYourProjectName.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolvedandYourProjectName.xcworkspace/xcshareddata/swiftpm/Package.resolved, then uses new one.
--package-paths
- Support for multiple
Package.swift - Example:
license-plist --package-paths /path/to/package1/Package.swift /path/to/package2/Package.swift
--xcodeproj-path
- Default:
"*.xcodeproj" - By specifiying the path to the
.xcodeprojLicensePlistwill attempt to load thePackage.resolvedfrom that Xcode project. If you specifysomedir/*.xcodeprojthenLicensePlistwill load from the firstxcodeprojit finds insomedir.
--xcworkspace-path
- Default:
"*.xcworkspace" - By specifying the path to the
.xcworkspaceLicensePlistwill load thePackage.resolvedfrom that Xcode workspace. If you specifysomedir/*.xcworkspacethenLicensePlistwill load from the firstxcworkspaceit finds insomedir. --xcworkspace-pathsupersedes any provided--xcodeproj-path.
--output-path
- Default:
com.mono0926.LicensePlist.Output - Recommended:
--output-path YOUR_PRODUCT_DIR/Settings.bundle
--github-token
- Default: None.
- LicensePlist uses GitHub API, so sometimes API limit errors occur. You can avoid those errors by specifying a GitHub token.
- You can generate a token here
reposcope is needed.
- You can also pass the GitHub token via the
LICENSE_PLIST_GITHUB_TOKENenvironment variable.
--config-path
- Default:
license_plist.yml - You can specify GitHub libraries(introduced by hand) and excluded libraries
- Example is here
- See Configuration for more information
--prefix
- Default:
com.mono0926.LicensePlist - You can specify output file names instead of default one.
--html-path
- Default: None.
- If this path is specified, a html acknowledgements file will be generated.
--markdown-path
- Default: None.
- If this path is specified, a markdown acknowledgements file will be generated.
--force
- Default: false
LicensePlistsaves latest result summary, so if there are no changes, the program interrupts.- In this case, execution time is less than 100ms for the most case, so you can run
LicensePlistatRun Script Phaseevery time 🎉
- In this case, execution time is less than 100ms for the most case, so you can run
- You can run all the way anyway, by using
--forceflag.
--add-version-numbers
- Default: false
- When the library name is
SomeLibrary, by adding--add-version-numbersflag, the name will be changed toSomeLibrary (X.Y.Z).X.Y.Zis parsed from CocoaPods and Cartfile information, and GitHub libraries specified at Config YAML also support this flag.
--add-sources
- Default: false
- Adds the source of the library to the output if there is one. The source for GitHub and CocoaPods libraries is generated. Manual libraries use the optional source field.
--suppress-opening-directory
- Default: false
- Only when the files are created or updated, the terminal or the finder opens. By adding
--suppress-opening-directoryflag, this behavior is suppressed.
--single-page
- Default: false
- All licenses are listed on a single page, not separated pages.
--fail-if-missing-license
- Default: false
- If there is even one package for which a license cannot be found, LicensePlist returns exit code 1.
--silence-mode / --verbose
- By adding the
--silence-modeflag, the logger's output will not print. - The logger's output will be more detailed than the average log level by adding the
--verboseflag. - LicencePlist uses the latter option if you simultaneously set the
--silence-modeoption and the--verboseoption. - Default: average log level
--no-color / --color
- The logger's output is printed in monochrome by adding the
--no-colorflag. If any escape characters in CI/CD log bother you, the--no-coloroption will help. - By adding the
--colorflag, LicensePlist will always print the logger's output in color. - LicencePlist uses the latter option if you simultaneously set the
--no-coloroption and the--coloroption. - If neither option is specified, LicensePlist will look for the
NO_COLORenvironment variable. If you set theNO_COLORenvironment variable to"1", LicensePlist runs without colors. - Default: auto - LicensePlist decides its color mode depending on the terminal type.
Integrate into build
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
[Run Script Phase](Screenshots/run_script_phase.png)
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
Configuration
Manual GitHub source
A GitHub source can be explicitly defined to include the license in the scenario where it can't be inferred from your dependency files.
Examples
github:
- owner: mono0926
name: LicensePlist
version: 1.2.0
Manual License Body
If you need to include a license that isn't available on GitHub, you can place the license text in the config file to be included in the output. The license text can also be read from a local file, to keep the config file clean.
Examples
License body directly in the config file:
manual:
- source: https://webrtc.googlesource.com/src
name: WebRTC
version: M61
body: |-
Copyright (c) 2011, The WebRTC project authors. All rights reserved.
...
...
...
License body in local file:
manual:
- name: "Dummy License File"
file: "dummy_license.txt"
Excludes
Excludes can be defined to exclude matching libraries from the final output.
An exclude is a dictionary containing any combination of name, source, owner, or licenseType.
When using the dictionary format:
- The exclusion rule is only applied if all properties match for a dependency. eg,
(name: LicensePlist) AND (owner: mono0926) - Any property can be either a string or a regular expression.
Examples
Exclude a package by name:
exclude:
- name: LicensePlist
Exclude packages using a specific license:
exclude:
- licenseType: "Apache 2.0"
Exclude packages using any matching licenses:
exclude:
- licenseType: /BSD/
Exclude packages from a specific github owner:
exclude:
- owner: mycompany
Exclude packages from a specific github owner containing matching licenses:
exclude:
- owner: mycompany
licenseType: /^(?!.*MIT).*$/ # this regex excludes packages that do NOT use the MIT license
Exclude a package from a specific github owner and repo:
exclude:
- owner: mycompany
name: private-repo
Rename
If a library name is unsuitable for the output bundle, you can explicitly rename it. This can be used when a library name is too vague, or if more human-readable names are needed.
Examples
rename:
LicensePlist: License Plist # Rename LicensePlist to "License Plist"
WebRTC: Web RTC # Rename WebRTC to "Web RTC" (which is faulty, but used for test)
Q&A
How to generate Xcode project?
Execute swift package generate-xcodeproj or make xcode.
Related Articles
- LicensePlist というiOSアプリ利用ライブラリのライセンス一覧生成するツールを作りました – Swift・iOSコラム – Medium
- Swift Package Manager(SwiftPM)で作ったコマンドラインツールをHomebrewに登録する方法 - Qiita
Stargazers over time
寄付(Donation)
Donations are welcome if you like LicensePlist🤗
- PayPal.Me
- Transfer commission will be charged (40 yen + 3.6%)
- mono is creating LicensePlist | Patreon
- Amazonギフト券- Eメールタイプ
- メールアドレス: mono0926@gmail.com
- ほしい物リスト
Send Money by ウォレットアプリ Kyash
[Kyash](Screenshots/kyash.jpeg)
*Note that all licence references and agreements mentioned in the LicensePlist README section above
are relevant to that project's source code only.