2017-09-18 19 views
1

프로젝트 구조 :자 마린 아이폰 OS IPA 파일 크기 문제

프로젝트 X (솔루션)

  • 코어 (IOC의 기반 설치에 대한 autofac와 자료 프로젝트)
  • 프로젝트 (90 % 드로이드와 IOS)
  • Project.Droid (드로이드 설정, 렌더링과 그래픽을위한 공통 코드.)
  • Project.iOS (아이폰 OS 설정, 렌더링과 그래픽.)

ipa 파일 크기를 줄이기 위해 가능한 모든 옵션을 선택했습니다. esp와 연결. '모두 링크'를 사용하고 디버깅 코드를 제거하고 이미지 등을 최적화했습니다.

최종 ipa 크기는 77MB입니다.

다음은 패키지 내용을 탐색 한 후의 파일 크기에 대한 세부 사항입니다. 저는 아치 7과 64를 사용하고 있습니다.

Project.iOS는 42MB 입니다. 이후이 파일과 함께 별도로 dll과 이미지를 볼 수 있습니다. 왜 그렇게 많은 공간을 차지하는지 모르겠습니다. 크기를 줄일 수 있습니까? 이것은 내가 7 나는 libraryX.dll, libraryX.aotdata.arm64, libraryX를 참조 (64) 타겟팅하고 있기 때문에

dll을의가.에 대한 15메가바이트 (자 마린 양식,지도, 기타 타사 라이브러리입니다 내 우선 순위입니다. aotdata.arm7) 이것은 내가 믿는 바로 그 것이다.

이미지에 대한 MB

(20) 내가 flaten에 'https://tinypng.com/를'사용 '숱'에 대한 모든 이미지 자산을 넣어 더욱 줄이기 위해 계획하고 있습니다. 또한 온 디맨드 리소스 옵션을 사용하고자하지만 우선 순위가 낮은 것 같습니다.

알려 주시기 바랍니다. 어떤 도움이나 제안이라도 대단히 감사하겠습니다.

자 마린 포럼 링크 :

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 응용 프로그램의 크기를 줄이기 위해 적용 할 수있는 우수 사례 목록을 찾을 수 있으며 전용 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 메가 바이트 있다고 생각하지.
게다가 WiFi 전용 앱의 App Store 제한은 100MB로 설정됩니다.

+0

자세한 답장을 보내 주셔서 감사합니다. 동일한 PCL 방식으로 기본 응용 프로그램을 만들었을 때 Project.iOS는 28MB를 사용했습니다. 전체 프로젝트는 42MB입니다. 아마도 내가 할 수있는 일은별로 없을 것입니다. 나는 평평하게함으로써 이미지의 크기를 줄일 수있었습니다. 그것은 65 % 크기를 저장했습니다. 이제 ipa는 약 60MB입니다. –

2

아이콘 글꼴을 사용하면 여러 버전의 아이콘을 글꼴의 벡터 그래픽으로 대체 할 때 IPA 크기를 줄일 수 있습니다. 나는이 접근법으로 많은 성공을 거두었 다. Details herealso here

+0

제안 해 주셔서 감사합니다. 나는 fontawesome에서 소수만 추가 할 수 있기 때문에 위의 접근법을 따랐다. –