- WSOFT Docs
-
あみうは
- あみうは
- 新学期が始まりました!
- 恋の相談
- プチコン3号で作ったのは?
- オススメの文庫
- マクドナルド最高!
- ios11β レビュー
- あみうはの歌について
- ついに自分のソフトウェアのホームページができました。
- Windowsタブレットをリセットして起動しなくなった人のために
- PCレスで YouTubeの曲を携帯mp3プレイヤーで聴く(iPhone)
- 食べられないラズベリーパイを買いました。(1)
- ラズベリーパイの下ごしらえ(2)
- 小説始めます~
- 女子がキュンとくる行動ベスト3!!
- MacとWindowsについてあまり知られていない事
- macでできる裏技
- ドコモの格安スマホ「MONO」買っちゃいました☆いい所をいくつか
- 『レビュー』iPhone6sを1年間使い続けて思ったこと
- iPhoneの拡大鏡に関するバクを発見しました。
- iPhoneで圧縮ファイルを作成したり解凍する方法
- Obscura2が今だけ無料!使い方まとめ
- Windowsタブレットがブルースクリーンになった時のメモ
- お知らせ
- ブログ
- 共同作成ガイド
- 法的資料
-
製品
- 製品
- PCMX
- WSOFTアカウント
- AliceScript
- AliceScript
- 謝辞
- ダウンロード
- Alice(キャラクター)
- AliceScriptのツアー
- Wikiの概要
- APIブラウザー
- APIブラウザー
- Alice
- delay
- exit
- function
- import
- include
- lock
- string_format
- using
- write
- Environment
- Exception
- Interpreter
- Math
- math_abs
- math_acos
- math_acosh
- math_atan
- math_atan2
- math_atanh
- math_bitdecrement
- math_bitincrement
- math_cbrt
- math_celling
- math_clamp
- math_copysign
- math_cos
- math_cosh
- math_e
- math_exp
- math_floor
- math_fusedmultiplyadd
- math_isprime
- math_max
- math_min
- math_pi
- math_pow
- math_round
- math_sin
- math_sinh
- math_sqrt
- math_tan
- math_tanh
- math_tau
- math_truncate
- Net
- Security
- Threading
- Array
- Bool
- Bytes
- Delegate
- None
- Number
- String
- Variable
- 変更履歴
- 基本
- Alice in Discord
- 相互運用
- チュートリアル
- ダウンロードセンター
- ほめて.ws
- アイコンメーカー
- WSOFTScript
- Unidet
- WebSailing
- WSNET
- WSTodon
- WSTube
- Lantana
- 生存報告
AlicePackage
この記事では、AlicePackageの仕様について説明します
AlicePackageは、プログラムのスクリプト、リソース、ライブラリやパッケージを含むAliceModelで実行できるアプリパッケージ形式です。
AlicePackageファイルはそのマジックナンバー「ICE」(16進表現で49 43 45
とパッケージタイプを表す1バイトで識別できます。
AlicePackageを作成する方法について知るには、パッケージのビルドを参照してください。
ファイル構造
AlicePackageのファイルフォーマットを以下に示します。
長さ | 内容 |
---|---|
4 | マジックナンバー |
1 | ファイルスイッチ |
3 | 予備領域 |
6 | 制御コード |
32 | 解凍用データ |
↓ | パッケージコンテンツ |
ファイルスイッチ
ファイルスイッチは、パッケージ前方にある8ビット(1バイト)の領域です。それぞれのビットには、パッケージの性質を表すフラグが含まれます。
ファイルスイッチ
インデックス | 内容 |
---|---|
1 | 署名済みパッケージの場合1 |
2 | (未使用) |
3 | (未使用) |
4 | (未使用) |
5 | (未使用) |
6 | (未使用) |
7 | (未使用) |
8 | (未使用) |
制御コード
AlicePackageのヘッダーに含まれる16バイトの領域は制御コードと呼ばれ、この領域を直接AliceModelが使用することはありません。しかし、AliceModelを実装するそれぞれのインタプリタによって使用される場合があります。この領域の標準的な使用方法はどのAliceModelの実装を使用しているかを識別するのに使用されます。
署名
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
をエントリポイントとして使用するには、次のように指定します。
<?xml version="1.0" encoding="utf-8"?>
<package>
<name>Hello,Package</name>
<script path="main.alice" />
</package>
インラインスクリプトは次のような形式になります。