① 如何減小ipa包大小方法總結,減小ipa包大小
首先是檢查.app bundle,看一下程序包裡面哪些文件占的空間最大。
在做任何相關優化之前,我們需要做一些權衡。通過權衡,可以知道把優化的重點集中在什麼地方。本文提到的一些技術缺點我們也需要做出考慮,我們必須考慮相關影響,以確保做出正確的決定。如果不做權衡的話,我們無法知道需要對程序做出什麼樣的改變。
當第一安裝iOS程序時,需要完整的一個.ipa文件。(注意這不同於升級)。實際上.ipa文件就是一個.zip結構。
*找出程序的.ipa文件方法:
1、從App Store應用,然後利用iTunes對iOS設備做同步處理,接著查看目錄:
~/Music/iTunes/iTunes Music/Mobile Applications,就能找到.ipa文件了。
2、當然我們也可以通過使用: Xcode的Archive命令來構造出.ipa文件——該文件與提交到App Store上的格式基本一致。
檢查.ipa文件
簡單的將後綴為.ipa文件修改為.zip,然後利用Finder將其解壓出來。右鍵單擊解壓出來的.app bundle,選擇顯示包內容,以查看裡面的資源文件。通過該方法我們可以看到哪些文件占的空間最大。
*注意:.app bundle是經過壓縮的,並且有些文件的壓縮效果要比別的文件好,所以壓縮後的效果才是才是最重要的。不過一般情況下在壓縮前最大的文件,在壓縮後依舊是最大的文件。我們可以將某個文件刪除,然後在Finder中右鍵單擊,選擇壓縮,這樣可以更加精確的測量文件壓縮效果。
Build Settings
編譯選項
將build setting中的Optimization Level設置為Fastest, Smallest [-Os]; 將build setting 中的Strip Debug Symbols During Copy設置為YES(COPY_PHASE_STRIP = YES),這樣可以減譯出二進制文件的尺寸。這里提到的這些設置在Xcode工程中對於Release的配置是默認的。
*警告:這些設置會讓你的程序很難debug。在一般開發環境build中不建議這樣設置
Target針對較少的CPUs
默認情況下,Xcode工程都配置為:對程序指定的特定CPU類型做優化處理,以生成相對於的可執行文件。不同的硬體,將運行不同的可執行代碼。雖然這樣優化後的程序,只能針對某些設備運行,但是這大大減小可執行程序的大小。
要想只設定特定類型的CPUs,可以修改build setting中的Architectures,將其從Standard $(ARCHS_STANDARD)修改為你希望支持的列表中對應的特定類型CPU。有效的CPU名稱列在Valid Architectures (VALID_ARCHS) build setting中。請不要修改Valid Architectures設置項,最好由Xcode管理。
Assets
對應用程序做一個完整性檢查
利用Inspecting Your App中介紹的流程,對.app bundle做一個全面的檢查,以了解那些是真正需要用到的。在程序中,經常會包含一些額外的文件,例如readme之類的,這些從來都不會被用到。
將數據從代碼中剝離出來
將所有的資源(例如很長的字元串)從代碼中剝離出來,並存入外部文件,這樣會減小最終文件的大小,因為這些文件的壓縮效果更好。(參考iOS App Store Specific Considerations中的完整介紹。)
Image Assets
盡量使用8-bit圖片
使用8-bit的PNG圖片,比32-bit的圖片能減少4倍的壓縮率。由於8-bit的圖片支持最多256種不同的顏色,所以8-bit的圖片一般只應該用於一小部分的顏色圖片。例如灰度圖片最好使用8-bit。
針對32-bit的圖片盡量使用高壓縮的比率
利用Adobe Photoshop的Save For Web可以減小JPEG和PNG的圖片大小。在Xcode中,默認情況下,會自動的使用pngcrush來壓縮.png圖片。
Audio Assets
音頻的壓縮
參考WWDC中的Audio Development for Games,裡面介紹了如何有效的處理音頻。常規來說,我們要使用AAC或MP3來壓縮音頻,並且可以嘗試降低一下音頻的比特率。有時候44.1khz的采樣是沒有必要的,稍微低一點的比特率也不會降低音頻的質量。
*溫馨提示:以上這些方法僅供參考,而且僅適用於對程序佔用空間特別在意又對自己的耐心非常有信息的同學們,要不然,頭疼呵呵了什麼的,只好自己忍著啦~
iOS App Store相關因素
作為提交到App Store中app里的可執行文件是被加過密的。加密的副作用是可執行文件的壓縮效果沒有之前的好了,因為加密會隱藏一些細節問題。因此,從App Store下來的.ipa文件大小要比從本地build出來的.ipa文件大。
注意:將長文本內容和表數據等從代碼中移除,並添加到外部文件中,這樣可以減小最終安裝包的大小——因為這些文件的壓縮效果更好。
如果你選擇Organizer window中的某個archived,然後點擊Estimate Size,Xcode可以對最終分發的程序尺寸做出一個評估。這里並不考慮Mac App Store上面的和級部署的iOS程序。
② 怎麼用xcode打包網狐游戲ipa
沒有辦法,沒有越獄是無法單獨使用包安裝的【只能通過AppStore安裝】。
「越獄」指的是繞過蘋果在其設備上對操作系統施加的很多限制,從而可以「Root訪問」基礎的操作系統。簡單來說,「越獄」可以讓iPhone用戶從蘋果應用商店外其他非官方的應用程序,或者對用戶界面進行定製。
③ 在windows系統環境下,能不能編譯出.ipa文件
當然可以啦,ipa是個zip包交叉編譯,在windows下用toolchain,把iPhone的lib庫導入,頭文件准備好,寫好makefile直接make,編譯好後直接打包成zip文件,改成ipa就行了,簽名可以用ldid
④ ios 如何檢查ipa是被重簽名過的
方法一、終端命令:sigh resign
1. 明白兩個東西:想要重簽名的證書和描述文件
開發證書或者企業證書,即你想要重簽名的證書、provision描述文件。我是個人賬戶。沒交錢的那種。(Xcode中自動管理會生成證書和描述文件)。
注意⚠️:每一個重簽版本都需重新申請一個 appid 和 provisoning profile,不然同appid的會覆蓋。
mac電腦的開發環境配置
安裝 homebrew,命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝 ruby,命令:brew install ruby更新 ruby 版本
安裝 sigh,命令:sudo gem install sigh
如果出錯那就換成gem install sigh安裝過程是漫長的。(在安裝 sigh 之前,你得檢查 gem的鏡像源,現在一般為https://gems.ruby-china.org)
准備好需要重簽名的 ipa 包
自己的ipa 不用多說。編譯一下在工程的Proct 文件件下就有。也可以通過愛思助手下載具體教程:Mac 如何下載ipa
開始重簽名
第一步,把我們要重簽名的 ipa 包和我們下載下來安裝的embedded.mobileprovison放在同一文件夾目錄下,同級
第二步,終端 cd 到這個 ipa 的文件夾目錄下,執行sigh resign或者fastlane sigh resign命令
第三步:這時候,sigh 會直接彈出下面這個指令要你輸入:Signing Identity這個就是你的證書的十六進制串,輸入之後回車,然後等待見證奇跡的時刻吧。
此方式會自動分析 provisoning profile描述文件中的東西,所以不用我們自己填寫變更的bundle id
驗證得到ipa 直接在愛思助手中的:我的應用->中一拖就可以了。
這個方式親自試了,比較簡單方便。
結論:
但是最後重簽名之前的能正常打開,重簽名之後的都是一而退。暫時不知道什麼原因。