インストールされているすべてのアプリケーション(NSArray)のリストを取得したいと考えています。私のアプリは脱獄アプリであり、/ Applicationsにありますので、サンドボックスは問題ありません。アプリストアアプリのリストを取得する方法はありますか?私はすでに他のアプリでこれを見てきました(Activator、SBSettings ...)。どのようにすればいいのか分かりません。アプリのサンドボックスにはすべて膨大なコードが含まれているため、サンドボックス内の.appフォルダにどのようにアクセスできるかわかりません。インストールされているすべてのアプリケーションのリストを取得
24
A
答えて
13
あなたは、このコードスニペットを使用することができます。
#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
6
jailbreakされたiPhoneでは、/Applications
フォルダを読むことができます。インストールされているすべてのアプリケーションがそこに行きます。ただ、NSFileManager
を使用して/Applications
内のディレクトリをリスト:
NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];
2
私はiHasAppと呼ばれるフレームワークを発見したいくつかの研究の後。ここでは、アプリ名、識別子とアイコンで辞書を返すために良い解決策がある:Finding out what Apps are installed
2
のための汚い仕事のすべてを行いますAppList library
は、もありますあなた: rpetrich/AppList これは多くの脱獄の調整で使用されているので、私は以前にここで示唆されなかった理由はわかりません。
AppStoreアプリだけを取得する方法の1つは、リストに返された各アプリの値をisSystemApplication
で確認することです。値がNO
に設定されているものは、通常のAppStoreアプリです。 の機能もありますので、あらかじめリストをフィルタリングすることも可能でしょう。
関連する問題
- 1. Blackberryにインストールされているすべてのアプリケーションのリストを取得
- 2. Android - インストールされているアプリケーションの署名のリストを取得
- 3. インストールされているアプリケーションのリストを取得
- 4. iphone objective-cにインストールされているアプリケーションのリストを取得
- 5. インストールされているWindowsアプリケーションのリストを取得
- 6. インストールされているすべてのアプリケーションのリストを取得してUWP WinRT 8.1で実行する方法
- 7. アンドロイドにインストールされているすべてのアプリケーションのキャッシュディレクトリを取得
- 8. すべてのアプリケーションのリストを取得
- 9. インストールされているアプリケーションのリスト
- 10. サポートされているすべてのダイジェストアルゴリズムのリストを取得
- 11. コンピュータにインストールされているブラウザのリストを取得する
- 12. インストールされているインスタントメッセンジャーアプリのリストを取得するには?
- 13. Swift:インストールされているすべてのアプリケーションを取得して特定のアプリケーションを開く
- 14. apt経由でUbuntuにインストールされているアプリケーションのリストを取得
- 15. インストールされているプロファイルのリストを取得
- 16. Anacondaにインストールされているパッケージのリストを取得
- 17. リモートマシンにインストールされているプログラムのリストを取得
- 18. インストールされているアンドロイドアプリケーションのリストを取得
- 19. インストールされているネットワークカードのリストを取得
- 20. インストールされたWindowsのリストを取得するアプリケーションをインストールする
- 21. アンドロイド携帯にインストールされているすべての空想のリストを取得する方法
- 22. インストールされているすべてのアプリケーションの検索方法
- 23. iPhoneにインストールされているすべてのアプリケーションの詳細を取得する方法は?
- 24. Goにインストールされているすべてのパッケージの一覧を取得
- 25. インストールされているすべてのmacOSサービスのリストを取得しますか?
- 26. Androidにインストールされているすべてのアプリケーションアイコンを取得:java.lang.ClassCastException
- 27. インストールされたDBMSのリストを取得
- 28. 実行中のすべてのアプリケーションのリストを取得
- 29. Mvc 5アプリケーションのすべてのHtmlページ名のリストを取得
- 30. インストールされているWindowsユニバーサルアプリケーションのリストを取得するには?
これは非公開のAPIですか? – iJatrat
これはプライベートAPIではありませんが、プライベートフォルダにアクセスできます。 Appleはあなたのアプリを拒否します。このコードはjailbroken iPhone専用です。 – Igor
@Fedorchuk、どのように私は通常のiOSデバイスからこのインストールされたアプリケーションリストを取得できますか?私はjailbrokenのiPhoneなしでこれを行うのに役立つPLZを意味します。 – maddysan