Xcodeプロジェクトの新規作成時にやること個人的まとめ
はじめに
Xcodeプロジェクトの新規作成時に毎回やること(GitHubテンプレートを作成してもよい)が、個人的にも毎年少しずつ変わってきているので、とりあえず2025年1月現在にやっていることをここにまとめます。
.gitignore
GitHubから新規作成するなら、GitHubのデフォルトの .gitignore
を使ってもいいです。
とはいえ個人的には相変わらず gitignore.io
を使っています。
インストール方法
端末ごとに1回だけ、次のコマンドラインを実行すると、gitignoreを生成するためのツールがインストールされます。
echo "function gi() { curl -sLw \"\\\n\" https://www.toptal.com/developers/gitignore/api/\$@ ;}" >> \
~/.zshrc && source ~/.zshrc
https://docs.gitignore.io/install/command-line#macos より引用
使い方
プロジェクトのルートディレクトリで、次のコマンドラインを実行すると、Swift言語の設定が .gitignore
ファイルに追加されます。
gi swift >> .gitignore
https://docs.gitignore.io/use/command-line より引用
.editorconfig
Xcode16からEditorConfigがサポートされました。
何がいいかというと、例えばインデント設定について、同時進行しているプロジェクトで、それぞれインデント設定が4つだったり、2つだったりバラバラの場合がありえますよね。そのときにこれまでは、プロジェクトを変えるごとに、Xcodeの環境設定から、インデント設定を手動でぽちぽち切り替えていたことと思いますが、その手作業が不要になります。 .editorconfig
を各プロジェクトに置くことで、EditorConfigがXcodeの環境設定のエディター関係の設定を上書きしてくれるからです。
引用
Source Editor
New Features
Added support for EditorConfig. The editor now respects indentation settings given in .editorconfig files. Xcode supports the following settings: indent_style, tab_width, indent_size, end_of_line, insert_final_newline, max_line_length, and trim_trailing_whitespace. See https://editorconfig.org for more information. Settings from .editorconfig files normally take precedence over settings given in the “Text Editing” section of View > Inspectors > File for a file or group. This can be disabled by unchecking the “Prefer Settings from EditorConfig” checkbox on the Indentation tab of Xcode > Settings > Text Editing. (20796230)
(日本語訳)EditorConfigのサポートが追加されました。エディターは、.editorconfigファイルで与えられたインデント設定を尊重するようになりました。Xcodeは、次の設定をサポートしています:indent_style、tab_width、indent_size、end_of_line、insert_final_newline、max_line_length、およびtrim_trailing_whitespace。詳細については、https://editorconfig.orgを参照してください。.Editorconfigファイルからの設定は、通常、ファイルまたはグループの[表示]>[インスペクタ]>[ファイルの[テキスト編集]]セクションで指定された設定よりも優先されます。これは、Xcode > 設定 > テキスト編集の [インデント] タブの [EditorConfig からの設定] チェックボックスをオフにすることで無効にできます。(20796230)
.editorconfigの例
# EditorConfig is awesome: https://editorconfig.org
[*.swift]
indent_style = space
tab_width = 4
indent_size = 4
end_of_line = crlf
insert_final_newline = true
max_line_length = 120
trim_trailing_whitespace = true
参考資料
詳しくは次の記事が参考になります。
プルリクエストテンプレート
個人開発の場合も、なんだかんだわかりやすいのでプルリクエストテンプレートを設定しています。
過去には詳細なテンプレートを作成していたこともありましたが、今はすごくシンプルなものに落ち着いています。
.github/pull_request_template.md
## 要件・仕様
## 処理概要
## 動作確認
## 特記
## 参考資料
参考資料
GitHub Docs > リポジトリ用のプルリクエストテンプレートの作成
String Catalog
ローカリゼーションのため、及び文言管理のために、String Catalogを利用します。
デフォルト名のまま「Localizable.xcstrings」を生成します。
Info.plist用のString Catalog
アプリの表示名(Bundle Display Name / CFBundleDisplayName)をローカライズしたい場合、String Catalogを利用し、名称を「InfoPlist.xcstrings」として生成します。
ファイルを生成して、ビルドをすると次のようになります。
整理すると、次のスクショのように、 .xcstrings
ファイルが2つ並ぶことになります。
README.md
タイトルと、少なくともソフトウェア要件を記載することにしています。
# タイトル
## ソフトウェア要件
- Xcode 16.2(16C5032a)
- Compiler Version: Swift 6
- Language Mode: Swift 6
- Minimum Deployments: iOS 18.2 〜
- Supported Destinations: iPhone, iPad
Build Settings
Versioning
[Marketing Version](アプリバージョンに相当) と [Current Project Version](ビルド番号に相当)を更新します。
特に要件がなければ複数TARGETSがあったとしても、同一のアプリバージョンで管理すればいいかと思いますので、私の場合は、TARGETSレベルに設定されている値を削除し、PROJECTレベルに記入しなおしています。
デフォルト値
変更後
やり方
TARGETSレベルに設定されている値を削除する方法は次のとおりです。
[Build Settings]タブで、TARGETSレベルを選び、対象の項目([Marketing Version]など)にフォーカスを当てた状態でdeleteキーを押します。
この状態でdeleteキーを押します
TARGETSレベルに設定されている値が削除されます
PROJECTレベルに記入する方法は、PROJECTレベルを選び、対象の項目([Marketing Version]など)の値の欄をダブルクリックして入力ポップアップを開き、値を入力します。
ダブルクリックして入力ポップアップを開き、値を入力します
Swift Language Version
[Swift Language Version](Swift Language モードに相当)を、新規プロジェクトの場合はSwift6に最新化します。デフォルトでSwift5なのですよね。
これも私の場合は、TARGETSレベルに設定されている値を削除し、PROJECTレベルに記入しなおしています。
デフォルト値
変更後
今後
今後も随時更新していきます。
かつて SwiftFormat を使っていたところもswift-formatに差し替えて取り入れたい。
Discussion