コーディングの助けを借りて、iPhoneにインストールされているすべてのアプリを一覧表示する必要があります。私は脱獄したiPhoneを使用しています。ihasapp APIを使用しましたが、インストールされているすべてのアプリの完全なリストが表示されません。コードを手伝ってください。
5 に答える
iPhoneにインストールされているすべてのアプリケーションのリストを取得しました。プライベートフレームワークを使用していますが、ジェイルブレイクされたデバイスではありません。コードの一部の下に注意してください。
#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]);
私はこのコードを試しましたが、iOS9でうまく機能しています。
プライベートAPIがありますSBSCopyApplicationDisplayIdentifiers
署名は次のとおりです
CFArrayRef SBSCopyApplicationDisplayIdentifiers(bool onlyActive、bool debuggable);
SpringboardServicesフレームワークにリンクして使用すると、インストールされているアプリのリストが返されます。
アップデート1
ここからコピーした使用例を次に示します
CFArrayRef SBSCopyApplicationDisplayIdentifiers(bool onlyActive, bool debuggable);
int main() {
char buf[1024];
CFArrayRef ary = SBSCopyApplicationDisplayIdentifiers(false, false);
for(CFIndex i = 0; i < CFArrayGetCount(ary); i++) {
CFStringGetCString(CFArrayGetValueAtIndex(ary, i),buf, sizeof(buf), kCFStringEncodingUTF8);
printf("%s\n", buf);
}
return 0;
}
praviteフレームワークSpringboardServicesにリンクすることを忘れないでください。
AppListライブラリを自分で使用して、インストールされているすべてのアプリのリストを取得します。プライベートフレームワークを使用しているため、ジェイルブレイクのみです。https://github.com/rpetrich/AppListで確認してください。
更新:@Nateは、これがすでに質問され、回答されていることについて正しいです。チェックアウト:インストールされているすべてのアプリのリストを取得
iOS 11にインストールされているアプリのリストを取得するためにたくさん検索しましたが、このデバイスに現在インストールされているアプリケーションを確認するためのコードがあります。
//If the device is iOS11
if ([[UIDevice currentDevice].systemVersion floatValue] >= 11.0) {
NSBundle *container = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/MobileContainerManager.framework"];
if ([container load]) {
Class appContainer = NSClassFromString(@"MCMAppContainer");
id test = [appContainer performSelector:@selector(containerWithIdentifier:error:) withObject:bundleId withObject:nil];
NSLog(@"%@",test);
if (test) {
return YES;
} else {
return NO;
}
}
return NO;
}
これを試して。
NSArray *appList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/Applications" error:nil];
NSLog(@"%@",appList);