2017-09-18 126 views
1

项目结构与基于PCL方法:Xamarin的iOS IPA文件大小问题

X项目(解决方案)

  • 核心(与autofac基于Ioc的安装基地项目)
  • 项目(90%代码共同为机器人和IOS)
  • Project.Droid(德罗伊德设置,渲染器和图形。)
  • Project.iOS(iOS的设置,渲染器和图形。)

我已经通过所有可能的选项来减少ipa文件大小。尤指与链接。 我已经使用'全部链接'和剥离调试代码,优化图像等。

最终Ipa大小为77 MB。

下面是探索包内容后文件大小的详细信息。我使用的拱形件7和64

Project.iOS是42 MB 这是困扰。因为我可以看到dll和图像以及这个文件。不知道为什么它占用这么多的空间。我可以缩小它的大小吗?这是我的首要任务

DLL的约15 MB (Xamarin表格,地图,其他的第三方库。由于我对7和64我看到libraryX.dll,libraryX.aotdata.arm64,libraryX目标。 aotdata.arm7) 这是对的我相信。

图像是大约20 MB

我打算通过使用“https://tinypng.com/”到flaten并把所有图像资产“减薄”进一步降低。也可能要使用按需资源选项,但其优先级较低

请让我知道。任何帮助/建议将非常感激。

Xamarin论坛链接:https://forums.xamarin.com/discussion/103470/xamarin-ios-file-size-is-too-big-tried-all-the-possible-options/p1?new=1

谢谢。

+0

您正在查看调试输出还是释放输出?如果这是您正在做的事情,请不要在调试输出上进行基准测试。 – Joagwa

+0

我正在寻找为发布而创建的ipa。谢谢 –

回答

1

没有太多的事情可以做到尽量减少你已经完成的部分的大小。 (链接/链接/调试代码)
Here您可以找到适用于减少应用程序大小的最佳做法列表,并且还有一个专门用于Linking on iOS的Xamarin部分。 (在运行时/限制结构中限制泛型/下载资源)

您可以挖掘哪些程序集是最需要空间的。
退房您构建的obj文件夹中的文件夹mtouch-cache

ls -laS *.o

在我的情况:

-rw-r--r-- 1 hichame.yessou staff 9276292 Sep 13 10:03 mscorlib.dll.o 
-rw-r--r-- 1 hichame.yessou staff 5741840 Sep 13 10:03 Newtonsoft.Json.dll.o 
-rw-r--r-- 1 hichame.yessou staff 5359900 Sep 13 10:13 ****.Core.dll.o 
-rw-r--r-- 1 hichame.yessou staff 4823812 Sep 13 10:03 System.Core.dll.o 
-rw-r--r-- 1 hichame.yessou staff 3929056 Sep 13 10:13 ****.iOS.exe.o 
-rw-r--r-- 1 hichame.yessou staff 3729004 Sep 13 10:03 NodaTime.dll.o 
-rw-r--r-- 1 hichame.yessou staff 3218980 Sep 13 10:03 System.Xml.dll.o 
-rw-r--r-- 1 hichame.yessou staff 3014548 Sep 13 10:03 System.dll.o 
-rw-r--r-- 1 hichame.yessou staff 2985844 Sep 13 10:03 Xamarin.iOS.dll.o 
-rw-r--r-- 1 hichame.yessou staff 2165576 Sep 13 10:03 Ninject.dll.o 
-rw-r--r-- 1 hichame.yessou staff 1686992 Sep 13 10:13 registrar.o 
-rw-r--r-- 1 hichame.yessou staff 1569908 Sep 13 10:03 System.Net.Http.dll.o 
-rw-r--r-- 1 hichame.yessou staff 903048 Sep 13 10:03 SQLite.Net.dll.o 
-rw-r--r-- 1 hichame.yessou staff 620200 Sep 13 10:03 ****-iOS.dll.o 
-rw-r--r-- 1 hichame.yessou staff 566972 Sep 13 10:03 ********.dll.o 
-rw-r--r-- 1 hichame.yessou staff 430432 Sep 13 10:03 ********.dll.o 
-rw-r--r-- 1 hichame.yessou staff 396776 Sep 13 10:03 SDWebImage.dll.o 
-rw-r--r-- 1 hichame.yessou staff 318632 Sep 13 10:03 ********.dll.o 
-rw-r--r-- 1 hichame.yessou staff 268884 Sep 13 10:03 SwipeTableCellBinding.dll.o 
-rw-r--r-- 1 hichame.yessou staff 235960 Sep 13 10:03 Flurl.dll.o 
-rw-r--r-- 1 hichame.yessou staff 232304 Sep 13 10:03 MonoTouch.******.dll.o 



其次,如果你试图建立一个 Xamarin.iOS项目它会导致一个37 MB的.ipa,所以我认为这是一个完整的项目77 MB的合理大小。
另外,仅限WiFi应用程序的App Store限制设置为100 MB。

+0

感谢您的详细回复。当我使用相同的PCL方法创建基本应用程序Project.iOS花费了28 MB。完整的项目是42MB。可能没有什么我可以在那里做的。我确实能够缩小图像的大小。它节省了65%的尺寸。现在ipa大概是60MB。 –

2

使用图标字体将有助于缩小IPA的大小,因为您可以用字体中的矢量图形替换多个图标版本。这种方法取得了很大的成功。 Details herealso here

+0

感谢您的建议。我遵循上面的方法,因为我只能从fontawesome中添加一些 –