2014-12-05 9 views
8

Zrobiłem bardzo prostą aplikację na iPhone'a z Xcode 6.1 i szybką. Naprawdę nie jestem początkującym użytkownikiem iOS, który uruchomił aplikację, która w końcu ma 134 mb! oczywiście nie jest to dopuszczalne.Zmniejszenie rozmiaru pliku aplikacji na iOS

Mam obrazy tła dla wszystkich rozmiarów ekranu, które dają do 20 mb. i to wszystko! Przechowuję te obrazy w xcassetach, ponieważ jest to preferowany sposób, jak sądzę.

aplikacja nie powinna mieć więcej niż 25 mbs, jak sądzę.

Doszedłem do wniosku, że w moim projekcie podwoiłem liczbę referencji. Usunąłem te i nadal mój plik .app ma 89 mbs!

Co robię źle? Przeczytałem kilka wątków na ten temat, ale nic nie pomogło!

co zrobiłem do tej pory:

- reduce the size of all pngs 
- disable the compress PNG option, as it seems to make the PNGs bigger (lol) 
- configured the build settings to run the fastest and smallest build 
- Strip Debug Symbols During Copy build setting to Yes (COPY_PHASE_STRIP = YES) 

Edit1: Apparenty Xcode robi coś dziwnego z moim PNG. Niektóre z tych obrazów, które początkowo wynosiły 2 mb, mają ponad 10 MB w pliku .app. Co tam robi xcode?

+4

Czy kontrolowane app paczkę? Znajdź plik .app swojej aplikacji w wyszukiwarce, kliknij go prawym przyciskiem myszy i użyj "Pokaż zawartość pakietu". Powinieneś zobaczyć, co tak naprawdę zajmuje tyle miejsca. –

+0

Dzięki Matthias, właśnie skończyłem to robić! zobacz edit1 – Michael

Odpowiedz

11

Nie dziwi fakt, że pliki skompresowane Apple są większe. Są zoptymalizowane pod kątem szybkiego ładowania niewielkich rozmiarów. Jeśli nie zależy Ci na rozmiarze, to zdecydowanie wyłącz kompresję. Nawet jeśli zależy Ci na szybkości, możesz zrobić to lepiej niż Apple.

https://imageoptim.com/xcode.html

Więc tak, wyłącz kompresję PNG. Pierwszą rzeczą, którą mógłbym zrobić, jest zbudowanie ipa. Ipa jest w rzeczywistości plikiem zip, więc skompiluj ipę, skopiuj go do folderu na twoim macu, zmień nazwę pliku z rozszerzeniem .zip i kliknij go dwukrotnie. To ją rozszerzy. Znajdź aplikację w folderze Ładowności i kliknij ją prawym przyciskiem myszy i wybierz opcję pokaż zawartość pakietu. Zobaczysz wszystkie zasoby. Sortuj według rozmiaru. Zgaduję, że masz zbyt duże obrazy. W tym rozmiarze przypuszczam, że dodatkowy rozmiar prawdopodobnie zostanie spowodowany niemal wyłącznie przez pliki PNG.

Należy rozważyć użycie obrazów innych niż siatkówka. Szczerze mówiąc większość ludzi nie zauważy. iOS z wdziękiem użyje nie siatkówki na siatkówce. To może zaoszczędzić mnóstwo miejsca, rozważ także użycie plików jpeg zamiast PNG dla niektórych plików, jeśli nie potrzebujesz przezroczystości. Pliki Jpeg są mniej wydajne, ale mogą być znacznie mniejsze. Porównaj oba. Zależy od stopnia, w jakim obrazy są ciągłe.

Domyślnie plik PNG ma 32 bity. 24-bitowy kolor i 8 buitów alfa/przezroczystości. Możesz zaoszczędzić trochę rozmiaru, przechodząc do 24 bitów. Możesz również zaoszczędzić dużo rozmiaru przechodząc w 16-bitowy kolor lub poniżej. W 8-bitowych plikach PNG użyj tabeli kolorów. Graj z Photoshopem i zapisz opcje dla nas w PNG z bitową głębią 8 i poniżej.

mam wszystkie rodzaje drogiego oprogramowania ściskania ale często korzystają z 8 $

https://itunes.apple.com/us/app/lossless-photo-squeezer/id704083918?mt=12

Spróbuj 8 bitowy opcję PNG i JPEG opcje.

EDYTOWANIE Zrobiłem kilka badań. Zawsze wiedziałem, że Fireworks ma lepszą kompresję PNG. Nie zdawałem sobie sprawy, że istnieje 8-bitowy PNG z 8-bitowym kanałem alfa. Photoshop obsługuje 8 bitów z 1-bitowym kanałem alfa.Zawsze mówiłem ludziom, żeby używali 32-bitowego PNG, jeśli ich przezroczystość potrzebowała więcej niż 1-bitową. W przyszłości dam im do zrozumienia, że ​​8-bitowa z 8-bitową alfa może być lepszą trasą, po prostu mogą użyć Photoshopa do końcowego zapisu pliku. Potrzebują tylko 32-bitową kompresję i kompresują gdzie indziej.

http://calendar.perfplanet.com/2010/png-that-works/

David

+0

W końcu usunąłem pliki xcassets przygotowane dla każdego rozmiaru ekranu. Te same zakończyły się plikiem asset.car w moim systemie ipa, który wynosił około 80 MB! zmniejszyłem pngs i wszystko, teraz aplikacja jest mniejsza niż 20 mb ... – Michael

Powiązane problemy