该应用程序不允许查询方案 XYZ://

2023-11-29

您可能认为这是一个重复的问题,但事实并非如此,我完全知道有关该问题的所有答案canOpenURL及其在 iOS 9 上的注意事项,但这是我的问题:

我正在尝试检查我的设备上是否安装了特定的应用程序(均由我开发)。 我已宣布该计划AppA as:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.my.company.id</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>XYZ</string>
        </array>
    </dict>
</array>

在另一个应用程序上,AppB我在info.plist中添加了:

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>XYZ</string>
</array> 

Now, in AppB我想知道我是否有AppA像这样安装:

     internal static let appAScheme = "XYZ://"

 static func  AppAInstalled() -> Bool {

    let appAURL = NSURL(string: appAScheme)

    return UIApplication.sharedApplication().canOpenURL(appAURL!)


}

它总是会回来

-canOpenURL:URL 失败:“XYZ://” - 错误:“此应用程序不是 允许查询方案 XYZ"

然而,如果我尝试打开AppA from AppB它会毫无问题地工作!

// Works alright
UIApplication.sharedApplication().openURL(appAURL!)

我不明白为什么!


我已经找到了我自己问题的解决方案。我在这里回答它,而不是仅仅删除我的问题,因为有一天它可能会对某人有所帮助。

这里的问题是我正在尝试为其他开发人员开发一个框架,我有一个测试应用程序,我用它来检查我的框架是否一切正常。我正在设置LSApplicationQueriesSchemes框架目标内的值,而不是实际的测试应用程序。所以:

您需要在应用程序目标的 info.plist 中设置白名单值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

该应用程序不允许查询方案 XYZ:// 的相关文章

随机推荐