swift2 Swift -“sharedApplication不可用,”在适当的情况下使用基于视图控制器的解决方案

gpfsuwkq  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(182)

我正在Swift应用程序中打开一个外部URL,使用以下行:

UIApplication.sharedApplication().openURL(url)

在我通过CocoaPods将Realm添加到我的项目之前,这一直运行良好。在那一刻,它开始给我带来下面两个编译错误:
“sharedApplication()"不可用:在适当的情况下,请改用基于视图控制器的解决方案。
无法使用'openURL'
这些错误表明API对于应用程序扩展不可用,但是我的代码在一个普通的应用程序中,而不是一个扩展中。为什么添加Realm会导致编译器认为它在一个应用程序扩展中?

tuwxkamq

tuwxkamq1#

您不能从应用程序扩展使用sharedApplication
但请注意,Apple文档指出:
重要提示
Apple允许任何“今日”Widget使用openURL:completionHandler:方法来打开小部件自身的包含应用程序。
ExtensionOverview.

jogvjijk

jogvjijk2#

将Realm添加到使用V0.39之前的CocoaPods版本的项目时,可能会出现此问题。要解决此问题,请使用以下命令更新到最新版本的CocoaPods:

sudo gem install cocoapods

此问题是由于CocoaPods issue #3906造成的,它会导致Realm的部分配置设置应用于应用程序的目标。Realm启用的设置之一是“仅允许应用程序扩展API”,这就是您最终看到此特定错误的原因。

vlf7wbxs

vlf7wbxs3#

即使使用CP v1.8.3,我仍然遇到同样的问题。
一个快速的解决方法是选择有问题的窗格〉构建设置〉仅要求应用扩展安全API〉设置为否。

相关问题