「AlicePackage」の版間の差分

提供:AliceScript Wiki
ナビゲーションに移動 検索に移動
29行目: 29行目:
 
|パッケージコンテンツ
 
|パッケージコンテンツ
 
|}
 
|}
 +
=ファイルスイッチ=
 +
ファイルスイッチは、パッケージ前方にある8ビット(1バイト)の領域です。それぞれのビットには、パッケージの性質を表すフラグが含まれます。
  
 +
{| class="wikitable"
 +
|+ファイルスイッチ
 +
|インデックス
 +
|内容
 +
|-
 +
|1
 +
|署名済みパッケージの場合1
 +
|-
 +
|2
 +
|(未使用)
 +
|-
 +
|3
 +
|(未使用)
 +
|-
 +
|4
 +
|(未使用)
 +
|-
 +
|5
 +
|(未使用)
 +
|-
 +
|6
 +
|(未使用)
 +
|-
 +
|7
 +
|(未使用)
 +
|-
 +
|8
 +
|
 +
|}
 
=署名=
 
=署名=
 
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageの制御コードの末尾には<code>0x53</code>が入ります。
 
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageの制御コードの末尾には<code>0x53</code>が入ります。

2022年2月15日 (火) 11:46時点における版

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

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

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

すべてのパッケージは、パッケージコンテナの最上部に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属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。