我的目标是测试是否在非越狱设备中安装了应用。
首先,我尝试了两个我自己制作的应用程序。
TestApp 是我想要检查的应用程序,如果已安装。
CheckApp 是提供支票的应用。
如果我理解,围绕我的目标的基本想法是利用TestApp个人URL方案。
所以,通过Xcode,我修改了TestApp 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")
}
}
然后我安装了TestApp
现在,在CheckApp中,我写了一个简单的方法
[17596:13050537] -canOpenURL: failed for URL: "testapp://" - error: "This app is not allowed to query for scheme installpatch"
App not installed
但是如果我打电话给它,控制台会说我
mailto
我已经使用像serializeArray()
这样的网址方案测试了该方法,但没关系。
我哪里错了?
答案 0 :(得分:2)
您可能需要将以下密钥添加到 CheckApp 中的Info.plist
文件中,并在结尾处添加您希望-canOpenURL(_:)
的网址方案列表。那一天。
LSApplicationQueriesSchemes
在Xcode中应该如何看待它:
您需要确保您的计划在此列表中,例如根据您的OP "testapp"
。
注意: 您可以在Apple's site上详细了解该密钥。