iOS11上通过LSApplicationWorkspace获取应用列表失败

(非越狱)通过LSApplicationWorkspace的实例方法allInstalledApplications返回空数组,iOS10上返回的是已安装app列表,据说iOS11上对LSApplicationWorkspace这个类做了权限控制,请问有没有方法解决

1 个赞

同问

有没解决办法?

有人解决了吗

同问

可以获取某个应用是否安装,但不能获取应用列表。

有什么方法?

1.一种是白名单可以解决
2.另一种是mdm

请问白名单是什么意思?? URLScheme 吗??

是的

用 URLScheme 好像只能判断某个 APP装没装吧?

//判断某个应用是否安装
NSString *bundleID = @“要判断都bundleid”;

if ([[UIDevice currentDevice].systemVersion floatValue] >= 11.0) {
NSBundle *container = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/MobileContainerManager.framework"];
if ([container load]) {
Class appContainer = NSClassFromString(@“MCMAppContainer”);
NSLog(@"%@",bundleID);
id test = [appContainer performSelector:@selector(containerWithIdentifier:error:) withObject:bundleID withObject:nil];
NSLog(@"%@",test);
if (test) {
isInstalled = YES;
}
}
}

3 个赞

获取列表有方案或者思路吗

ios11上需要获取其他app应用的版本,找了很久都没找到方法

我没找到这个私有库呀

请问如何获取某个应用是否安装呀

可以试试用MI这个框架来获取,虽然没试过但是在iOS6时代没有LSAppplicationWorkspace这个类是用的MI来获取