< img src="https://mc.yandex.ru/watch/52339756" style="position:absolute; left:-9999px;" alt="" />
苹果ipa文件修改图标_苹果企业签名-ios企业签名账号-苹果企业开发者账号-博亚贸易
苹果ipa文件修改图标
发布时间:2018-12-24     浏览次数: 次    作者:admin

在iOS11系统之前,苹果app的icon加载方式,是以info.plist的相关配置为优先的,也就是说,加载icon先去info.plist查找是否有icon配置项,有的话按配置项加载icon,没有再去Assets资源去加载icon。

而iOS11之后,苹果把两个优先级调换了,所以按之前的方式直接把包解压,把不同尺寸的icon放入包根目录,再加入icon配置项的方式不一定生效。

注意:为了兼容所有版本,最好两种方式都要做,除非确定Assets没配置icon。

一、info.plist配置方式

1、你需要一张1024*1024的icon,导入生成icon的网址,下载iOS的icon压缩包,解压得到各种尺寸的icon。

2、解压ipa包,得到Payload文件夹,打开Payload,里面是app目录,接着打开,找到并打开info.plist,配置icon的键值对。

3、按照info.plist配置的icon名修改步骤1中解压得到的icon名,尺寸要对应,然后将所以需要的icon复制到Payload文件夹。

4、重签名。

从iOS 5.0开始,通过包含CFBundleIcons键来指定图标。 旧的应用程序可能先前通过包含CFBundleIconFiles键来指定其图标。 如果密钥仍然存在,则应该删除该密钥(不要忘记删除任何特定于设备的变体)。 所有的应用程序都应该迁移到CFBundleIcons键来指定它们的图标。

CFBundleIcons键的值是一个带有两个子键的字典:CFBundlePrimaryIcon UINewsstandIcon。 UINewsstandIcon键用于报摊应用程序,否则可以省略。 CFBundlePrimaryIcon键的值是一个字典,用于标识与该分发包关联的图标图像。 它可能包含两个子键:CFBundleIconFiles和UIPrerenderedIcon。 UIPrerenderedIcon键的值是一个布尔值,用于指定图像是否已经包含闪耀效果。 CFBundleIconFiles键的值是一个字符串数组,每个字符串标识一个包中的图像。

重要:指定每张图片的名称时,最好省略任何扩展名。 省略扩展名后,系统会使用标准分辨率图像文件名自动检测图像的高分辨率(“@ 2x”或“@ 3x”)变体。 如果您包含扩展名,则必须明确指定所有图像文件(包括高分辨率变体)。

如果您的应用程序支持iOS 4.3,则还必须包含CFBundleIconFiles项以指定应用程序的图标图像。 这个键的值是一个字符串数组,每个字符串标识一个包中的图像。 如果您为iPad特定的图标包含了图像,则可以将它们列在CFBundleIconFiles项下,或者将它们列在设备特定的CFBundleIconFiles〜ipad项下。 仅限iPad的应用程序应在CFBundleIconFiles项下列出其图标图像。

示例2具有iOS 4.3部署目标的通用应用程序的示例配置。

二、car替换方式

ipa包解压Payload文件夹,打开Payload,里面是app目录,接着打开,会发现一个Assets.car文件,这是个什么鬼?也就是苹果把之前的包以一种方式压缩了一下,这里需要一个工具去解压-->替换-->重新压缩,然后替换掉原包里面的car文件。

经过网络搜索,发现了一款工具ThemeEngine,可以实现这个功能。