iOS10.3:动态改变APP图标

分享是每个优秀的程序员所必备的品质


iOS10.3:动态改变APP图标_第1张图片
iOS 10.3

iOS 10.3 新增了更换应用图标的功能。开发者提供多个图标的选择,用户可以自由切换这些图标。

  • api均为10.3以上
  • 当前app是否支持备用的icon,需要判断

官方文档

其实就是在Info.plist里面使用CFBundleIcons声明当前app的primary和alternate icon。
上代码:

        CFBundleAlternateIcons
        
            newIcon
            
                CFBundleIconFiles
                
                    newIcon
                
                UIPrerenderedIcon
                
            
        
        CFBundlePrimaryIcon
        
            CFBundleIconFiles
            
                AppIcon60X60
            
        
    
iOS10.3:动态改变APP图标_第2张图片
info.plist截图

tips:苹果默认会在 App Store 里的应用图标上半部自动添加高亮特 效,虽是好心但有时候这半个光圈会破坏图标设计者的原作。如果您要去掉这一高亮特效,可以在程序的 info.plist 里添加一个值类型为 boolean 的字段:UIPrerenderedIcon,值设定为YES(或者是:Icon already includes gloss effects,值设定为YES)。再上传应用,App Store 就不会在图标上添加高亮特效了。

切换图标代码:

if ([UIApplication sharedApplication].supportsAlternateIcons) {
        NSLog(@"you can change this app's icon");
    }else{
        NSLog(@"you can not change this app's icon");
        return;
    }
    NSString *iconName = [[UIApplication sharedApplication] alternateIconName];
     if (iconName) {
        [[UIApplication sharedApplication] setAlternateIconName:nil completionHandler:^(NSError * _Nullable error) {
            if (error) {
                NSLog(@"set icon error: %@",error);
            }else{
                NSLog(@"Set up successfully,Press the Home key to view");
            }
        }];
    }else{
        [[UIApplication sharedApplication] setAlternateIconName:@"newIcon" completionHandler:^(NSError * _Nullable error) {
            if (error) {
                NSLog(@"set icon error: %@",error);
            }else{
                NSLog(@"Set up successfully,Press the Home key to view");
            }
        }];
    }
iOS10.3:动态改变APP图标_第3张图片
changeIcons.gif

Demo:RCChangeIcons

个人浅见,有误的地方欢迎指正

你可能感兴趣的:(iOS10.3:动态改变APP图标)