Xamarin.iOS は AdHoc/AppStore 用にビルドするときにこれを行いますか? シミュレーターをサポートするアーキテクチャを持つ多くの静的/脂肪ライブラリにバインドしています。未使用のアーキテクチャは AdHoc/AppStore 用に取り除かれていますか?
質問する
222 次
1 に答える
4
短い答え:はい
長い答え:
Xamarin のリンカーはマネージドリンカーですが (マネージド コードでのみ動作します)、余分なアーキテクチャは最終的な実行可能バイナリから削除されます。これは i386 に当てはまりますが、ARMv7 のみの実行可能ファイルの ARMv6 を (ライブラリから) 削除する場合にも当てはまります。
また、多くのバインディングを含めているため、次のことが必要になる場合があります。
バインディング .dll でマネージ リンカーを有効にします。これにより、未使用のコードが .dll から削除され、バインディングも最適化されます。
[LinkerSafe]
これは、バインディング プロジェクトに属性を追加することで簡単に行うことができます。と新しい静的レジスト
SmartLink=true
ラーを有効にして、[LinkWith]
属性に含めます。これにより、ネイティブリンカがネイティブ コードをより適切に削除できるようになります (未使用のコードがバインド .dll から削除された場合は、さらに簡単になります)。
どちらのオプションでも、最終的なアプリケーション サイズを縮小できます。詳細については、高度な iOS ビルドの仕組みに関するEvolve 2013の講演をご覧ください。
于 2013-11-13T18:20:08.510 に答える