Xcode 9.2打包或者除錯,iOS 8.2~iOS8.0的系統載入圖片扭曲

zhangyan1475985495000發表於2018-02-12

場景:

1、Xcode 9.2除錯真機,打包測試,或者打包上線

2、當前除錯的是iOS 8.2<真機,5S> ,iOS 8.1<模擬器>的相關機型。

3、使用imageView.image = [UIImage imageNamed:@“XXXX”];載入本地圖片,並且圖片存放在了 Assets.xcassets 中,會出現圖片扭曲的情況。

4、iOS8.0沒有嘗試,但是應該也是有問題的,iOS 8.3 和iOS 8.4的裝置不會出現圖片扭曲的情況。

原始碼:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 100, 300, 300)];
    imageView.contentMode = UIViewContentModeScaleAspectFit;
    imageView.image = [UIImage imageNamed:@"image"];
    [self.view addSubview:imageView];
}
複製程式碼

來張圖感受一下

image.png

正常的應該是這樣的:

image.png

剛開始以為只有模擬器才會這樣,但是最終試驗發現。 Xcode 9.2 直接除錯iOS 8.2,iOS 8.1, iOS 8.0的模擬器或者真機,Xcode9.2 打包除錯,甚至是通過AppStore稽核的版本,在iOS 8.2,iOS 8.1, iOS 8.0這些裝置上也會中招

下面欣賞隨便找的幾個app的中招現象:

鏈家.PNG

摩拜單車.PNG

易車.PNG

轉 轉.PNG

原因:

1、最近上線,使用最新Xcode 9.2打包上線

2、使用imageView.image = [UIImage imageNamed:@“XXXX”];載入本地圖片,並且圖片存放在了 Assets.xcassets 中,會出現當前的情況

3、當前測試的版本系統為 iOS 8.2,8.1,8.0

應該是最新Xcode 9.2的bug,蘋果的鍋。

解決辦法:

1、將本地相關的圖片,不要放到Assets.xcassets

2、最好的解決方案,個人認為還是不要使用Xcode 9.2 打包上線,使用Xcode9.1

相關文章