2014-11-17 14 views
13

Come ottenere l'elenco di tutte le applicazioni installate sul dispositivo iPhone di programmazione in iOS 8.Ottenere elenco di tutte le applicazioni installate in ios 8

Se qualcuno conosce la soluzione utilizzando API private (ma dispositivo non jailbroken) allora la sua buona e giusta.

So che è possibile utilizzare l'API di ricerca di iTunes, ma fornisce solo le applicazioni installate da iTunes. Ho bisogno di tutte le applicazioni sul dispositivo, sia che si tratti di iTunes o di app sviluppate dall'utente o di sistema.

risposta

21

provare questo. funziona, ho provato.

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

C'è un modo per fornire questo solo un elenco di identificatori di app? Come array o qualcosa del genere? –

+1

Ho visto che funzionava anche su 7.1. È questo utilizzando qualsiasi API privata, o è pubblico ??? –

+0

@AliClarke Per quanto ne so non esiste un tale modo, possiamo ottenere solo l'ID bundle dalla soluzione sopra :) – Roxasora

5

Ho rifattorizzato sopra il codice per Xcode 7.3. Funziona perfettamente su 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]);