Me gustaría obtener una lista de todas las aplicaciones instaladas (NSArray). Mi aplicación es una aplicación de jailbreak y se encuentra en/Applications, por lo que Sandbox no es problema allí. ¿Hay alguna forma de obtener una lista de aplicaciones de la tienda de aplicaciones? Ya lo he visto en otras aplicaciones (Activator, SBSettings ...). No tengo idea de cómo hacer esto, porque todos los sandboxes de aplicaciones tienen ese código enorme, así que no sé cómo sería posible acceder a la carpeta .app dentro del entorno limitado.Obtener lista de todas las aplicaciones instaladas
Respuesta
Puede utilizar este fragmento de código:
#import "InstalledAppReader.h"
static NSString* const installedAppListPath = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";
@interface InstalledAppReader()
-(NSArray *)installedApp;
-(NSMutableDictionary *)appDescriptionFromDictionary:(NSDictionary *)dictionary;
@end
@implementation InstalledAppReader
#pragma mark - Init
-(NSMutableArray *)desktopAppsFromDictionary:(NSDictionary *)dictionary
{
NSMutableArray *desktopApps = [NSMutableArray array];
for (NSString *appKey in dictionary)
{
[desktopApps addObject:appKey];
}
return desktopApps;
}
-(NSArray *)installedApp
{
BOOL isDir = NO;
if([[NSFileManager defaultManager] fileExistsAtPath: installedAppListPath isDirectory: &isDir] && !isDir)
{
NSMutableDictionary *cacheDict = [NSDictionary dictionaryWithContentsOfFile: installedAppListPath];
NSDictionary *system = [cacheDict objectForKey: @"System"];
NSMutableArray *installedApp = [NSMutableArray arrayWithArray:[self desktopAppsFromDictionary:system]];
NSDictionary *user = [cacheDict objectForKey: @"User"];
[installedApp addObjectsFromArray:[self desktopAppsFromDictionary:user]];
return installedApp;
}
DLOG(@"can not find installed app plist");
return nil;
}
@end
En iPhones jailbroken, puede leer la carpeta /Applications
. Todas las aplicaciones instaladas van allí. Basta con enumerar los directorios en los /Applications
usando NSFileManager
:
NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];
Que solo lee las aplicaciones preinstaladas y las aplicaciones de cydia, estoy hablando de las aplicaciones de la tienda de aplicaciones. – JonasG
Pruebe la carpeta de aplicaciones del usuario 'mobile' y luego:'/private/var/mobile/Applications' –
@ BjörnMarschollek: Muchísimas gracias. Yo me ayudé mucho – Pushkraj
Después de algunas investigaciones he encontrado un marco llamado iHasApp. Aquí es una buena solución para devolver un diccionario con nombre de la aplicación, identificador y el icono: Finding out what Apps are installed
También existe la AppList library
, que va a hacer todo el trabajo sucio para usted: rpetrich/AppList Se usa en muchos ajustes de Jailbreak, por lo que no sé por qué no se sugirió antes.
Una forma de obtener solo aplicaciones de AppStore sería comprobar el valor de isSystemApplication
para cada aplicación devuelta en la lista. Aquellos con el valor establecido en NO
son aplicaciones regulares de AppStore. También hay una función applicationsFilteredUsingPredicate:predicate
, por lo que quizás incluso sería posible filtrar la lista de antemano.
- 1. Obtener lista de aplicaciones de Android instaladas
- 2. Cómo obtener todas las aplicaciones instaladas en el teléfono Android
- 3. Obtener iconos de todas las aplicaciones instaladas en Android
- 4. Alphabatize lista de aplicaciones instaladas
- 5. Filtrar aplicaciones que no se pueden abrir al obtener todas las aplicaciones instaladas
- 6. Obtenga una lista de todas las aplicaciones instaladas en Django y sus atributos
- 7. obtener lista de aplicaciones instaladas en iphone objetivo-c
- 8. ¿Cómo se obtiene una lista de todas las fuentes instaladas?
- 9. ¿Cómo obtener una lista de todas las NSWindow abiertas desde todas las aplicaciones en ejecución?
- 10. ¿Cómo obtengo todas las fuentes de ancho fijo instaladas?
- 11. ¿Cómo puedo enumerar/enumerar todas las aplicaciones instaladas en Windows XP?
- 12. ¿Dónde almacena el simulador de iPhone las aplicaciones instaladas?
- 13. Applescript: enumere todas las aplicaciones en ejecución
- 14. ¿Cómo obtengo una lista de las actualizaciones y revisiones instaladas?
- 15. ¿Cómo reconstruir rdoc para todas las gemas instaladas?
- 16. Obtenga aplicaciones instaladas en un sistema
- 17. ¿Cómo obtengo una lista de impresoras instaladas?
- 18. MongoDB: ¿Obtener la lista de todas las bases de datos?
- 19. Android: Cómo obtener una lista de actividades instaladas, tal como aparecen en el iniciador, sin duplicados
- 20. android dexclassloader obtener la lista de todas las clases
- 21. Ruby Rspec. Obtener la lista de todas las pruebas
- 22. Windows: ¿cómo obtener una lista de todas las ventanas visibles?
- 23. Obtener una lista de todas las etiquetas únicas en mongodb
- 24. Obtener una lista de todas las sesiones activas en ASP.NET
- 25. Salir de todas las aplicaciones con Applescript?
- 26. Recuperar de forma programada la lista de aplicaciones instaladas que admiten un tipo de archivo dado
- 27. Lista de todas las confirmaciones de git?
- 28. Versiones de bases de datos en aplicaciones instaladas usando Delphi
- 29. Encontrar una lista de todas las aplicaciones de Android en el mercado
- 30. Obtener todas las columnas de todas las tablas MySQL
¿Esto es una API privada? – iJatrat
Esto no es una API privada, pero tenemos acceso a la carpeta privada. Apple rechazará tu aplicación. Use este código solo para iPhone con jailbreak. – Igor
@Fedorchuk, ¿cómo puedo obtener esta lista de aplicaciones instaladas desde dispositivos iOS normales quiero decir sin iPhones jailbreak, por favor ayúdenme a hacer esto. – maddysan