遵循此how to reduce the size of app
我的ipa大小为19 MB。使用.zip扩展名重命名该文件,然后双击它。在Payload文件夹中找到应用程序并右键单击它并选择显示包内容。发现exec是25MB和一些大尺寸的图像。我怎样才能减少exec的大小?因为我想减少商店中应用的大小
任何想法/建议都会非常有用
答案 0 :(得分:1)
使用伪AJPEG image.png + image_mask.jpg
#define maskedCacheStorePath [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"maskedImageCache"]
+ (UIImage *)maskedImageNamed:(NSString *)imageName useCache:(Boolean)useCache {
NSString *imageCacheStoreFile = nil;
if (useCache) {
if (![[NSFileManager defaultManager] fileExistsAtPath:maskedCacheStorePath])
[[NSFileManager defaultManager] createDirectoryAtPath:maskedCacheStorePath withIntermediateDirectories:YES attributes:nil error:nil];
imageCacheStoreFile = [maskedCacheStorePath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]];
if ([[NSFileManager defaultManager] fileExistsAtPath:imageCacheStoreFile])
return [UIImage imageWithContentsOfFile:imageCacheStoreFile];
}
UIImage *image = [UIImage imageNamed:[imageName stringByAppendingPathExtension:@"jpg"]];
UIImage *mask = [UIImage imageNamed:[[imageName stringByAppendingString:@"_mask"] stringByAppendingPathExtension:@"png"]];
CGImageRef ref = CGImageCreateWithMask(image.CGImage, mask.CGImage);
UIImage *result = [UIImage imageWithCGImage:ref scale:image.scale orientation:image.imageOrientation];
CGImageRelease(ref);
if (useCache && result)
[UIImagePNGRepresentation(result) writeToFile:imageCacheStoreFile atomically:YES];
return result;
}
还会查看this question个答案
答案 1 :(得分:0)
查看this technical Q&A on Apple Developer site。
它应包含减少ipa大小的所有提示;)
以下是该文件的摘录,可能会帮助您入门:
测量您的应用程序在尝试任何优化之前,您应该进行测量。 本文档中的一些技术是缺陷的权衡 必须考虑。你必须确定它们的影响 你正在做出正确的权衡。没有测量,你就无法知道 你正在做出什么样的改变。
应用分发流程会产生许多不同的工件, 每个都有自己的目的和规模。理解什么是重要的 每个工件代表测量时使用的工件和哪些工件 你的应用程序的大小。
- 应用包是包含应用中所有二进制文件的.app包,以及所有应用的资源,例如图片。这
bundle包含应用程序在每个应用程序上运行所需的所有内容 支持的设备。出于本文档的目的,应用程序包
仅指通过归档应用程序生成的.app。- App Store提交.ipa是在上传到App Store或通过导出iOS存档时从Xcode存档创建的 App Store部署。此.ipa是一个压缩目录 包含应用程序包和App所需的其他资源 存储服务,例如用于崩溃报告和资产的.dSYM文件 随需应变资源包。
- 通用.ipa是一个压缩的应用程序包,其中包含在任何设备上运行应用程序的所有资源。 Bitcode已经 重新编译,以及App Store所需的其他资源,例如 .dSYM文件和随需应变资源将被删除。对于App Store应用, 此.ipa将下载到运行iOS 8或更早版本的设备。
- 精简的.ipa是一个压缩的应用包,仅包含在特定设备上运行应用所需的资源。 Bitcode有 已经重新编译,以及App Store所需的其他资源,
例如.dSYM文件和随需应变资源,将被删除。对于应用
存储应用程序,此.ipa将下载到运行iOS 9或
的设备 后来。- 通用应用程序包是解压缩的通用.ipa。安装过程解压缩通用.ipa并安装 通用应用程序包。
- 精简的应用包是解压缩的.ipa。安装过程解压缩稀疏的.ipa并安装 稀疏的应用程序包。