iOS

XcodeのSwiftファイルのデフォルトのヘッダーコメントを変更する

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ごとにまとめます

目標(ヘッダーに記載したい内容)

  1. 作成者名
  2. 作成日
  3. 会社/プロジェクト名

最終的に以下のように表示されることを目標にします

//
//  Created by ${Author} on ${Date}
//  Copyright © ${Company/Project Name} All rights reserved.
//

固定の文字列ではなく、日付や作成者などは以下のマクロを利用することで、取得することができます

マクロ名表示項目メモ
1___USERNAME___ユーザー名macOSのログインユーザー名
2___DATE___日付
3___YEAR___
4___ORGANIZATIONNAME___組織名
Organizationについては、以下のように、Projectの設定の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のパスに配置しています

種類パス
1Project User Data<ProjectName>.xcodeproj/xcuserdata/<UserName>.xcuserdata/IDETemplateMacros.plist
2Project Shared Data<ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist
3Workspace User Data<WorkspaceName>.xcworkspace/xcuserdata/<UserName>.xcuserdata/IDETemplateMacros.plist
4Workspace Shared Data<WorkspaceName>.xcworkspace/xcshareddata/IDETemplateMacros.plist
5Xcode User Data$HOME/Library/Developer/Xcode/UserData/IDETemplateMacros.plist

SwiftPackageの場合

SPMのパッケージの場合、以下のパスに設定ファイルを配置しています

種類パス
1Package Shared Data<Package Root>/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDETemplateMacros.plist

前述の通り、Organizationの設定をGUI上でできないので、会社名やプロジェクト名を固定文字列を設定しています
またWorkspace内にPackageを配置している場合はWorkspaceの設定が優先され、Packageの単位でXcodeから開いた場合、SPMの設定が適用されるので、要注意です!

まとめ

今回はXcodeのヘッダーコメントの設定変更方法についてまとめました
特にxcodeprojxcworkspaceではなく、SPMの単位で開発する場合の設定方法はぱっと見ですぐに情報がまとめられていなかったので、方法が整理できたのはよかったです
最近はSPMのLocalPackageを使ったマルチモジュール開発が多いので、SPMで開発する場合の設定が通常のxcodeprojやxcworkspaceメインの開発と異なる場合が多いため、今回のヘッダーコメント以外にもそのような知見が追加で見つかれば、まとめていこうと思います

参考

  1. Xcodeで新規作成するファイルのヘッダーの内容をカスタマイズする
  2. Xcodeのデフォルトのヘッダーコメントのテンプレートを作成したい
+3

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA