search
LoginSignup
1

More than 5 years have passed since last update.

posted at

updated at

Assertion failed on expression: 'success && actual == (UInt64)size'

いつものようにJenkinsでUnityアプリをビルドしていると、こんなエラーが。

Compiled shader 'TMPro/Distance Field (Surface)' in 18.91s
    gles (total internal programs: 90, unique: 50)
    gles3 (total internal programs: 90, unique: 71)
Assertion failed on expression: 'success && actual == (UInt64)size'

当該のシェーダーを見ても問題はないどころか、そもそもこんなassertを書いている箇所はありません。

…で、ざっくり言うと、

PCのハードディスクがいっぱいになった

が原因です。

調べたところ、たまたまこのシェーダーをコンパイルした瞬間にハードディスクがいっぱいになり、ファイルが書き込めず、想定と実際のファイルサイズが違ってしまったのでビルドスクリプトのassertで止まった、ということのようです。

特に自動ビルドPCには過去の成果物ファイルがたまったりしてHDDがいっぱいになりがちで、かつ、普段はログインしないPCなので確認がおろそかになります。注意しましょう。イマドキ500GB程度ではこころもとないですね…。

なお、Windowsで出力されるファイルが2GBを超えた場合などにも同じエラーが出ることがあったようなんですが、これはUnity5.3.0で解消されているようです。

[BUILDING] WINDOWS STANDALONE NOT BUILDABLE WHEN SHAREDASSETS FILE IS LARGER THAN 2GB
https://issuetracker.unity3d.com/issues/building-windows-standalone-not-buildable-when-sharedassets-file-is-larger-than-2gb

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1