iOSライセンス一覧を生成するツールLicensePlistが便利
1.はじめに
App Storeにある有名アプリでもいくつか導入されているようだったので、試しに入れてみました。日本の方が作成したようでReadMeも読みやすいです。
iOSライセンス一覧を生成するツール LicensePlist
2017年に日本の方がリリースしたライブラリ(CLIツール)です。
現在個人アプリを開発中なのですが、以前は、ライセンス表記するために設定
、ライセンス一覧
、ライセンス表示画面
を作ってplistから取得してゴニョゴニョ表示していました。
新しいライブラリを入れる度にplist更新しないといけないので、それが日に日に面倒でした。
プロジェクトによりますが、個人開発でなくてもそのような状況は、良くあるのではないでしょうか。
自分でscript書いてビルド時にライブラリのplistから摘出してってやっても良いと思いますが、それすらしたくない!って方にはいいかもしれません。結局ライブラリでやっていることはそれと同じようなことだと思いますが。
導入までの備忘録も兼ねて投稿します。
これを導入すると端末の設定アプリの該当のアプリの欄にLisenceというセルが追加されて、ライセンスたちはここに明記されるようになります。
つまり、アプリ内部でライセンス表記画面を作成する必要もなくなります。
Settings Bundleを使用して端末の設定アプリにアプリ情報を表示したり、アプリの設定を変更できる機能を実装する仕組みは以前からありましたが、無知でしたでの僕は驚きました泣。
2.メリット、デメリット
メリット
・ アプリ内部で専用画面を作る必要がない
・ ライブラリを導入する度に修正する手間がなくなる
デメリット
・ 手動でライブラリを取り込んだ場合は別途YMLの設定が必要
・ アプリ内部にライセンス表記がないのでユーザーが気づきにくい
(ライセンスを見る人なんて開発者くらいか)
手動でライブラリを取り込んだ場合というのは、例えばソースを直接入れたりGit Submodule使っている場合ですね。少々面倒。
3.導入
Homebrew、mintでの導入も記載ありましたが、僕の場合CocoaPodsを使用していたので今回はCocoaPodsで。
はい、導入していきます。
pod 'LicensePlist'
pod update
あとはXcodeのBuild PhasesのRun Scriptに以下を追加。
if [ $CONFIGURATION = "Debug" ]; then
${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi
そしてプロジェクトをビルドすると先ほど設定したRun Script
でCLIが実行され、ターミナルが自動起動されます。
そのままではまだ、設定アプリ上には表示されていません。
プロジェクトディレクトリ
内のRootにSetting.bundle
が生成されているのでこれをプロジェクトRoot
に追加します。
その後アプリをビルドランすると設定アプリ>アプリ名>Licenseのセルが追加されています。
中を見るとこんな感じです。
4.最後に
ReadMeや本人の記事を見れば普通に導入できますが、分かりやすく解説してみました。
ライブラリを使う場合は、多くの場合でライセンス表記が必要なので、このようなツールはとても便利だと思います。
みなさんもぜひ使ってみてください。
その他参考にした記事やサイト
・ iPhoneの設定アプリにライブラリのライセンスを表示するようにする
・ LicensePlist github
・ LicensePlist というiOSアプリ利用ライブラリのライセンス一覧を生成するツールを作りました
↑これは本人の記事です。
Author And Source
この問題について(iOSライセンス一覧を生成するツールLicensePlistが便利), 我々は、より多くの情報をここで見つけました https://qiita.com/kazy_dev/items/88ec404cfaf4efcc653e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .