最終確認日

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)

どうも。Reoです。

今回は LicensePlistBuild Tool Plugin を使って利用する方法について紹介します。

LicensePlist に関しては何年も前から利用していますが、Swift Package Manager から導入するようになり、従来の導入方法と大きく変わったと感じたので記事として残しておきます。

環境

導入方法

mono0926/LicensePlistの README を参考に導入しましょう。

  1. Swift Package Managerで導入する
  2. license_plist.yml を用意する
  3. Build Tool Pluginを設定する
  4. Settings.bundle を用意する
  5. ライセンスファイルを Settings.bundle にコピーする

この手順で導入していきます。

Swift Package Manager で導入する

Xcode を開き、 Swift Package Manager で導入します。

PROJECT > Package DEpendencies より + を選択。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768571354511

https://github.com/mono0926/LicensePlist を検索します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768571541019

バージョンが最新であることも確認しましょう。(2026年1月時点で3.27.2 が最新)

Dependency RuleUp to Next Minor Version を選択。LicensePlist は特に Xcode バージョンの影響を受けやすく感じたので、LicensePlist のマイナーバージョンが自動で更新されてしまうと問題が発生する場合もあると思ったので、こちらを選びました。

Add Package より導入。Target はどちらも None で ok 。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768571953343

license_plist.yml を用意する

設定ファイルとして license_plist.yml を用意します。 このファイルはXcode上ではなく、プロジェクトのルートに作成します。

Finder 上で .xcodeproj がある場所と同じ場所に配置します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768572792575

お好きなエディタで license_plist.yml の中身を書きましょう。

license_plist.yml
options:
  xcodeprojPath: "*.xcodeproj"
  xcworkspacePath: "*.xcworkspace"
  prefix: Acknowledgements

xcworkspacePath / xcodeprojPath/ packagePaths のいずれかは必須です。.xcworkspace がない場合にはxcodeprojPath だけで okです。

prefix はファイル名の設定で、デフォルト値が com.mono0926.LicensePlist となっています。

Build Tool Pluginを利用する場合には、outputPathpackageSourcesPath は利用できません。

その他にも利用できないオプションをいくつか見つけたので、それは後述します。

Build Tool Plugin を設定

プロジェクト > TARGET > Build Phases > Run Build Tool Plug-ins を開きます。

+ ボタンより追加していきます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768572349256

LicensePlistBuildTool を選択して、Add を選択します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768572436912

Settings.bundle を用意する

続いて、Settings.bundle を用意しましょう。Settings.bundle がないと、設定アプリ内に情報を表示することができません。

File > New > File from Template... を選択

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768573946939

Settings.bundle を探して Nextを選択。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768573985975

名前はそのまま Settings.bundle でokです。自分はいつも Resources フォルダに配置しています。任意の場所でokです。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768574048951

Settings.bundle の Root を編集する

Settings.bundle 内の Root.plist を編集します。 作成した時点で次のようにサンプルが入っていますが、これらは全部不要です。消しちゃいましょう。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768574505255

LicensePlistを使ううえで必要なのは次の項目です。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768574777090

  • Type: Child Pane
  • Title: 設定アプリで表示されるタイトル
  • Filename: license_plist.yml で設定した prefix

[!info] Child Pane がない? LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768575042941 アイテムを追加する時の選択肢に Child Pane はないです。 適当なTypeで作成した後に、Child Pane と書き換えると認識されます。(もしくは PSChildPaneSpecifier と書く)

コードでは次のようになっていればokです。Xcode 上ではQuick Look でコードを確認できます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>StringsTable</key>
	<string>Root</string>
	<key>PreferenceSpecifiers</key>
	<array>
		<dict>
			<key>Type</key>
			<string>PSChildPaneSpecifier</string>
			<key>Title</key>
			<string>Licenses</string>
			<key>File</key>
			<string>Acknowledgements</string>
		</dict>
	</array>
</dict>
</plist>

Settings.bundle が用意できたら一度ビルドしてみましょう。

ビルドした後に、設定アプリ > アプリ > 自分のアプリ を開きます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768575891965

先ほど設定したタイトル Licenses の行ができていればokです。ライセンスの中身は現在空になっています。

ログを見てみよう

先ほど Run Build Tool Plug-ins に追加したことで、ビルドした時に LicensePlist は実行されるようになっています。

ログを確認してみましょう。左側のパネルの1番右側のメニューよりログを見ることができます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768576431268

差分がない時は実行されないのでログは次のように Completed because no diff で終了しています。

[2026-01-17T00:03:36.355+09:00] [INFO] Start
[2026-01-17T00:03:36.357+09:00] [WARNING] not found: Pods/Target%20Support%20Files -- file:///
[2026-01-17T00:03:36.357+09:00] [WARNING] not found: Pods/_Prebuild/Target%20Support%20Files -- file:///
[2026-01-17T00:03:36.357+09:00] [INFO] Pods License parse start
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Pods/Manifest.lock -- file:///.
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Cartfile.resolved -- file:///.
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Cartfile -- file:///.
[2026-01-17T00:03:36.357+09:00] [INFO] Carthage License collect start
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Mintfile -- file:///.
[2026-01-17T00:03:36.357+09:00] [INFO] Mint License collect start
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: nestfile.yaml -- file:///.
[2026-01-17T00:03:36.357+09:00] [INFO] nest License collect start
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Package.resolved -- file:///.
[2026-01-17T00:03:36.357+09:00] [WARNING] Not found: Package.swift -- file:///.
[2026-01-17T00:03:36.359+09:00] [INFO] Swift Package Manager License collect start
[2026-01-17T00:03:36.361+09:00] [INFO] Manual License start
[2026-01-17T00:03:36.361+09:00] [WARNING] Completed because no diff. You can execute force by `--force` flag.

license_plist.ymlforce: true を追加して実行してみると次のようになっています。

[2026-01-17T00:17:19.370+09:00] [INFO] Start
...
[2026-01-17T00:17:19.374+09:00] [INFO] Swift Package Manager License collect start
[2026-01-17T00:17:19.376+09:00] [INFO] Manual License start
[2026-01-17T00:17:19.376+09:00] [INFO] license reading from disk start(owner: ishkawa, name: APIKit)
[2026-01-17T00:17:19.377+09:00] [INFO] license reading from disk start(owner: Kitura, name: HeliumLogger)
[2026-01-17T00:17:19.377+09:00] [INFO] license reading from disk start(owner: mono0926, name: LicensePlist)
[2026-01-17T00:17:19.378+09:00] [INFO] license reading from disk start(owner: Kitura, name: LoggerAPI)
[2026-01-17T00:17:19.378+09:00] [INFO] license reading from disk start(owner: apple, name: swift-argument-parser)
[2026-01-17T00:17:19.378+09:00] [INFO] license reading from disk start(owner: Kitura, name: swift-html-entities)
[2026-01-17T00:17:19.378+09:00] [INFO] license reading from disk start(owner: apple, name: swift-log)
[2026-01-17T00:17:19.379+09:00] [INFO] license reading from disk start(owner: SimplyDanny, name: SwiftLintPlugins)
[2026-01-17T00:17:19.379+09:00] [INFO] license reading from disk start(owner: tomlokhorst, name: XcodeEdit)
[2026-01-17T00:17:19.379+09:00] [INFO] license reading from disk start(owner: jpsim, name: Yams)
[2026-01-17T00:17:19.380+09:00] [INFO] Deleted exiting plist within Acknowledgements
[2026-01-17T00:17:19.380+09:00] [INFO] Directory created: file:///Users/user/Library/Developer/Xcode/DerivedData/Robin2-hftslipxorpowbgvawisxpslagml/Build/Intermediates.noindex/BuildToolPluginIntermediates/Robin2.output/Robin2/LicensePlistBuildTool/com.mono0926.LicensePlist.Output
[2026-01-17T00:17:19.384+09:00] [INFO] End
[2026-01-17T00:17:19.384+09:00] [INFO] ----------Result-----------
[2026-01-17T00:17:19.384+09:00] [INFO] # Missing license:
[2026-01-17T00:17:19.384+09:00] [INFO] None 🎉

各ライブラリが読まれて、エラーなく結果は None 🎉 で終了していることが確認できます。

では何故、設定アプリ上で表示されないんでしょう?

ライセンスファイルを Settings.bundle にコピーする

先ほどの LicensePlistBuildTool が実行された後に、生成されたライセンスファイルを Settings.bundle にコピーする必要があります。

プロジェクト > TARGET > Build PhasesRun Script を追加することになりますが、これはLicensePlistCommand Plugin が用意されているので、それを利用します。

プロジェクトを右クリックし、AddAcknowledgementsCopyScriptCommand を選択します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768735446665

プロジェクトではなくターゲットの方を選択して Run を選択します。(このときプロジェクトを選択すると、それぞれのターゲット全てにコピースクリプトが追加されることになります。テストなど不要なターゲットには追加しないようにしましょう。)

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768735569655

Allow Command to Change Files を選択します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768735703781

プロジェクト > TARGET > Build PhasesCopy Acknowledgements が追加されていることを確認します。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768735998623

スクリプトの内容は次の通りです。

echo "Will copy acknowledgements"

ACKNOWLEDGEMENTS_DIR=${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/com.mono0926.LicensePlist.Output
DESTINATION_PATH=${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Settings.bundle/

cp -r "${ACKNOWLEDGEMENTS_DIR}"/* "${DESTINATION_PATH}"
rm -rf "${ACKNOWLEDGEMENTS_DIR}"

AddAcknowledgementsCopyScriptCommand を使わずに Build Phases に直接追加しても ok です。

このスクリプトにより、LicensePlistBuildTool で収集・生成されたライセンスファイルが Settings.bundle にコピーされます。

App Sandbox をオフにする

先ほどのスクリプトを追加してビルドしようとすると、エラーが出ます。

AcknowledgementsCommand doesn’t copy into Settings.bundle #222の問題により、現在はSandboxをオフにした状態ではエラーが出てしまいます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768573596472

この対策として TARGETS > Build Settings > Build Options > User Script Sandboxing をオフにする必要があります。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768736811539

プロジェクト側もSandboxing オフにしないと Archive 時などにエラーが出るのかは後で確認しておきます。

確認してみよう

Sandboxing をオフにして再度ビルドしてみます。

ビルド完了後、設定アプリを開き、アプリ > 自分のアプリを開きます。 Licenses の中にライセンス一覧が表示されていることが確認できます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768737393080

これで無事に LicensePlistの導入が完了しました。

Build Tool Plugin での注意点

Build Tool Pluginではそれ以外の方法と違い多くの制約があります。 Swift Package プラグインの全体像#プラグインの制限がとても参考になります。

まず、外部へのアクセスが難しいです。

Mintで導入したCLIツール(SwiftLintなど)はアプリ自体に同梱されるわけではありません。多くの場合ツールの本体はローカルにあり、これは Build Tool Plugin からはアクセスすることができません。

私の調査では、Build Tool Pluginを使う場合はMintを使ったツールのライセンスファイルは生成できないという結論になりました。(調査はLicensePlistでSwiftPMのライブラリのライセンス情報が書き出せない(2026年1月)にて行なっています。)

また同様にネットワークアクセスもできません。

ネットワークアクセスができないということは、GitHubリポジトリからのライセンスファイル取得なども利用できません。(なのでgitHubToken の設定も恐らく意味がない)

自分の調査では、次のオプションが利用できないことを確認しています。

CLI option 役割 利用可否
--output-path 出力ディレクトリ指定 ×
--cartfile-path Carthage の Cartfile 指定 ?
--mintfile-path Mintfile 指定 ×
--nestfile-path Nestfile 指定 ?
--pods-path CocoaPods の Pods ディレクトリ指定 ○(怪しい)
--package-paths SwiftPM の Package.swift 指定
--package-sources-path SwiftPM の SourcePackages 指定 ×
--xcodeproj-path .xcodeproj 指定
--xcworkspace-path .xcworkspace 指定
--prefix plist の Bundle Identifier prefix
--github-token GitHub API 用トークン ×
--html-path HTML 形式での出力 ?
--markdown-path Markdown 形式での出力 ?
--license-file-names 検索対象ライセンスファイル名 ?
--force 既存出力の上書き
--add-version-numbers ライブラリのバージョン表示
--suppress-opening-directory Finder を自動で開かない ×
--single-page 単一 plist にまとめる
--fail-if-missing-license ライセンス欠落時に失敗 ?
--add-sources ソース URL を表示 ?
--sandbox-mode サンドボックス実行 ×

--pods-path は指定しても無視されているっぽいのですが、適当な文字列を入れるとエラーが出るので一応利用できているのかな?と思います。

--output-path など Build Tool Pluginでは利用できませんが、Command Pluginでは利用できるオプションもあります。

制約があるとはいえ、最近はほとんどのライブラリをSwiftPMにて管理している人が多いと思うので、特に問題なく使えるケースのが多いと思います。

以前の自分の利用方法とのちがい

以前は Mint を使って LicensePlistの導入をしていました。この時の方法は、「iOSアプリのライセンス生成ツール「LicensePlist」のセットアップ&操作方法」の記事とほぼ同様の方法で利用していました。(記事の方法との違いは mint 実行を Build Phases に追加していたこと)

その時の方法では、生成したライセンスファイルをプロジェクト内の Settings.bundle に配置していました。プロジェクトツリーは次のような感じでファイルが入っています。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768741904222

プロジェクト内に配置するので、もちろん Git上での差分も表示されます。(git管理するのかどうか論争も恐らくあったと思いますが、自分はgitに含めていました。)

この時の方法では outputPath というオプションを使い Settings.bundle 内にすることでプロジェクト内に配置することができました。このオプションは Build Tool Plugin では無効となります。

Build Tool Pluginを用いた方法は、ビルド時に直接、ビルド成果物の Settings.bundle にコピーする形となります。そのため、Gitでの差分や直接ライセンスファイルの確認はできません。

一応昔からその方法もできたらしく、実は正統派はそっちだったのかも?って気もしましたが、自分から見るとこの部分が大きく変わったなと感じました。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768744434896

もし以前の自分と同様な方法を使っていて移行する場合には、プロジェクトから Settings.bundle 内のライセンスファイルは消してしまってokです。むしろ既存のプロジェクト側のSettings.bundleの中身とマージされてしまうので、不要なライセンスファイルが残る原因となってしまうので消しておいた方が良いでしょう。

Command Plugin を使ってみよう

LicensePlist にはもうひとつプラグイン機能が用意されています。

GenerateAcknowledgementsCommand という Command Plugin です。先ほどの AddAcknowledgementsCopyScriptCommand と同様にXcode上で手動で動かせます。

これを使うと、以前のようにプロジェクトの Settings.bundle にファイルを含める形で利用することができます。

license_plist.yml はそのままで実行してみましょう。プロジェクトを選択してRun。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768744835980

実行後はプロジェクトのルートフォルダに com.mono0926.LicensePlist.Output というフォルダができています。中身はこんな感じ。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768744977009

license_plist.ymloutputPathprefix で指定したファイル名でライセンスファイル群が生成されています。今回はlicense_plist.yml内で outputPathの指定をしなかったのでルートに配置されました。

license_plist.yml を次のように書き換えます。

options:
  outputPath: "./Robin2/Resources/Settings.bundle"
  xcodeprojPath: "*.xcodeproj"
  xcworkspacePath: "*.xcworkspace"
  prefix: Acknowledgements
  force: true

再度 GenerateAcknowledgementsCommand を実行すると、プロジェクトツリーのSettings.bundle内にライセンスファイルが生成されています。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768745295876

この場合は Run Build Tool Plug-ins には LicensePlistBuildTool は含めません。また Copy Acknowledgements のスクリプトも削除しておきましょう。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768745354526

この状態でビルドして、設定アプリよりライセンスを確認しましょう。

ライセンス一覧が正しく確認できるはず…あれ?できていないですね?

GenerateAcknowledgementsCommand は3.27.2 時点ではバグあり

先ほどの方法でライセンス一覧が正しく表示されるはずですが、設定アプリから見ると空っぽになっていました。

現在 3.27.2 では GenerateAcknowledgementsCommand にはバグがあり、ライセンスファイル生成時に失敗してしまいます。ちなみに Xcode 16.2 以前までは生成できていました。

プラグインの実行ログを見てみましょう。失敗していることがわかります。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768745701865

Showing All Messages
[2026-01-18T23:07:00.702+09:00] [INFO] ----------Result-----------
[2026-01-18T23:07:00.702+09:00] [INFO] # Missing license:
[2026-01-18T23:07:00.702+09:00] [WARNING] APIKit
[2026-01-18T23:07:00.702+09:00] [WARNING] HeliumLogger
[2026-01-18T23:07:00.702+09:00] [WARNING] LicensePlist
[2026-01-18T23:07:00.702+09:00] [WARNING] LoggerAPI
[2026-01-18T23:07:00.702+09:00] [WARNING] SwiftLintPlugins
[2026-01-18T23:07:00.702+09:00] [WARNING] XcodeEdit
[2026-01-18T23:07:00.702+09:00] [WARNING] Yams
[2026-01-18T23:07:00.702+09:00] [WARNING] swift-argument-parser
[2026-01-18T23:07:00.702+09:00] [WARNING] swift-html-entities
[2026-01-18T23:07:00.702+09:00] [WARNING] swift-log

失敗をしているのはSwift Packageのライブラリです。今回のプロジェクトでは使っていませんが、CocoaPodsのライブラリはこの方法でも正しく生成されます。

この件については、Issue「GenerateAcknowledgementsCommand does not generate Swift Package licenses on Xcode 26 #251 」を立ててきたので今後のバージョンで直ることを期待しましょう。

自分でIssueを立てたのでできれば直しに行きたいお気持ちもあるんですが、自分の環境だけだったりしない?とかビビって今のところは他力本願です。すみません。

この方法のメリット/デメリット

GenerateAcknowledgementsCommand を使って手動で実行する方法は、従来の方法に近いと感じます。

自分がこの方法のメリットだと思う点を挙げてみます。

  • ビルド時に処理が走らないので軽くなる
  • Gitで差分が確認できる
  • リリース時にちゃんと Settings.bundle に生成されるかなどの不安がない
  • LicensePlistの不具合に気づきやすい
  • Sandbox 制約を受けにくい(はず)
  • Xcode のバージョン更新時に古いライセンスファイルを残しておける

個人的に一番のメリットは、LicensePlistの不具合に気づきやすいことと差分確認ができることかな、と思います。

Build Tool Pluginのように自動で実行され、差分は直接確認しないとわからないとなると、うまく動作していなくても気づかないことの方が多そうです。実際自分も従来の方法で差分があったからこそ不具合に気づいたので…

デメリットは手動実行をそもそも忘れてしまうこと。なので Xcodeから実行ではなく自動化しておくのが一番な気もします。そうなるとわざわざCommand Pluginじゃなくていいじゃん説となります。

またCommand PluginBuild Tool Pluginと同様にネットワークアクセスができないので、GitHubから直接ライセンス情報を引っ張ってくる方法は利用できません。あと MintfileBuild Tool Plugin同様に利用できないことを確認しています。なのでこれもプラグイン機能じゃなくていいじゃん〜となってしまいます。

そんなこんなで、わざわざ GenerateAcknowledgementsCommand を使う必要はそこまでないのかなとは思われます。

でもLicensePlist自体がXcodeバージョンによってうまく動作しないことがあるので、Xcodeのアップデートで今回のようなバグが発生すると、LicensePlistが新しいXcodeバージョンに対応されるまでライセンスファイルが空になってしまい、リリースに影響を受けてしまいそうです。

個人的には小規模プロジェクトなら手動実行で十分だし、ライブラリ更新頻度も低いし差分見れる方がありがたいなは思うので、バグが直ったらどっちの方法にするかはちょっと迷います。

うまく使えない時

今後この記事も古くなっていきますので、今回の方法で使えない場合もあるかと思います。

LicensePlistXcodeのバージョンにより影響を受けることが多いです。

Xcodeのバージョンを上げたときは、LicensePlist が正しく使えるかどうかを確認、使えない場合はLicensePlistに新しいバージョンが出ていないかを確認してみましょう。

バージョンを上げてみても動作が不安定な場合はビルドログをチェックしたり、イシューをチェックしてみましょう。ライブラリのパス周りがXcodeバージョンに依存する形の設計になっていると感じたので特にパスがあっているかなどを見ると良いでしょう。

調査方法については私のメモなども参考にしてみてください。(Build Tool PluginCommand Pluginの違いを知らない状態から始まっているので結構ひどいですが…)

LicensePlistでSwiftPMのライブラリのライセンス情報が書き出せない(2026年1月)

エラー集

今回の記事を書いている時に発生したエラー集をまとめておきます。

license_plist.yml が見つからない

license_plist.yml を用意せずに Build Tool Plugin に登録してビルドをすると、次のようなエラーが出ます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768572523665

Can't find 'license_plist.yml' file

プロジェクトルートに license_plist.yml を追加することで解決します。

Sandbox のエラー

AcknowledgementsCommand doesn’t copy into Settings.bundle #222の問題です。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768573596472

Sandbox: bash(28019) deny(1) file-read-data /Users/user/Library/Developer/Xcode/DerivedData/Robin2-hftslipxorpowbgvawisxpslagml/Build/Products/Debug-iphoneos/Robin2.app/com.mono0926.LicensePlist.Output
Sandbox: rm(28021) deny(1) file-read-data /Users/user/Library/Developer/Xcode/DerivedData/Robin2-hftslipxorpowbgvawisxpslagml/Build/Products/Debug-iphoneos/Robin2.app/com.mono0926.LicensePlist.Output

TARGETS > Build Settings > Build Options > User Script Sandboxing をオフにすることで解決することができます。

LicensePlist を Build Tool Plugin で利用する方法(Xcode 26)-1768736811539

代替

最後になりますが、ライセンスリストを生成する新しいライブラリを見つけたので紹介します。LicenseListというライブラリです。

こちらは設定アプリではなく、アプリ内にライセンス情報を表示することができます。 また、Swift Package限定となります。

LicensePlistがうまく使えなかったり、アプリ内に表示したい場合はこちらを使うと良いでしょう。

おわりに

今回の記事は「LicensePlistでSwiftPMのライブラリのライセンス情報が書き出せない(2026年1月)」という問題から始まりました。

何年も前からずっとお世話になっていたLicensePlistですが、Build Tool Pluginに移行してからはうまく使えていなかったことが判明しました。私の失敗は、Build Tool PluginCommand Plugin の違いを理解していなかったことです。

今回バグの調査をしているうちに何も理解してないで使っていることが判明してしまったので、改めて記事を書いてまとめてみることにしました。思ったより長くなっちゃいましたね。

それではでは〜

参考

サイトアイコン
公開日
更新日