2014-11-17 11 views
13

Wie Liste aller installierten Anwendungen auf dem iPhone Gerät erhalten programmatisch in iOS 8.Get Liste aller installierten Anwendung in ios 8

Wenn jemand die Lösung unter Verwendung von privaten APIs (aber Gerät nicht-jailbroken) dann seine weiß schön und gut.

Ich weiß, dass es möglich ist, iTunes Search API zu verwenden, aber es gibt nur die Anwendungen, die von iTunes installiert sind. Ich brauche alle Anwendungen auf dem Gerät, egal ob von iTunes oder von Benutzern entwickelte oder System-Apps.

Antwort

21

versuchen Sie dies. es funktioniert, habe ich getestet.

#include <objc/runtime.h> 
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); 
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)]; 
NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]); 
+0

Gibt es eine Möglichkeit, dies nur eine Liste von App-IDs zur Verfügung zu stellen? Als ein Array oder etwas ähnliches? –

+1

Ich sah, dass dies auch am 7.1 funktionierte. Verwendet dies eine private API oder ist sie öffentlich? –

+0

@AliClarke Soweit ich weiß gibt es keinen solchen Weg, wir können nur Bündel-ID aus der obigen Lösung bekommen :) – Roxasora

5

Ich überarbeitete Code für Xcode 7.3. Es funktioniert perfekt auf iOS9.

#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]); 
Verwandte Themen