2014-12-05 54 views
8

我用Xcode 6.1和swift製作了一個非常簡單的iPhone應用程序。我真的很陌生,開發和碰到一個應用程序,最終是134 MB!當然這是不可接受的。減少iOS應用程序文件大小

我有所有屏幕尺寸的背景圖像,總計爲20 MB。這就是它!我將這些圖像存儲在xcassets中,因爲這是我猜測的首選方式。

我認爲應用不應該超過25 mbs。

我發現我的項目中引用了一些引用。我刪除了這些,仍然我的.app文件是89 mbs!

我在做什麼錯?我讀了幾條線索,但沒有什麼幫助!

我做了什麼至今:

- 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中做一些奇怪我的PNG圖像。 .app文件中的一些圖片,最初是2 MB,超過10MB。 xcode在那裏做什麼?

+4

你有沒有檢查應用程序包?找到您的應用程序的.app文件,右鍵單擊它並使用「顯示包裝內容」。你應該看到實際佔用這麼多空間 – 2014-12-05 17:33:23

+0

感謝Matthias,我剛剛完成了這個!請參閱edit1 – Michael 2014-12-05 17:35:07

回答

11

蘋果重新壓縮的文件比較大,這實際上並不奇怪。它們針對快速加載而不是小尺寸進行了優化。如果你不關心大小超過速度,可以肯定地關掉壓縮。即使你關心速度,你也可以比蘋果做得更好。

https://imageoptim.com/xcode.html

所以,是的,關掉PNG壓縮。我會做的第一件事是建立IPA。一個ipa實際上是一個壓縮文件,因此構建ipa,將其複製到您的mac上的文件夾,用.zip擴展名重命名該文件並雙擊它。這將擴大它。在Payload文件夾中找到應用程序,並右鍵單擊它並選擇顯示包內容。你會看到所有的資產。按大小排序。我猜你有過大的圖像。在這個尺寸下,我的猜測是,額外的大小可能幾乎完全由PNG文件引起。

考慮使用非視網膜圖像的一些。老實說,大多數人不會注意到。 iOS將優雅地使用視網膜上的非視網膜。這可以節省大量的空間,

如果您不需要透明度,也可以考慮對某些文件使用jpeg文件而不是PNG文件。 Jpeg文件的效率較低,但可以小得多。比較兩者。取決於圖像連續色調的程度。

默認情況下,PNG文件是32位。 24位色和8位alpha /透明度。您可以通過轉到24位來節省一些大小。你也可以保存大量的16位或更低的顏色。在8位PNG文件中使用顏色查找表。使用Photoshop播放,並在位圖深度爲8和以下的PNG中保存我們的選項。

我有各種昂貴的壓縮軟件,但經常使用的$ 8

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

嘗試的8位PNG選項和JPEG選項。

編輯 我做了一些研究。我一直都知道Fireworks做了更好的PNG壓縮。我沒有意識到有一個8位Alpha通道的8位PNG。 Photoshop支持8位和1位Alpha通道。如果透明度需要超過1位,我一直告訴人們使用32位PNG。將來我會讓他們知道8位alpha 8位可能是更好的路線,他們只能使用Photoshop進行文件的最終保存。他們只需要保存一個32位並壓縮到別處。

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

大衛

+0

最後,我刪除了爲每種屏幕尺寸準備的xcassets。這些僅僅在我的ipa內的assets.car-file中達到了80mb左右!縮小了PNG和一切,現在應用程序不到20 MB ... – Michael 2014-12-07 10:56:13