iOS App内更换AppIcon(iOS 10.3及以上系统版本)

iOS10.3更换App图标
GitHub地址

效果:

Jietu20191025-150526.gif

步骤:

1.确保Assets.xcassets内无任何图片
iOS App内更换AppIcon(iOS 10.3及以上系统版本)_第1张图片
15719850866178.jpg
2.将图标拖入项目中,不能使用Assets.xcassets,只能拖入项目。图片大小为60的2倍和3倍,即@2x 120*120``@3x 180*180
iOS App内更换AppIcon(iOS 10.3及以上系统版本)_第2张图片
15719852465125.jpg
3.配置info.plist,很容易出错,一定要仔细,怕出错可以复制下面的内容,然后替换下图片名称。
iOS App内更换AppIcon(iOS 10.3及以上系统版本)_第3张图片
15719858457694.jpg




    CFBundleAlternateIcons
    
        app_icon_0
        
            CFBundleIconFiles
            
                app_icon_0
            
            UIPrerenderedIcon
            
        
        app_icon_1
        
            CFBundleIconFiles
            
                app_icon_1
            
            UIPrerenderedIcon
            
        
        app_icon_2
        
            CFBundleIconFiles
            
                app_icon_2
            
            UIPrerenderedIcon
            
        
        app_icon_3
        
            CFBundleIconFiles
            
                app_icon_3
            
            UIPrerenderedIcon
            
        
    
    CFBundlePrimaryIcon
    
        CFBundleIconFiles
        
            app_icon_0
        
        UIPrerenderedIcon
        
    
    UINewsstandIcon
    
        CFBundleIconFiles
        
            app_icon_0
        
        UINewsstandBindingEdge
        UINewsstandBindingEdgeLeft
        UINewsstandBindingType
        UINewsstandBindingTypeMagazine
    


4.代码获取当前图标、更换图标

获取当前图标文件名

if (@available(iOS 10.3, *)) {
        NSString *iconName = [UIApplication sharedApplication].alternateIconName;
    }

更换图标

if (@available(iOS 10.3, *)) {
        if (![[UIApplication sharedApplication] supportsAlternateIcons]) {
            return;
        }
        NSArray *weathers = @[@"app_icon_0", @"app_icon_1", @"app_icon_2", @"app_icon_3"];
        NSString *iconName = weathers[sender.selectedSegmentIndex];
        [[UIApplication sharedApplication] setAlternateIconName:iconName completionHandler:^(NSError * _Nullable error) {
            if (!error) {
                return;
            }
            NSLog(@"更换app图标发生错误了 : %@",error);
        }];
    }

你可能感兴趣的:(iOS App内更换AppIcon(iOS 10.3及以上系统版本))