Xcode のプロジェクトテンプレートと UTF-8

Cocoaに関するヌマタメモ
2007年10月 8日 00:00

オリジナルの Xcode のプロジェクトテンプレートを作るには、この辺りに書いてあるように、/Library/Application Support/Apple/Developer Tools/Project Templates/ に自分のプロジェクトファイルを入れれば良い。

ソースコードの中で新しいプロジェクト名やユーザ名、日付といった文字列を上書きしたい場合には、ソースコードのその箇所に「«PROJECTNAME»」「«PROJECTNAMEASIDENTIFIER»」「«FULLUSERNAME»」「«DATE»」「«YEAR»」といった文字列(マクロ)を埋め込んでおけば良い。「«」と「»」は、option+] および option+shift+] で入力できる。マクロについては、この辺りのリストが参考になる(「Xcode」「PROJECTNAMEASIDENTIFIER」あたりの文字列で Google した。「PROJECTNAMEASIDENTIFIER」は Core Data のプロジェクトテンプレートに書いてあった)。

ただし、これはソースコードが「MacOS Roman」であることが前提である。現代の日本人の場合、UTF-8 を選択することが多いと思われるので、ここで注意が必要となる。

Xcode は、新しいプロジェクトを作成するときに、「~.xcodeproj」パッケージの中に入っている「TemplateInfo.plist」ファイルを見て、そこに「FilesToMacroExpand」として列挙されているファイルの中身を書き換えようとする。ここで書き換えられるのは、「文字列」ではなく、「MacOS Roman でのその文字列のバイナリ表現」であることに注意が必要となる。

MacOS Roman では、「«」「»」はそれぞれ 0xc7、0xc8 である。これに対し、UTF-8 ではどちらも 0xc2ab、0xc2bb という2バイト表現になる。なので、UTF-8 で書いたソースコードのマクロは、そのままでは変換されない。

対処療法でしかないが、UTF-8 で「c2 ab」「c2 bb」となっているところを、バイナリエディタで「c7」「c8」と書き換えれば、Xcode がちゃんと変換してくれるようになる。

専用のアプリケーションを書いたら便利だろうなあ(遠い目)。

コメントを書く


トラックバックはありません。

トラックバックURL: http://numata.designed.jp/mt-tb.cgi/284