Xcode Asset中的图片为何自行发生变更?
你已经试过设置「Render As: Original image」和「Compression: Lossless」但问题依旧,这种情况确实让人头疼——咱们来排查几个容易被忽略的原因,试试这些解决办法:
检查图片颜色空间与配置文件
Xcode有时会自动转换图片的颜色空间(比如把非sRGB的原图转成sRGB),哪怕开了无损压缩也可能导致显示差异。你可以用「预览」打开原图,导出时选择「sRGB IEC61966-2.1」颜色空间,再重新导入Asset Catalog。确认资源目录的缩放设置
如果你的图片是带@2x/@3x后缀的多尺度图,要检查Assets里的「Scales」选项是否匹配原图的尺度类型。比如原图是@3x,但误设成了「Single Scale」,Xcode会自动缩放导致失真。如果是矢量图(SVG),还要确认「Preserve Vector Data」是否开启;位图的话这个选项不用管。清理Build文件夹与Derived Data
Xcode的缓存有时候会“记住”旧的压缩版本,哪怕你改了设置。试试按Cmd+Shift+K清理Build Folder,再手动删除Derived Data(路径:~/Library/Developer/Xcode/DerivedData),之后重新编译运行。排查是否被意外着色
虽然你设置了「Render As: Original Image」,但控件(比如UIImageView)的tintColor属性可能被父视图继承,或者代码里不小心设置过,导致图片被染色。可以在代码里明确写:imageView.image = UIImage(named: "你的图片名")?.withRenderingMode(.alwaysOriginal),强制使用原图的颜色。检查图片元数据
有些原图带有额外的元数据(比如EXIF里的方向校正信息),Xcode的解析逻辑可能和系统显示逻辑不一致。可以用ImageOptim这类工具移除多余元数据,只保留必要信息后再导入Assets。
内容的提问来源于stack exchange,提问作者Hem Poudyal

