CrossBridge Lab

技術ネタ、デバイスネタを...

Cocoapodsで導入したライブラリのライセンス表記を行う

はじめに

 アプリに外部ライブラリを導入するにはCocoapodsやCarthageを使うかと思いますが、今回はCocoapodsで導入したライブラリのライセンスを設定アプリで表示する方法です。CocoapodsでインストールするとAcknowledgements.plistというファイルが作成されるのでそれをアプリに取り込んで設定アプリで表示するように設定します。

f:id:crossbridge-lab:20161128121415p:plain

流れ

  1. SettingsBudleを追加する
  2. SettingsBudleでacknowledgements.plistを読むように記述する
  3. Podfileにpod install時にacknowledgements.plistをコピーするように記述する

1. SettingBudleを追加する

 他のファイルの新規作成と同じようにXcodeのメニューから作成します。File -> New -> File... でウインドウを開いてSettings Budleを選択します。

f:id:crossbridge-lab:20161128121429p:plain

2. SettingsBudleでacknowledgements.plistを読むように記述する

 作成したSettingsBundleのPreference Items内に以下を追加します。Titleは設定アプリのセルに表示される文字列なのでライセンスなどにしても良いでしょう。

Key Value
Type Child Pane
Title Acknowledgements
Filename Acknowledgements

f:id:crossbridge-lab:20161128121441p:plain

3. Podfileにpod install時にacknowledgements.plistをコピーするように記述する

 まずはpod installを実行してどこにacknowledgements.plistが作成されているかを確認してみます。

f:id:crossbridge-lab:20161128121448p:plain

 このサンプルでは以下の場所に作成されています。

Pods/Target Support Files/Pods-Sample/Pods-Sample-Acknowledgements.plist

 Sampleとなっているところは環境によって異なります。

Pods/Target Support Files/Pods-[Target]/Pods-[Target]-Acknowledgements.plist

 作成されたacknowledgements.plistをSettingsBundle内にコピーするPodfileの一例です。SettingsBundleをどこに作成したかによっても変わるので注意してください。

platform :ios, '9.0'

target 'Sample' do
  use_frameworks!

  pod 'Realm'

end

post_install do | installer |
  require 'fileutils'

  FileUtils.cp_r('Pods/Target Support Files/Pods-Sample/Pods-Sample-Acknowledgements.plist', 'Sample/Settings.bundle/Acknowledgements.plist', :remove_destination => true)

end

これで実行すると表示されます。

f:id:crossbridge-lab:20161128121455p:plain