iOS - 拥有 URL 方案并进行测试

iOS - Own URL Scheme and test it

我的目标是测试应用程序是否安装在非越狱设备中。

首先,我尝试使用自己制作的两个应用程序。

TestApp 是我要检查的应用程序,是否已安装。

CheckApp 是提供检查的应用程序。

如果我理解的话,围绕我的目标的基本想法是利用 TestApp 个人 URL 方案。

所以,通过 Xcode,我修改了 TestApp Info.plist

然后我安装了 TestApp

现在,我在 CheckApp 中写了一个简单的方法

func isOpen(_ sender: Any) {

    let appScheme = "testapp://"
        let appUrl = URL(string: appScheme)

        if UIApplication.shared.canOpenURL(appUrl! as URL)
        {
            print("App is installed")

        } else {
            print("App not installed")
        }

}

但如果我调用它,控制台会提示我

[17596:13050537] -canOpenURL: failed for URL: "testapp://" - error: "This app is not allowed to query for scheme installpatch" App not installed

我已经用 URL 方案测试了这个方法,比如 mailto,没问题。

我哪里错了?

您可能需要将以下密钥添加到 CheckApp 中的 Info.plist 文件中,其中包含您想要的 URL 方案列表-canOpenURL(_:) 在一天结束时。

LSApplicationQueriesSchemes

这就是它在 Xcode 中的一般外观:

您需要确保您的方案在此列表中,例如"testapp"根据您的OP。


注意: 您可以在 Apple's site.

上阅读有关该键的更多信息