0
1

More than 1 year has passed since last update.

【Swift】SwiftGenをSwiftPMで管理する

Posted at

はじめに

これまでSwiftFormat、SwiftLint、LicensePlistをSwiftPMで管理する方法を記事にしてきました。
今回はSwiftGenをSwiftPMで管理してみます。

「swiftpm-swiftgen」というプロジェクトを作成しました。

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

やりかた

swiftpm-swiftgenに移動します。

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

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

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

ターミナル
mkdir BuildTools

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

BuildToolsに移動します。

ターミナル
cd BuildTools

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

Package.swiftを作成します。

ターミナル
touch Package.swift

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

Empty.swiftを作成します。

ターミナル
touch Empty.swift

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

Package.swiftを開きます。

ターミナル
open Package.swift

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

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 ..

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

swiftgen.ymlを作成します。

ターミナル
touch swiftgen.yml

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

swiftgen.ymlを開きます。

ターミナル
open swiftgen.yml

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

swiftgen.ymlを編集します。
ここの編集は各々設定をお願いします。

swiftgen.yml
xcassets:
  inputs:
    - ${TARGET_NAME}/Assets.xcassets
  outputs:
    - templateName: swift5
      output: ${TARGET_NAME}/Assets.swift

Run Scriptを作成

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

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

⑤ 「New Run Script Phase」を選択します
スクリーンショット 2023-01-16 17.51.07.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/SwiftGen \
--product swiftgen

.build/checkouts/SwiftGen/.build/release/swiftgen config run --config $SRCROOT/swiftgen.yml

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

ビルド

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

成功していればAssets.swiftが生成されているはずです。
スクリーンショット 2023-01-16 19.43.48.png

Xcodeに読み込ませます。
① メインターゲットのフォルダを右クリックします
② 「Add Files to "swiftp,-swiftgen"...」を選択します
スクリーンショット 2023-01-16 19.45.20.png

③ 生成されたAssets.swiftを選択します
④ 「Add」を選択します
スクリーンショット 2023-01-16 19.47.34.png

Xcodeに読み込むことができました。
スクリーンショット 2023-01-16 19.49.13.png

おわり

SwiftFormat、SwiftLint、SwiftGen、LicensePlistをSwiftPMで管理できるようになったことによって個人開発ではMintを使用しなくて良くなりました!!
CocoaPodsも卒業できて、Mintも卒業できました!!

0
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
0
1