6

这是对这个过时问题的更新:iOS 10.3 中的备用图标:避免图标更改的通知对话框


func setAppIcon(Type: String) {
    if #available(iOS 10.3, *) {
       UIApplication.shared.setAlternateIconName(Type)
    }
}

通过上面的几行,可以动态更改 Appicon,该功能是在 iOS 10.3 中添加的。

上面的代码工作正常,但每次应用程序图标更改时,iOS 都会触发如下警报:

图像

那么有没有办法摆脱这个警报呢?(我知道苹果可能会拒绝禁用用户信息的申请,但我只想将其用于测试目的)

任何帮助将不胜感激,谢谢!:-)

4

1 回答 1

5

试试下面的代码,但是,它是用 Objective-c 编写的。它使用私有方法,我想你不会介意的。

- (void)lc_setAlternateIconName:(NSString*)iconName
{
    //anti apple private method call analyse
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(supportsAlternateIcons)] && 
        [[UIApplication sharedApplication] supportsAlternateIcons])
    {
        NSMutableString *selectorString = [[NSMutableString alloc] initWithCapacity:40];
        [selectorString appendString:@"_setAlternate"];
        [selectorString appendString:@"IconName:"];
        [selectorString appendString:@"completionHandler:"];

        SEL selector = NSSelectorFromString(selectorString);
        IMP imp = [[UIApplication sharedApplication] methodForSelector:selector];
        void (*func)(id, SEL, id, id) = (void *)imp;
        if (func)
        {
            func([UIApplication sharedApplication], selector, iconName, ^(NSError * _Nullable error) {});
        }
    }
}
于 2018-04-09T09:49:42.120 回答