「AlicePackage」の版間の差分

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

2023年6月29日 (木) 01:43時点における最新版


この記事のより新しい版がWSOFTDocsにあります。AliceScriptWikiでは、この記事はもう更新されません。

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

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ファイルを(このままの名前で)配置する必要があります。パッケージマニフェストファイルは、パッケージに関する情報をビルドツールや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属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。例えば、別のスクリプトファイルであるmain.aliceをエントリポイントとして使用するには、次のように指定します。

<script path=“main.alice” />