以编程方式列出iOS设备中安装的所有应用程序的版本

时间:2016-01-18 07:12:22

标签: objective-c iphone cocoa-touch ios9 xcode7

我需要以编程方式为非越狱的iOS设备获取所有已安装应用程序的版本。 有可能实现这个目标吗?

2 个答案:

答案 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