3
1

More than 1 year has passed since last update.

【Swift】LicensePlistをSwiftPMで管理する

Last updated at Posted at 2023-01-15

はじめに

SwiftFormatとSwiftLintに続いてLicensePlistをSwiftPMで管理してみました。

「swiftpm-licenseplist」というプロジェクトを作成しました。
スクリーンショット 2023-01-15 20.34.02.png

やりかた

各種ファイルを設定

swiftpm-licenseplistに移動します。

ターミナル
cd /Users/miyamototaishin/Desktop/swiftpm-licenseplist

スクリーンショット 2023-01-15 20.35.27.png

BuildToolsというフォルダを作成します。

ターミナル
mkdir BuildTools

スクリーンショット 2023-01-15 20.36.08.png

BuildToolsに移動します。

ターミナル
cd BuildTools

スクリーンショット 2023-01-15 20.37.29.png

Package.swiftを作成します。

ターミナル
touch Package.swift

スクリーンショット 2023-01-15 20.38.37.png

Empty.swiftを作成します。

ターミナル
touch Empty.swift

スクリーンショット 2023-01-15 20.39.06.png

Package.swiftを開きます。

ターミナル
open Package.swift

スクリーンショット 2023-01-15 20.40.42.png

Package.swiftに以下をコピペします。

Package
// swift-tools-version: 5.6
import PackageDescription

let package = Package(
    name: "BuildTools",
    dependencies: [
        .package(url: "https://github.com/mono0926/LicensePlist", from: "3.23.4")
    ],
    targets: [.target(name: "BuildTools", path: "")]
)

Settings.Bundleを作成

プロジェクト直下のフォルダを選択します
スクリーンショット 2023-01-15 20.49.04.png

選択した状態で+Nを同時に押します。
Settingsと検索します
② 「Settings Bundle」を選択します
③ 「Next」を選択します
スクリーンショット 2023-01-15 20.51.54.png

④ 名前はSettingsのままにします
⑤ 「Create」を選択します
スクリーンショット 2023-01-15 20.54.12.png

en.lprojを右クリックします
⑦ 「Delete」を選択します
スクリーンショット 2023-01-15 20.56.07.png

⑧ 「Move to Trash」を選択します
スクリーンショット 2023-01-15 20.57.32.png

⑨ 「Settings.bundle」を右クリックします
⑩ 「パッケージの内容を表示」を選択します
スクリーンショット 2023-01-15 20.59.18.png

⑪ 「Root.plist」を右クリックします
⑫ 「このアプリケーションで開く」を選択します
13 Xcode以外のエディターで開きます
スクリーンショット 2023-01-15 21.01.17.png

開いたら以下をコピペします。

Root.plist
<?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>com.mono0926.LicensePlist</string>
        </dict>
 </array>
</dict>
</plist>

Run Scriptを作成

プロジェクトをダブルタップで開きます。
スクリーンショット 2023-01-15 20.42.57.png

① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「+」を選択します
スクリーンショット 2023-01-15 20.44.00.png

⑤ 「New Run Script Phase」を選択します
スクリーンショット 2023-01-15 20.45.22.png

追加された「Run Script」に以下のスクリプトをコピペします。

cd BuildTools

xcrun --sdk macosx swift build -c release

スクリーンショット 2023-01-15 20.47.02.png

先ほどと同じ手順でRun Scriptを作成します。
作成したRun Scriptに以下のスクリプトをコピペします。

cd BuildTools

xcrun --sdk macosx swift build -c release \
--package-path .build/checkouts/LicensePlist \
--product license-plist

.build/checkouts/LicensePlist/.build/release/license-plist --xcodeproj-path $PROJECT_FILE_PATH --package-path Package.swift --output-path $SRCROOT/$TARGET_NAME/Settings.bundle

スクリーンショット 2023-01-16 20.21.12.png

ビルド

ビルドします。
スクリーンショット 2023-01-15 21.08.01.png

Settings.bundle内に色々生成されたら成功です!!
スクリーンショット 2023-01-15 21.09.52.png

おわり

できてよかったです!!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1