runtime提供了一個(gè)方法直接獲取已經(jīng)安裝的app的bundle id
直接上代碼:
先包含頭文件:
#import <objc/runtime.h>
在相應(yīng)位置添加如下代碼:
Class LSApplicationWorkspace_class = NSClassFromString(@"LSApplicationWorkspace"); NSObject *workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)]; NSArray *arrAPP = [workspace performSelector:@selector(allApplications)]; NSLog(@"arrAPP: %@",arrAPP);
下面是我手機(jī)上的已安裝的部分app的bundle id:
AE6BD2A9-D1AE-4BBE-8196-22A92C8C7660.png
注意:
- 蘋果公開的api不允許獲取已安裝app的列表擎浴,除非是一些私有的api换薄。但使用私有api,在發(fā)布時(shí)不能通過App Store審核奠旺。
- 該方法適用于越獄后的設(shè)備厦幅。
- 該方法只能獲取app的bundle id沾鳄,不能獲取app中文名和icon。