CF2.5 フリー版で HTML5 ビルドが動作しない場合、まとめ(過去ログ)


フリー版の CF25 から HTML5 ビルドで失敗する場合の対処について。

※注意:最新版の R283.5 では以下バグは修正されています。この記事の内容は最新版ファイルでは発生しません。古いファイルを使ってフリー版をインストールしている方は、本家のダウンロードリンクから最新版をダウンロードしてください。[2014.11.28:追記]
関連:フリー版 CF2.5 /バグフィックスされた最新版が公式配布

キーボードからのショートカットは CTRL+F8 が「 Build & Run (ビルドしてから実行)」。現在これを実行した場合に何もビルドされない症状が確認されている。Windows XP で動作確認したら実際ビルドに失敗する環境を作ることができた。

HTML5 の「 Build & Run (ビルドしてから実行)」は MMF2 では一般的だった PC 用の「 Build & Run 」とは動作が異なっている。

CF25 のフリー版では HTML5 をビルドした後ローカル環境に簡易ウェブサーバを建ててそこで HTML5 がブラウザ経由で実行される仕様だ。

ビルドできない場合、対処法

まず MS VC2012 ランタイムの存在を確認し無ければこれをインストールする。

現状確認されているバグであり、フリー版にもアップデートが今後来るため build 283 以降でこのバグは解消される予定。

ダウンロード:Visual C++ Redistributable for Visual Studio 2012 Update 4

JRE および JDK はフリー版にインストールは不要

JRE と JDK はともに Java パッケージだがどちらもフリー版ではインストール不要。

これが必要になるのは「 Final Mode 」で、フリー版の HTML5 出力からは選択できないオプション。だからフリー版で Java は必要無い。

Html5_FinalMode

Dev 版のビルドオプション画面

その他の問題点

上記 MS VC 2012 Update 4 をインストールしてもビルドされない場合があるらしい。これについては現時点では再現性が不明なため回答が保留されています。なにか分かれば今後進展があるはず。
上記については Build 283.1 で解決した模様。以下文章はそれ外のバグについて。

フォルダ名にマルチバイト文字列(日本語)を用いた場合、ビルドされるけどローカルのウェブサーバがパスを認識できないためブランク(白紙)のウェブページがブラウザで表示されます。

プロジェクト名にマルチバイト(日本語)を用いた場合も同様の症状がでます。これらはビルドができない上記症状とはまた違ったバグで、ビルドは正常にできているけどローカルのサーバがパス及びファイル名の URLエンコードで失敗している可能性が高いです。

htmlt5Exporter_multibite_string_problems

ビルドはできるけど出力が白紙となるパス設定例

日本人の方が日本語使うのは至極当たり前なので、フォルダ名/ファイル名に日本語使う仕方ないです。

ただしウェブサーバにアップロードすることを考えた場合、日本語ファイル名及びパス名は避けるべきです。

Windows のファイルおよびフォルダ名は Unicode (UTF-16) で記録されていますが、これを Windows API などから呼び出す場合、各 Windows OS の言語設定に応じた標準文字コードに変換された値が返ります。日本語環境ではこのデフォルトが Shift_JIS となっています。

ブラウザや HTTP/ウェブは OS とはまた仕様が異なっていてマルチバイト文字列は URLエンコード/デコードして扱っています(URLエンコードはパーセントエンコーディングとも呼ぶ)。以下に例を示しますが、日本語を URLエンコードで 16 進数に符号化した場合、謎の文字列化しますがこれで正常です。

日本語表現=%93%FA%96%7B%8C%EA%95%5C%8C%BB

ややこしいことが嫌ならウェブサーバにアップロードする場合、日本語ファイル名及びフォルダ名の使用を排除し HTML5 アプリビルドでも使わない方が良いです。仕様を知らないとよけいにややこしい事態へ発展する可能性があります。

というわけでバグはバグなのですが、個人的にまったく困らないのでバグ報告はしてません。

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です