この文書はDr. Corran WebsterさんによるW Widgetsを真似て、W Widgetsに説明されたMyApp.pyを使ってMacアプリを作る方法をわたし吉村が説明したもの、のPart3です。
誤っているところや、おかしいところがあるかもしれません。お気づきの点がございましたら、わたしまでお知らせいただければ幸いです。
スクリプトファイルに書いたバージョン情報をrsrcファイルに書き込むスクリプトをPythonで作りましたので、その説明をします。あまり役に立たないし、ここまでいちいちアプレットを作る人もいないと思いますが。。。よろしかったら、このスクリプトを開いてブラウザの「別名で保存...」でテキストファイルとして保存するか、「リンクをダウンロード」などで保存してご自由にお使いください。
アプレット/アプリケーションのためにオリジナルのアイコンなどを作るには、MyApp.rsrcを作らなければなりません。しかし、何度もスクリプトを改訂したりする場合には「MyApp.pyでMacアプリを作るPart2」の要領でMyApp.rsrcにResEditを使って作成日などのバージョン情報をいちいち書き込むのは面倒です。リソースファイルのバージョン情報とか作成日なんて昔のままにほったらかしになってしまいます。
そこで、スクリプトファイル(以下、これをソースファイルと呼びます)に書いた情報をrsrcファイルのversリソースID1、2に書き込むスクリプトをPythonで作りました。その使い方の説明をします。スクリプトはあまりきれいに書いてませんし、リソースのことを詳しく知らないのですが、versリソースを苦労して調べたので何かお役にたてば幸いです。詳しくはスクリプトファイルをご覧ください。
Pythonのソースファイル(例えばMyApp.py)に以下の行を加えてください。
__version__ = "0.8"
__author__ = "Hiroyuki Yoshimura"
__date__ = "2001/11/6"
__appname__ = "App"
これらの2重引用符の中("〜")は例です。イコールの左側は、空白を一つ入れてください。
__version__
は、ResEditのVersion Numberに合うように
"2桁までの数字 [. 1桁の数字 [. 1桁の数字] ] "
にしてください。例えば、
__version__ = "0"
__version__ = "0.1"
__version__ = "0.1.2"
__version__ = "1"
__version__ = "1.2"
__version__ = "1.2.3"
__version__ = "12"
__version__ = "12.3"
__version__ = "12.3.4"
他の__author__、__date__、__appname__はそれぞれが示すようなものを想定していますが、文字列であれば多少長くても大丈夫だと思います(256文字以上でも。たぶん)。
スクリプトは、同じディレクトリにリソースファイルがなければダイアログを出して、実行を中止します。例えば"MyApp.py"なら、同じディレクトリにリソースファイル"MyApp.rsrc"がなければなりません。なければ、ResEditで"MyApp.rsrc"を作ってください。この"MyApp.rsrc"にversリソースがなくても動作します。そういう名前のファイルがあれば(ResEdit書類でなくても)動作します。
スクリプトを実行します。
スクリプトをPythonInterpreterにドロップするか、スクリプトのクリエータを"Pyth"にしてダブルクリックするか、スクリプトをアプレットにビルドして使うといいと思います。アプレットにすると、ソースファイルをアプレットにドロップして実行できるようにしてあります。
スクリプトを実行するとファイルダイアログが出ますので、MyApp.pyを選びます。すると、MyApp.pyに先ほど書いた情報を読み取り、rsrcファイルのversリソースID1、2に書き込みます。すでにversリソースID1、2がある場合には上書きします。
書き込みが終わったと、ダイアログが出ます。英語は自信ありません。
続けてAppletへビルドするか尋ねるダイアログが出ます。Yesを選ぶとソースファイルをAppletへビルドして終了します。NoあるいはCancelを選ぶとビルドせず、終了します。
MyApp.rsrcのversリソースのID1、2はそれぞれ以下のようになります。
Long Version stringの中の"v0.1"の"v"と"©"はスクリプトが自動的に書き込んでいます。変更したい場合はスクリプトを書き替えてください。また、Release、Non-Release、Country Codeを変更したい場合もスクリプトをご自由に書き替えてご使用ください。
スクリプトの実行によって何が起きても責任は取れませんが、動作がおかしい点などご指摘いただければ幸いです。スクリプトの中身はけっこう汚いです。