4

Xamarin.iOS は AdHoc/AppStore 用にビルドするときにこれを行いますか? シミュレーターをサポートするアーキテクチャを持つ多くの静的/脂肪ライブラリにバインドしています。未使用のアーキテクチャは AdHoc/AppStore 用に取り除かれていますか?

4

1 に答える 1

4

短い答え:はい

長い答え:

Xamarin のリンカーはマネージドリンカーですが (マネージド コードでのみ動作します)、余分なアーキテクチャは最終的な実行可能バイナリから削除されます。これは i386 に当てはまりますが、ARMv7 のみの実行可能ファイルの ARMv6 を (ライブラリから) 削除する場合にも当てはまります。

また、多くのバインディングを含めているため、次のことが必要になる場合があります。

  • バインディング .dll でマネージ リンカーを有効にします。これにより、未使用のコードが .dll から削除され、バインディングも最適化されます。[LinkerSafe]これは、バインディング プロジェクトに属性を追加することで簡単に行うことができます。と

  • 新しい静的レジストSmartLink=trueラーを有効にして、[LinkWith]属性に含めます。これにより、ネイティブリンカがネイティブ コードをより適切に削除できるようになります (未使用のコードがバインド .dll から削除された場合は、さらに簡単になります)。

どちらのオプションでも、最終的なアプリケーション サイズを縮小できます。詳細については、高度な iOS ビルドの仕組みに関するEvolve 2013の講演をご覧ください。

于 2013-11-13T18:20:08.510 に答える