「AlicePackage」の版間の差分

提供: AliceScript Wiki
ナビゲーションに移動 検索に移動
編集の要約なし
61行目: 61行目:
|(未使用)
|(未使用)
|}
|}
 
=制御コード=
AlicePackageのヘッダに含まれる16バイトの領域は制御コードと呼ばれ、この領域を直接[[AliceModel]]が使用することはありません。しかし、[[AliceModel]]を実装するそれぞれのインタプリタによって使用される場合があります。この領域の標準的な使用方法はどの[[AliceModel]]の実装を使用しているかを識別sるのに使用されます。
=署名=
=署名=
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageのファイルスイッチには1が立ちます。
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageのファイルスイッチには1が立ちます。

2022年4月25日 (月) 02:50時点における版

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

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

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

ファイル構造

AlicePackageの構造
長さ 内容
4 マジックナンバー
1 ファイルスイッチ
3 予備領域
16 制御コード
32 解凍用データ
パッケージコンテンツ

ファイルスイッチ

ファイルスイッチは、パッケージ前方にある8ビット(1バイト)の領域です。それぞれのビットには、パッケージの性質を表すフラグが含まれます。

ファイルスイッチ
インデックス 内容
1 署名済みパッケージの場合1
2 (未使用)
3 (未使用)
4 (未使用)
5 (未使用)
6 (未使用)
7 (未使用)
8 (未使用)

制御コード

AlicePackageのヘッダに含まれる16バイトの領域は制御コードと呼ばれ、この領域を直接AliceModelが使用することはありません。しかし、AliceModelを実装するそれぞれのインタプリタによって使用される場合があります。この領域の標準的な使用方法はどのAliceModelの実装を使用しているかを識別sるのに使用されます。

署名

AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageのファイルスイッチには1が立ちます。

署名するAlicePackageには、パッケージコンテナの最上部にcertificate.pfxファイルを(このままの名前で)配置する必要があります。PFXファイルは、パッケージの検証に必要な証明書を表すファイルです。署名の検証はパッケージマニフェストファイルが読み込まれる前に読み込まれます。

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

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

<?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属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。例えば、別のスクリプトファイルであるmain.aliceをエントリポイントとして使用するには、次のように指定します。

<script path=“main.alice” />