Chciałbym uzyskać listę wszystkich zainstalowanych aplikacji (NSArray). Moja aplikacja jest aplikacją jailbreak i znajduje się w/Applications, więc Sandbox nie ma problemu. Czy istnieje sposób na uzyskanie listy aplikacji sklepu z aplikacjami? Widziałem to już w innych aplikacjach (Activator, SBSettings ...). Nie mam pojęcia, jak to zrobić, ponieważ wszystkie piaskownice aplikacji mają tak duży kod, więc nie wiem, w jaki sposób można uzyskać dostęp do folderu .app wewnątrz piaskownicy.Wyświetl listę wszystkich zainstalowanych aplikacji.
Odpowiedz
Można użyć tego fragmentu kodu:
#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
Na iPhones z jailbrowaniem można po prostu przeczytać folder /Applications
. Wszystkie zainstalowane aplikacje tam idą. Tylko lista katalogów w /Applications
użyciu NSFileManager
:
NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];
Po niektórych badań znalazłem ramy nazwie iHasApp. Tutaj jest dobrym rozwiązaniem, aby powrócić do słownika z nazwą aplikacji, identyfikatora i ikony: Finding out what Apps are installed
Istnieje również AppList library
, który zrobi wszystko, od brudnej roboty dla ty: rpetrich/AppList Jest używany w wielu zmianach w Jailbreak, więc nie wiem, dlaczego nie było tu sugerowane wcześniej.
Jednym ze sposobów uzyskania tylko aplikacji AppStore jest sprawdzenie wartości isSystemApplication
dla każdej aplikacji zwróconej na liście. Te z wartością ustawioną na NO
są zwykłymi aplikacjami AppStore. Istnieje również funkcja , więc być może byłoby nawet możliwe wcześniejsze filtrowanie listy.
- 1. Jak uzyskać listę wszystkich zainstalowanych aplikacji do routingu?
- 2. Wyświetl listę wszystkich właściwości obiektu
- 3. Jak uzyskać listę wszystkich zainstalowanych czcionek?
- 4. Pobierz ikony wszystkich zainstalowanych aplikacji w Androidzie
- 5. Wyliczanie wszystkich zainstalowanych aplikacji na OS X
- 6. Linux: wyświetl listę wszystkich dostępnych menedżerów okien.
- 7. Wyświetl listę wszystkich testów w projekcie Django
- 8. Wyświetl listę wszystkich elementów w tablicy JavaScript
- 9. Wyświetl listę aktywnych PendingIntents w aplikacji AlarmManager
- 10. Wyświetl listę aplikacji do otwierania określonego pliku
- 11. Lista wszystkich zainstalowanych certyfikatów na Androidzie
- 12. uzyskać listę zainstalowanych aplikacji na obiektyw iphone-c
- 13. Alphabatize lista zainstalowanych aplikacji
- 14. Wyświetl listę wszystkich udostępnionych folderów UNC na serwerze sieci lokalnej.
- 15. Wyświetl listę wszystkich otwartych okien przy użyciu AutoIt
- 16. Wyświetl listę wszystkich otwartych okien z wiersza poleceń
- 17. Wyświetl listę wszystkich użytkowników bazy danych o określonej roli
- 18. Sprawdź listę modułów zainstalowanych w komputerze
- 19. Jak uzyskać listę zainstalowanych dostawców OLE DB?
- 20. Meteor: Jak wyświetlić listę zainstalowanych pakietów
- 21. Jak odbudować rdoc dla wszystkich zainstalowanych klejnotów?
- 22. Wyświetl listę obsługiwanych walut w iOS
- 23. Wyświetl listę plików w Cloud Storage (Java)
- 24. Przewiń listę Wyświetl płynnie i programowo
- 25. Lista wszystkich aplikacji zainstalowanych na urządzeniu z systemem iOS i ich pozycja na ekranie głównym (Springboard)
- 26. Jak wyświetlić listę zainstalowanych pakietów z danego repo używając yum
- 27. Wyświetl listę kontroli podrzędnych wewnątrz skrzynki grupowej
- 28. Wyświetl listę galerii zdjęć na Androidzie
- 29. Jak wyświetlić listę wszystkich zainstalowanych pakietów i ich wersji w Pythonie?
- 30. Wyświetl listę i listę adapterów do wyświetlania json
Czy to nie jest prywatny API? – iJatrat
To nie jest prywatny interfejs API, ale otrzymujemy dostęp do prywatnego folderu. Apple odrzuci twoją aplikację. Użyj tego kodu tylko dla iPhone'a z jailbreakiem. – Igor
@Fedorchuk, jak mogę uzyskać tę listę zainstalowanych aplikacji z normalnych urządzeń z systemem iOS, mam na myśli bez jailbroken iPhones, plz mi pomóc to zrobić. – maddysan