基于PCL的方法的项目结构:
项目X(解决方案)
我已经通过了所有可能的选项来减少ipa文件的大小。特别是链接。 我使用'全部链接'并剥离调试代码,优化图像等。
最终ipa大小为77 MB。
以下是浏览包内容后文件大小的详细信息。我正在使用arch 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/”来展开并将所有图片资源放入“细化”,从而进一步减少。也可能想要使用按需资源选项但是它的低优先级
请告诉我。任何帮助/建议将非常感谢。
谢谢。
答案 0 :(得分:2)
使用图标字体有助于减小IPA的大小,因为您将使用字体中的矢量图形替换多个版本的图标。我用这种方法取得了很大的成功。 Details here和also here
答案 1 :(得分:1)
为了最大限度地减少已经完成的部分的大小,我们无法做到这一点。 (链接/链接/剥离调试代码)
Here您可以找到适用于减少应用程序大小的最佳做法列表,还有一个专用于Linking on iOS的Xamarin部分。 (在运行时/限制结构上限制泛型/下载资源)
你可以挖掘出哪些组件最容易占用空间
查看构建的mtouch-cache
文件夹的obj
文件夹:
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。