检测 iPhone 上的应用安装失败

Detecting an app installation on iPhone is failing

我正在尝试使用我的代码检查 Spotify 是否安装在 iPhone 上,并且 Spotify 是否已安装在我的设备上。但是它总是在

下面代码的 else 块中
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"spotify://"]]) {
    //open spotify
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"spotify://"]];
}
else
{
    [SVProgressHUD showErrorWithStatus:@"Spotify was not installed"];
    [SVProgressHUD dismissWithDelay:1.00];
}

但是我可以使用下面的代码成功打开 Spotify:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"spotify://"]];

我想知道为什么 canOpenURL 不适用于 Spotify 而它适用于 Apple Musicmusic:// URL 方案。

  if ([[UIApplication sharedApplication] canOpenURL:
                 [NSURL URLWithString:@"spotify://"]])

            {
                NSLog(@"App Found");
            }
 else
            {
                NSLog(@"App Not Found");
            }

如果您的应用是在 iOS 9.0 或之后链接的,您必须声明要传递给此方法的 URL 方案。通过将 LSApplicationQueriesSchemes 键添加到应用程序的 Info.plist 文件来执行此操作。如果您为未使用该键声明的方案调用此方法,则此方法始终 returns false,无论是否安装了适当的应用程序。要了解有关密钥的更多信息,请参阅 LSApplicationQueriesSchemes