mikan_daisuki’s blog

IT系サラリーマンの日記。前職ではスマホゲームを、現在はアプリを作ってます。



iOSでビルドしたら、dllがでかすぎてXcodeでエラー

ドキュメントのしたの方にあった。。

Xcode throws compilation error: "ld : unable to insert branch island. No insertion point available. for architecture armv7", "clang: error: linker command failed with exit code 1 (use -v to see invocation)"

このエラーは通常、ひとつのモジュールにコードが多すぎることを意味します。典型的には多くのスクリプトコードがあること、または大きな .NET アセンブリがビルドに含まれることに起因します。そしてスクリプト デバッギング を有効化することで状況はさらに悪化するかもしれず、いくつかの追加指示を各々の関数に加えるため、より多くに制限にヒットするようになります。

この問題の解決にはマネージド コード ストリッピングを有効化することで役立つ場合があり、特に おおきな.NET アセンブリがカラム場合です。しかし、もしこの問題が継続的に発生する場合、もっとも良い解決策はユーザのスクリプトのコードを複数アセンブリに分割することです。その最も簡単な方法はコードを Plugins フォルダに移動することです。この場所にあるコードは別のアセンブリに含まれます。さらにこれらのスクリプト コンパイル ガイドラインもチェックして下さい:



これが結構大変だった。。
ちゃんと依存関係を意識して、最初から分割すべきだった。気をつけよ。