cuiをMacでアプリ化する為のファイル構成

Page content

亀屋BLOGさんのPC-98えみゅでCUI版PC98エミュの紹介がされていたのでコンパイルして見たら、動いた!!

それで、これいちいち動かすのにコマンドラインからたたくのも面倒だと思い、アプリ化する方法を調べてたのでまとめておく。

フォルダ構成

フォルダ構成はこんな感じ

np2
└── Contents
├── Info.plist
├── MacOS
│   └── sdlnp21kai <- バイナリ
└── Resources
	└── np2.icns --- アイコン48×48

File

Info.plist

<?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>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>CFBundleExecutable</key>
	<string>sdlnp21kai</string>
	<key>CFBundleDisplayName</key>
	<string>np2</string>
	<key>CFBundleName</key>
	<string>np2</string>
</dict>
</plist>

一覧

キー概要
CFBundleSignatureStringバンドルのクリエータを識別する四文字コードです
CFBundlePackageTypeStringバンドルのタイプを識別する、四文字のコードです。
CFBundleVersionStringバンドルのためのビルドバージョン番号です。
CFBundleExecutableStringバンドル実行可能ファイルの名前です。
CFBundleDisplayNameStringバンドルの実際の名前です。
CFBundleNameStringバンドルの短縮表示名です。

詳細

CFBundleSignature

このキーは、バンドルのクリエータを識別し、Mac OS 9 のファイルクリエータコードと類似しています。このキーの値は、バンドルを指定する四文字のコードを含む文字列です。たとえば、テキストエディット アプリケーションのためのシグネチャは、ttxt です。

CFBundlePackageType

このキーは、バンドルのタイプを識別し、Mac OS 9 のファイルタイプコードに類似しています。

このキーの値は四文字のコードから構成されています。アプリケーションに対するタイプコードは APPL、フレームワークは FMWK、読み込み可能バンドルは BNDL となります。読み込み可能バンドルについては、あなたが望むのであれば、 BNDL よりももっと具体的なタイプコードを選択することもできます。

CFBundleVersion

このキーは、バンドルの(リリースされた、またはリリースされていない)回数を識別する、バンドルのビルドバージョン番号【build version number】を指定します。【注:「CFBundleShortVersionString」の方は、「リリース」バージョン番号。】

これは、一つかそれ以上のピリオドで区切られた整数から構成される、単調増加文字列です。このキーは各国語化できません。

CFBundleExecutable

このキーはバンドルの主な実行可能ファイルの名前を識別します。

アプリケーションの場合、これはアプリケーション実行可能ファイルとなります。

読み込み可能バンドル【loadable bundle】の場合、これはバンドルによって動的に読み込まれるバイナリとなります。

フレームワークの場合、これはフレームワークのための共有ライブラリとなります。

Xcode は、このキーを自動的に、適切なプロジェクトのインフォメーションプロパティリスト ファイルへ追加します。

フレームワークの場合、このキーの値はフレームワーク名から .framework 拡張子を除いたものと同一にする必要があります。もしキーが同じでないと、目標のシステムは起動性能に関する理由のために、起動性能のペナルティを引き起こすことがあります。

値には、名前にいかなる拡張子も含めるべきではありません。

CFBundleDisplayName

このキーは、バンドルの表示名を指定します。もしあなたのバンドルの各国語化された名前に対応するのであれば、あなたのインフォメーションプロパティリスト ファイルと、あなたの言語サブディレクトリの InfoPlist.strings ファイルの両方にこのキーを含めてください。

もしあなたがこのキーを各国語化するのであれば、CFBundleName キー【バンドルの短縮名】の各国語化バージョンも含めるべきでしょう。

もし、あなたのバンドルを各国語化することを意図していなければ、このキーをあなたのInfo.plist ファイルに含めてはいけません。このキーを含むことは、バンドル名の表示には影響を与えませんが、このキーの各国語化されたバージョンを捜すための性能上のペナルティを引き起こします。

あなたのバンドルの各国語化された名前を表示する前に、Finder はこのキーの値を、ファイルシステムにおけるあなたのバンドルの実際の名前と比較します。

もし二つの名前が一致すれば、Finder はあなたのバンドルの適切な InfoPlist.strings ファイルからの各国語化された名前の表示を続行します。

もし一致しなければ【たとえばユーザの手によりアプリケーションバンドルの名前が変更された場合】、Finderはファイルシステムにおける名前を表示します。

CFBundleName

このキーは、バンドルの短縮名を識別します。この名前は長さを16文字以下とし、メニューバーやアプリケーションの情報ウインドウにおける表示のために適切なものとする必要があります。

あなたは、このキーに対する各国語化された値を提供するために、適切な .lproj サブディレクトリの InfoPlist.strings ファイル内にこのキーを含めることができます。

もしこのキーを各国語化するのであれば、「CFBundleDisplayName」キー【バンドルの短縮していない名前】も含めるべきでしょう。

参考: http://potting.syuriken.jp/potting_conv/BPRuntimeConfig_J/chapter1.html