「AlicePackage」の版間の差分
ページの作成:「AlicePackageは、プログラムのスクリプト、リソース、ライブラリやパッケージを含むZipファイルを符号化したものです。」 |
編集の要約なし |
||
(同じ利用者による、間の44版が非表示) | |||
1行目: | 1行目: | ||
[[Category:基本]] | |||
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/alice-package/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} | |||
AlicePackageは、プログラムのスクリプト、リソース、ライブラリやパッケージを含むAliceModelで実行できるアプリパッケージ形式です。 | |||
AlicePackageファイルはそのマジックナンバー「ICE」(16進表現で<code>49 43 45</code>とパッケージタイプを表す1バイトで識別できます。 | |||
AlicePackageを作成する方法について知るには、[[パッケージのビルド|チュートリアル:パッケージのビルド]]を参照してください。 | |||
=ファイル構造= | |||
{| class="wikitable" | |||
|+AlicePackageの構造 | |||
|長さ | |||
|内容 | |||
|- | |||
|4 | |||
|マジックナンバー | |||
|- | |||
|1 | |||
|ファイルスイッチ | |||
|- | |||
|3 | |||
|予備領域 | |||
|- | |||
|16 | |||
|制御コード | |||
|- | |||
|32 | |||
|解凍用データ | |||
|- | |||
|↓ | |||
|パッケージコンテンツ | |||
|} | |||
=ファイルスイッチ= | |||
ファイルスイッチは、パッケージ前方にある8ビット(1バイト)の領域です。それぞれのビットには、パッケージの性質を表すフラグが含まれます。 | |||
{| class="wikitable" | |||
|+ファイルスイッチ | |||
|インデックス | |||
|内容 | |||
|- | |||
|1 | |||
|署名済みパッケージの場合1 | |||
|- | |||
|2 | |||
|(未使用) | |||
|- | |||
|3 | |||
|(未使用) | |||
|- | |||
|4 | |||
|(未使用) | |||
|- | |||
|5 | |||
|(未使用) | |||
|- | |||
|6 | |||
|(未使用) | |||
|- | |||
|7 | |||
|(未使用) | |||
|- | |||
|8 | |||
|(未使用) | |||
|} | |||
=制御コード= | |||
AlicePackageのヘッダに含まれる16バイトの領域は制御コードと呼ばれ、この領域を直接[[AliceModel]]が使用することはありません。しかし、[[AliceModel]]を実装するそれぞれのインタプリタによって使用される場合があります。この領域の標準的な使用方法はどの[[AliceModel]]の実装を使用しているかを識別sるのに使用されます。 | |||
=署名= | |||
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageのファイルスイッチには1が立ちます。 | |||
署名するAlicePackageには、パッケージコンテナの最上部に<code>certificate.pfx</code>ファイルを(このままの名前で)配置する必要があります。PFXファイルは、パッケージの検証に必要な証明書を表すファイルです。署名の検証はパッケージマニフェストファイルが読み込まれる前に読み込まれます。 | |||
=パッケージマニフェストファイル= | |||
すべてのパッケージは、パッケージコンテナの最上部に<code>manifest.xml</code>ファイルを(このままの名前で)配置する必要があります。パッケージマニフェストファイルは、パッケージに関する情報をビルドツールやAlice.Interpreterに説明するものです。まずは次の例を参照してください。 | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<package> | |||
<name>Hello,Package</name> | |||
<version>1.0</version> | |||
<publisher>WSOFT</publisher> | |||
<description>Hello,World!とだけ表示します</description> | |||
<script> | |||
print("Hello,World!"); | |||
</script> | |||
<target>any</target> | |||
</package> | |||
パッケージマニフェストファイルは、XML形式で、少なくとも次の情報を記述する必要があります。 | |||
*Name属性 | |||
Name属性は、このパッケージの名前を表します。 | |||
*Script属性 | |||
Script属性は、このパッケージのエントリポイントを表します。このパッケージが読み込まれたとき、AliceScriptインタプリンタはエントリポイントに記述された内容を順番に実行します。 | |||
Script属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。例えば、別のスクリプトファイルである<code>main.alice</code>をエントリポイントとして使用するには、次のように指定します。 | |||
<script path=“main.alice” /> |