Apple の iOS 開発者ガイドラインには次のように記載されています。
3.3.2 — アプリケーション自体は、プラグイン アーキテクチャの使用、他のフレームワーク、他の API の呼び出しなどを含むがこれらに限定されない方法で、他の実行可能コードをインストールまたは起動することはできません。Apple の文書化された API および組み込みのインタープリターによって解釈および実行されるコードを除き、解釈されたコードをダウンロードしたり、アプリケーションで使用したりすることはできません。
たとえば、XML や画像、ゲーム レベルの説明などのデータを実行時にダウンロードできると仮定すると(私の印象では?)、「データ」と「コード」の境界線はどこにあるのか疑問に思います。インタラクティブな「プレゼンテーション」をユーザーに配信するアプリのシナリオを想像してみてください (たとえば、アンケートなど)。プレゼンテーションはサーバーに継続的に追加され、さまざまなユーザーがさまざまなプレゼンテーションを利用できるようになるため、最初のアプリのダウンロードの一部にすることはできません (これが重要な点です)。これらは XML 形式で記述されていますが、対話型であるため、この種の条件付き分岐が含まれる場合があります (例として疑似形式で示されています)。
<options id="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
</options>
<branches id="Gender">
<branch value="1">
<image src="Man" />
</branch>
<branch value="2">
<image src="Woman" />
</branch>
</branches>
この XML が解釈され、アプリ内で「再生」されると、上記は 2 つのステップで表示されます。最初に選択画面が表示され、ユーザーは 2 つの選択肢 (「男性」または「女性」) のいずれかをクリックできます。次に、画像が [動的にダウンロード] され、前のステップでの選択に基づいて表示されます。
ここから、追加のタグを想像するのは簡単で、さらにロジックを記述します。たとえば、包含タグを追加できます。
<loop count="3">
<options... />
<branches... />
</loop>
ここでの結果は、もちろん、選択画面/画像画面のペアが 3 回連続して表示されることになります。
または、ゲームのレベルを記述する形式を想像してみてください。それを受動的な「データ」と見なすのは当然かもしれませんが、たとえば、ユーザーが通過できるいくつかの出入り口が含まれていて、さまざまなトリガー、トラップ、ポイントなどがそれらに接続されている場合は、スクリプト (または、実際には解釈されたコード) - 実行シーケンス、オプション、およびそれらの条件付き応答を記述するには?
データの解釈エンジンが既にアプリに存在し、そのような「プレゼンテーション」はアプリでのみ使用できる (作成または編集できない) と仮定すると、これは Apple の iOS ガイドラインにどのように違反しますか? この意味で、XML は基本的にスクリプト言語を構成するのではないでしょうか (インタープリター言語のプログラムは XML で記述できません)。
プロプライエタリなスクリプト言語 (上記で使用されている XML を参照) が厳密にサンドボックス化され (どのように判断できるのでしょうか?)、オペレーティング システムへのアクセスがまったく許可されていない (ただし、アンケートやゲームなどのコンテンツをダウンロードできる) 場合は問題ありません。レベル - 動的にアップロードするだけでなく、結果 - 回答またはスコア - をオーサリング サーバーにアップロードします)?
ラインはどこに行きますか?