清单上iPhone编程的所有安装的应用程序?清单上iPhone编程的所有安装的应用程序?(Listi

2019-05-12 09:24发布

我需要列出iPhone上的所有安装的应用程序与编码的帮助。 我使用的是越狱的iPhone。 我已经使用ihasapp API,但它没有显示我的所有安装的应用程序的完整列表。 请帮助我的代码。

Answer 1:

我用的是APPLIST库自己获得所有已安装的应用程序的列表。 它使用的是专用的框架,因此也是越狱只。 瞧瞧吧https://github.com/rpetrich/AppList 。

更新:@Nate是正确的这个已被问和回答。 退房: 获取所有已安装的应用程序列表



Answer 2:

我在我的iPhone上的所有安装的应用程序的列表。 它使用私人框架,但它不是监狱破碎设备。 外景下面一段代码。

#include <objc/runtime.h>

    Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
    SEL selector=NSSelectorFromString(@"defaultWorkspace");
    NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];

    SEL selectorALL = NSSelectorFromString(@"allApplications");
    NSLog(@"apps: %@", [workspace performSelector:selectorALL]);

我曾尝试这个代码和它的运作以及对iOS9。



Answer 3:

有一个私人API SBSCopyApplicationDisplayIdentifiers

它的签名如下

CFArrayRef SBSCopyApplicationDisplayIdentifiers(布尔onlyActive,布尔可调试);

如果您链接到SpringboardServices框架,并使用它,它会返回安装的应用程序列表。

更新1

下面是从复制示例用法的这里

CFArrayRef SBSCopyApplicationDisplayIdentifiers(bool onlyActive, bool debuggable);

int main() {
    char buf[1024];
    CFArrayRef ary = SBSCopyApplicationDisplayIdentifiers(false, false);
    for(CFIndex i = 0; i < CFArrayGetCount(ary); i++) {
        CFStringGetCString(CFArrayGetValueAtIndex(ary, i),buf, sizeof(buf), kCFStringEncodingUTF8);
        printf("%s\n", buf);
    }
    return 0;
}

不要忘了链接到pravite框架SpringboardServices。



Answer 4:

我搜索了很多让iOS上11.安装的应用程序列表中,但有代码来检查当前已安装该设备上的应用。

//If the device is iOS11
if ([[UIDevice currentDevice].systemVersion floatValue] >= 11.0) {
    NSBundle *container = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/MobileContainerManager.framework"];
    if ([container load]) {
        Class appContainer = NSClassFromString(@"MCMAppContainer");

        id test = [appContainer performSelector:@selector(containerWithIdentifier:error:) withObject:bundleId withObject:nil];
        NSLog(@"%@",test);
        if (test) {
            return YES;
        } else {
            return NO;
        }
    }
    return NO;

}


Answer 5:

试试这个。

NSArray *appList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/Applications" error:nil];
NSLog(@"%@",appList);


文章来源: Listing all installed apps on iPhone Programmatically?