我需要以编程方式为非越狱的iOS设备获取所有已安装应用程序的版本。 有可能实现这个目标吗?
答案 0 :(得分:3)
可以,请尝试以下代码。
adb push
为此,您需要在应用中放置4个课程:
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
for (LSApplicationProxy *apps in [workspace performSelector:@selector(allApplications)])
{
NSString *localizedName = apps.localizedName;
if([apps.applicationType isEqualToString:@"User"])
{
NSLog(@"\nlocalizedName: %@",localizedName);
NSLog(@"minimumSystemVersion: %@",apps.minimumSystemVersion);
NSLog(@"fileSharingEnabled: %d",apps.fileSharingEnabled);
NSLog(@"sdkVersion: %@",apps.sdkVersion);
NSLog(@"teamID: %@",apps.teamID);
}
}
答案 1 :(得分:0)
在iOS8及之前,我们可以使用canOpenUrl来获取已注册方案的已安装应用程序。在iOS9中,您必须在info.plist文件中添加“白名单”。只能检查“白名单”中的应用程序。而且“白名单”的限制数为50.所以你最好越狱你的设备。
查看更多信息:How to check particular app is already installed on iphone device or not?
另一个:http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl.html