XcodeのSwiftファイルのデフォルトのヘッダーコメントを変更する
この記事はpotatotips #82 iOS/Android開発Tips共有会で使用したものです
Xcodeで.swift
ファイルを作成した時に自動でファイルの上部に追加される以下のようなヘッダーコメントですが、時にその文言を変更したい場合があります
特に自動で追加されるファイル名は、自分の場合いつもファイル名とclassやstructの命名を一致させていて、特に記載の必要もなく、renameが上手くできないので、省略したいと思ってました(よくPRでrename忘れの指摘をされることもあったので、困ることが多かったです)
また以前複数のアプリでソースコードを再利用したときに、モジュール名(アプリ名)を変更し忘れて、トラブルになりかけたことがありました。
そのようなリスクを避けるためにも、記載の必要のないものは記述されないようにしたいです。
ちなみにデフォルトでは以下のように表示されると思います
//
// ${File Name}.swift
// ${Target Name}
//
// Created by ${Author / Company Name} on ${Date}
//
この記事では新規ファイル作成時のデフォルトヘッダーの文字の設定や変更方法を①通常のアプリと②Swift Packageごとにまとめます
目標(ヘッダーに記載したい内容)
- 作成者名
- 作成日
- 会社/プロジェクト名
最終的に以下のように表示されることを目標にします
//
// Created by ${Author} on ${Date}
// Copyright © ${Company/Project Name} All rights reserved.
//
固定の文字列ではなく、日付や作成者などは以下のマクロを利用することで、取得することができます
マクロ名 | 表示項目 | メモ | |
1 | ___USERNAME___ | ユーザー名 | macOSのログインユーザー名 |
2 | ___DATE___ | 日付 | |
3 | ___YEAR___ | 年 | |
4 | ___ORGANIZATIONNAME___ | 組織名 |
Organization
の箇所に設定することで、設定することができます後述しますが、Packageを直接開く場合は、この項目は反映されません(Organizationを設定する箇所がないため)
その他のマクロのついては、Text macros referenceを確認してください
またマクロの表示内容も一部Modifierを使用することで、表示内容を編集することができます(参照: Text macro format reference)
今回は最終的に以下のような設定を記載しています
<?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>FILEHEADER</key>
<string>
// Created by ___USERNAME___ on ___DATE___
// Copyright © ${CompanyName} All rights reserved.
//</string>
</dict>
</plist>
ヘッダーの設定の変更方法
基本的にはマクロを設定するためのIDETemplateMacros.plist
という設定ファイルがあるので、そのファイルの設定を変更します
このファイルの中では、ファイル作成者や作成日、ファイル名などのマクロを使用することができます
xcodeproj/xcworkspaceの場合
上記の設定ファイルは目的に応じて、以下のパスに格納されています
適切なパスに置くことで、Xcodeがその設定を読み込んで、ヘッダーの記載内容を変更してくれます
作者の場合は、Workspace
で使用し、かつ他の開発者とgitで設定を共有したかったので、4のパスに配置しています
種類 | パス | |
1 | Project User Data | <ProjectName>.xcodeproj/xcuserdata/<UserName>.xcuserdata/IDETemplateMacros.plist |
2 | Project Shared Data | <ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist |
3 | Workspace User Data | <WorkspaceName>.xcworkspace/xcuserdata/<UserName>.xcuserdata/IDETemplateMacros.plist |
4 | Workspace Shared Data | <WorkspaceName>.xcworkspace/xcshareddata/IDETemplateMacros.plist |
5 | Xcode User Data | $HOME/Library/Developer/Xcode/UserData/IDETemplateMacros.plist |
SwiftPackageの場合
SPMのパッケージの場合、以下のパスに設定ファイルを配置しています
種類 | パス | |
1 | Package Shared Data | <Package Root>/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDETemplateMacros.plist |
前述の通り、Organizationの設定をGUI上でできないので、会社名やプロジェクト名を固定文字列を設定しています
またWorkspace内にPackageを配置している場合はWorkspaceの設定が優先され、Packageの単位でXcodeから開いた場合、SPMの設定が適用されるので、要注意です!
まとめ
今回はXcodeのヘッダーコメントの設定変更方法についてまとめました
特にxcodeprojやxcworkspaceではなく、SPMの単位で開発する場合の設定方法はぱっと見ですぐに情報がまとめられていなかったので、方法が整理できたのはよかったです
最近はSPMのLocalPackageを使ったマルチモジュール開発が多いので、SPMで開発する場合の設定が通常のxcodeprojやxcworkspaceメインの開発と異なる場合が多いため、今回のヘッダーコメント以外にもそのような知見が追加で見つかれば、まとめていこうと思います