iOS ipa 包优化

项目里有一个h5页面需要原生化,这个页面有大量的本地图片,而这些图又用了2x、3x两套图,其中有些图片大到一张能达到好几M,最终的结果是ipa的包体积巨大无比。于是试了好些方法,终于把ipa的体积减小了很多。接下来总结一些能让app瘦身的方法。

1、 从图片资源进行瘦身。

(1) 对图片本身进行压缩。设计师在设计大的图片时对图片进行压缩一下,然后客户端使用压缩后的图片,这样能大大减少ipa包的体积。我项目中用到的那些很大的图片设计师没有对其进行压缩,所以让设计师帮把所有的大图片都压缩了一遍,这样之前以M为单位的图片能压缩到以k为单位的图片。大大减小了ipa的体积。

2) 客户端在工程中使用Assets.xcassets的方式管理图片,尽量避免使用文件夹的方式进行管理。因为采用Assets.xcassets的方式,编译时,Images.xcassets中的所有文件会被打包为Assets.car的文件,这样也能一定程度上减小app体积

3) 清除无用的图片。在版本更新的时候,有些之前用到的图片在新版本中未必会用得到,所以那些无用的图片要记得及时清除。

4) 尽量使用矢量图。 有人说这个方法对减小ipa体积没啥大作用,不过不管有没有用,我觉得这都是一个很值得提倡的方法。因为矢量图可以自己定义大小以及颜色,所以对于一张图片,只需要一套图即可。比如我们项目中的图标,能用iconfont解决的我们都不会去才用切图的方式。一个iconfont.ttf的包,里面装了几十张的图片也不过是十几k的大小。

2、 整理项目中用到的第三方库。

(1) 项目中没有用到的第三方库也记得要及时删除。(2) 引入第三方库要慎重,学会评估引入这个库是否值得。有时候为了一个功能引入了一个很大的第三库,造成ipa体积的显著增加,但是可能我们只用到了其中一小部分功能,那这个时候可以考虑自己实现这个功能,而不是引入该库。

(3) 删除三方库中无用的图片资源。有些第三方库会带有图片资源,对于没用到的图片可以直接删除。

3、 代码层面的优化

(1) 未使用的代码及时清理(2) 整理重复的代码

4、 编译选项的设置(均在Build Settings里面设置)

对于这一块,不是特别的懂,所以根据网上提供的一些方法,我试了一下,感觉以下方法确实能起到一定的作用,大家可以参考一下。(1) 将Deployment Postprocessing和Strip Linked Product选项 设置为YES。(2) 将Genetate Debug Symbols 默认为YES,设置为NO。(3) Symbols hidden by default设置为YES(4) Strip debug symbols during copy 设置为YES

 

时间: 2024-08-11 11:47:11

iOS ipa 包优化的相关文章

iOS ipa包瘦身---删除无用图片资源

随着客户端业务的增多和业务的更新,App包大小越来越大,优化包大小的事情迫在眉睫,客户端需要优化的地方也有很多,本期主要讲如何查找无用图片并且删除无用图片的方法. 方案1:(暴力方法)很简单写一个脚本把图片的名称在整个工程下查找即可,查不到就说明这张图片是无用的.(对于小的工程这样方案是可以的,但是对于工程大的项目查找太慢了). 方案2:把所有的赋值语句提取出来放到一个文件中,再把工程下面的图片名称获取出来在这个文件中查找,若查找不到则说明此图片是无用资源.由于工程中的图片全部放在了Images

iOS ipa包进行重新签名

1.安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2.用brew安装ruby brew install ruby 3.用gem安装sigh sudo gem install sigh 4.sigh resign 按照下面步骤,就可以安装成功! 原文地址:https://www.cnblogs.com/gumengli/p/

使用fruitstrap实现命令行将IPA包安装到iOS设备上

Requirements Mac OS X. Tested on Snow Leopard only. You need to have a valid iPhone development certificate installed. Xcode must be installed, along with the SDK for your iOS version. Usage fruitstrap [-d] -b <app> [device_id] Optional -d flag laun

iOS 导出 ipa 包时 三个选项的意思

如图  在 iOS 到处 ipa包的时候 会有三个选项 Save for iOS App Store Deployment Save for Ad Hoc Deployment Save for Enterprise Deployment 他们的意思分别为: Save for iOS App Store Deployment 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 Save for Ad Hoc Deployment 保存到本地 准备在账号添加的可使用设备上使用(具

iOS 导出 ipa 包时 三个选项的意义

OS 导出 ipa 包时 三个选项的意思 如图  在 iOS 到处 ipa包的时候 会有三个选项 Save for iOS App Store Deployment Save for Ad Hoc Deployment Save for Enterprise Deployment 他们的意思分别为: Save for iOS App Store Deployment 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 Save for Ad Hoc Deployment 保存到

iOS导出ipa包时四个选项的意义

1. Save for iOS App Store Deployment 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 2. Save for Ad Hoc Deployment 苹果的官方解释是:To distribute your app to users with designated devices, select "Save for Ad Hoc Deployment." The app will be code signed with the dis

itms-services协议:跳转网页部署及PHP动态生成 iOS渠道包IPA一键安装之plist

相信很多人尝试过使用揣果测试库(http://ipa.chuaiguo.com/)的无线安装测试IPA安装包功能.有心人一定注意到其itms-services协议的一键安装地址的url=部分并不是我们常见的plist文件路径,而是一个install.php通过增加参数的形式自动生成输出了plist.之前因为笔者的项目中渠道包不多,所以懒得去写这样一个文件帮助部署,可是最近,笔者的项目的渠道包不断增多了,显然部署多个plist文件管理上似乎越来越麻烦了,于是笔者开始仿照揣果实现了并结合自己项目的需

iOS打包成 ipa包(简单粗暴方法)

按照下面的步骤走,就可以打包成功,我不说各种原因,只讲操作步骤: 简单粗暴!!! 首先你得有一个苹果开发者账号.要是没有,就自己申请一个. 注意:在创建app IDs 还有描述文件的时候,需要添加的是发布版本,就是ad hoc里面的版本,而不是简单的开发版本.如下图:(证书与描述文件都需要发布版本的) 可以先忽略,一会在创建证书的时候再看 1.创建一个ipaDemo工程. 2.打开苹果开发者中心.网址 :https://developer.apple.com/membercenter 3.打开这

iOS 导出 ipa 包时 四个选项的意义

iOS 导出 ipa 包时 四个选项的意义 摘要:如图 正在 iOS 随处 ipa包的时间 会有四个选项 1.Save for iOS App Store Deployment 保管到当地 预备上传App Store 或正在逃狱的iOS装备上应用 2.Save ] 如图 在 iOS 到处 ipa包的时候 会有四个选项 1.Save for iOS App Store Deployment 保存到本地 准备上传App Store 或者在越狱的iOS设备上使用 2.Save for Ad Hoc D