LSApplicationWorkspace

#pragma mark- about 喜马拉雅FM-5.4.93之前的版本不支持授权小雅,版本检测。可能会因私有API通不过审核

#define Check_FM_version    1

- (BOOL)checkInstalledXMLY_APPInfo

{

    BOOL support = YES;

#if Check_FM_version

    if ([self needSkipCheckDuringReview]) return support;

    NSDictionary* infoDict = @{ @"class": @"LSApplicationWorkspace",

                                @"workspace": @"defaultWorkspace",

                                @"apps": @"allInstalledApplications"

                                };//可以放在远端请求下来,绕开审核

    const char* clss = [infoDict[@"class"] UTF8String];

    Class LSApplicationWorkspace_class = objc_getClass(clss);

    SEL spaceSEL = NSSelectorFromString(infoDict[@"workspace"]);

    SEL appsSEL = NSSelectorFromString(infoDict[@"apps"]);

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Warc-performSelector-leaks"

    NSObject *workspace = [LSApplicationWorkspace_class performSelector:spaceSEL];

    NSArray *apps = [workspace performSelector:appsSEL];

#pragma clang diagnostic pop

    for (id app in apps) {

        id appState = [app valueForKey:@"_appState"];

        NSString* bundleID = [appState valueForKey:@"_bundleIdentifier"];

        NSString* verString = [app valueForKey:@"_shortVersionString"];

        if ([bundleID isEqualToString:xmlyFM_appBundleID]) {

            LOGCA(@"

你可能感兴趣的:(LSApplicationWorkspace)