AlicePackage

2022年1月26日 (水) 04:09時点におけるMaster (トーク | 投稿記録)による版

AlicePackageは、プログラムのスクリプト、リソース、ライブラリやパッケージを含むAliceScriptアプリパッケージ形式です。

AlicePackageファイルはそのマジックナンバー「ICE」(16進表現で49 43 45とパッケージタイプを表す1バイトで識別できます。

AlicePackageを作成する方法について知るには、チュートリアル:パッケージのビルドを参照してください。

ファイル構造

AlicePackageの構造
長さ 内容
4 マジックナンバー
16 制御コード
32 署名
32 解凍用データ
パッケージコンテンツ

署名

AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageの制御コードの末尾から6バイトには、0x53 0x44、PSKファイルの長さ(4バイト)が入ります。

パッケージマニフェストファイル

すべてのパッケージは、パッケージリソースセットの最上部にmanifest.xmlファイルを(このままの名前で)配置する必要があります。パッケージマニフェストファイルは、パッケージに関する情報をビルドツールやAliceScriptインタプリンタに説明するものです。まずは次の例を参照してください。

<?xml version="1.0" encoding="utf-8"?>
<ice:package xmlns:ice="http://schemas.wsoft.gq/alice/ice">
 <ice:name>Hello,Package</ice:name>
 <ice:version>1.0</ice:version>
 <ice:publisher>WSOFT</ice:publisher>
 <ice:description>Hello,World!とだけ表示します</ice:description>
 <ice:script>
   print("Hello,World!");
 </ice:script>
 <ice:target>any</ice:target>
</ice:package>

パッケージマニフェストファイルは、XML形式で、少なくとも次の情報を記述する必要があります。

  • Name属性

Name属性は、このパッケージの名前を表します。

  • Script属性

Script属性は、このパッケージのエントリポイントを表します。このパッケージが読み込まれたとき、AliceScriptインタプリンタはエントリポイントに記述された内容を順番に実行します。 Script属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。