はじめに
SwiftFormatとSwiftLintに続いてLicensePlistをSwiftPMで管理してみました。
「swiftpm-licenseplist」というプロジェクトを作成しました。
やりかた
各種ファイルを設定
swiftpm-licenseplistに移動します。
cd /Users/miyamototaishin/Desktop/swiftpm-licenseplist
BuildToolsというフォルダを作成します。
mkdir BuildTools
BuildToolsに移動します。
cd BuildTools
Package.swift
を作成します。
touch Package.swift
Empty.swift
を作成します。
touch Empty.swift
Package.swift
を開きます。
open Package.swift
Package.swift
に以下をコピペします。
// 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を作成
選択した状態で⌘
+N
を同時に押します。
① Settings
と検索します
② 「Settings Bundle」を選択します
③ 「Next」を選択します
④ 名前はSettings
のままにします
⑤ 「Create」を選択します
⑥ en.lproj
を右クリックします
⑦ 「Delete」を選択します
⑨ 「Settings.bundle」を右クリックします
⑩ 「パッケージの内容を表示」を選択します
⑪ 「Root.plist」を右クリックします
⑫ 「このアプリケーションで開く」を選択します
13 Xcode以外のエディターで開きます
開いたら以下をコピペします。
<?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を作成
① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「+」を選択します
⑤ 「New Run Script Phase」を選択します
追加された「Run Script」に以下のスクリプトをコピペします。
cd BuildTools
xcrun --sdk macosx swift build -c release
先ほどと同じ手順で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
ビルド
Settings.bundle内に色々生成されたら成功です!!
おわり
できてよかったです!!