¿Las aplicaciones de iOS de Xamarin están hinchadas de manera irracional?

Estoy desarrollando una aplicación razonablemente simple con Xamarin iOS y el tamaño más pequeño que he obtenido para el file .app es de 13.5 MB.

He realizado todas las optimizaciones recomendadas, sin símbolos de debugging, generación de código LVVM, thumb-2, enlace a todos los ensamblajes, solo architecture única (ARMV7).

La primera pregunta es, ¿mi sonido de 13.5 MB parece algo esperado de Xamarin iOS, o es probable que esté haciendo algo mal?

La segunda pregunta es, ¿cuánta sobrecarga de tamaño extra agrega Xamarin iOS a una implementación nativa equivalente (más o less)?

La tercera pregunta es, ¿qué tan pequeño puede comstackrse una aplicación Hello World para utilizar Xamarin iOS?

La cuarta pregunta es, ¿qué tan pequeño puede comstackrse una aplicación Hello World nativa?

El .dSYM es un directory que incluye símbolos de debugging. Esto no es algo que está enviando como parte de su aplicación (a sus usuarios finales). Tenga en count que esto se produce incluso en comstackciones que no son de debugging, ya que le permite simular los informes de fallos (que proviene de los usuarios finales que ejecutan el binary de versión ).

Para el tamaño real de la aplicación, necesita mirar el directory .app .

Puede aprender bastantes trucos para networkingucir el tamaño de su aplicación (y time de compilation) al ver este año Evolve video Advanced iOS Build mechanics . Eso también responderá a las otras preguntas que tuviste.

Las aplicaciones de Xamarin son un poco más grandes en el modo de lanzamiento, como era de esperar. Como ejemplo, mirando mis files binarys de dos aplicaciones de envío, los files binarys + dll son de alnetworkingedor de 12 my 18 m (creo que necesito investigar por qué el de 18 m es mucho más grande …). Supongo que si hubiera hecho esto en el objective c, habrían sido alnetworkingedor de la mitad de ese tamaño, debido a la experiencia previa en la creación de aplicaciones nativas.

Si ejecuta versiones de hardware de debugging, son enormes . el ejemplo de los 12 m arriba muestra saltos de hasta 96 M (?) para binary + dlls. Antes de verificarme esto, tuve en mi cabeza que duplicaron su tamaño para lidiar con el depurador de software, pero supongo que hay muchas otras porquerías que no conocía.