Recursively finds all
LICENSE.* files in a directory and generates a plist that can be displayed in
Settings.bundle or the provided view controller.
The script can help ensure that the license section of your app is always up to date. Since it searches recursively the script works well with cocoapods projects.
Inspired by JosephH and Sean's comments on stackoverflow.
The build script recursively searches the project for
LICENSE files and generates a plist that can be used in a
Settings.bundle. The script assumes that the parent directory of the
LICENSE file is also the name of the library to be credited.
credits.pyto the your project root
- Open your project, select your Target and select Build Phases
- Add a new Run Script Phase after target dependencies
- Add something like:
./credits.py -s "$SRCROOT" -o "$SRCROOT/Project/Settings.bundle/Credits.plist"
- Build & profit
You can optionally tell the generator to ignore certain paths. To do so use the
-e option and pass it a comma separated list of path fragments.
If your app doesn't use a
Settings.bundle you can use the provided view controller to show the licenses.
Add LicensesViewController to your
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! pod 'LicensesViewController', '~> 0.9.0'
Then tell Pod to install it:
$ pod install
credits.py from this repo and add it to your project.
Add the build script as described above and make sure the resulting plist is included in the app target.
import LicensesViewController // ... let licensesController = LicensesViewController() licensesController.loadPlist(Bundle.main, resourceName: "Credits") // ...
git clone https://github.com/carloe/LicenseGenerator-iOS.git cd LicenseGenerator-iOS/Example pod install open LicensesViewControllerExample.xcworkspace
4.2, '5.0', '5.1', '5.2'
If you are targeting Swift
'~> 0.6.6' in your Podfile.