はじめに
これまでSwiftFormat、SwiftLint、LicensePlistをSwiftPMで管理する方法を記事にしてきました。
今回はSwiftGenをSwiftPMで管理してみます。
「swiftpm-swiftgen」というプロジェクトを作成しました。
やりかた
swiftpm-swiftgenに移動します。
cd /Users/miyamototaishin/Desktop/swiftpm-swiftgen
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/SwiftGen/SwiftGen", from: "6.0.0")
],
targets: [.target(name: "BuildTools", path: "")]
)
ディレクトリを1つ上の階層に移動します。
cd ..
swiftgen.yml
を作成します。
touch swiftgen.yml
swiftgen.yml
を開きます。
open swiftgen.yml
swiftgen.yml
を編集します。
ここの編集は各々設定をお願いします。
xcassets:
inputs:
- ${TARGET_NAME}/Assets.xcassets
outputs:
- templateName: swift5
output: ${TARGET_NAME}/Assets.swift
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/SwiftGen \
--product swiftgen
.build/checkouts/SwiftGen/.build/release/swiftgen config run --config $SRCROOT/swiftgen.yml
ビルド
成功していればAssets.swift
が生成されているはずです。
Xcodeに読み込ませます。
① メインターゲットのフォルダを右クリックします
② 「Add Files to "swiftp,-swiftgen"...」を選択します
③ 生成されたAssets.swift
を選択します
④ 「Add」を選択します
おわり
SwiftFormat、SwiftLint、SwiftGen、LicensePlistをSwiftPMで管理できるようになったことによって個人開発ではMintを使用しなくて良くなりました!!
CocoaPodsも卒業できて、Mintも卒業できました!!