IOS8でプログラムによってiPhoneデバイスにインストールされているすべてのアプリケーションのリストを取得する方法。
プライベートAPIを使用してソリューションを知っている人がいる場合(ただし、デバイスはジェイルブレイクされていません)、それは問題ありません。
ITunes Search APIを使用して可能であることは知っていますが、iTunesからインストールされたアプリケーションのみが提供されます。 iTunesからのものであれ、ユーザーが開発したものであれ、システムアプリであれ、デバイス上のすべてのアプリケーションが必要です。
これを試して。それは動作します、私はテストしました。
#include <objc/runtime.h>
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]);
上記のコードをXcode7.3用にリファクタリングしました。 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]);