UIActivityViewController在iOS 11中显示“无法加载”行

nbl*_*oqs 6 uiactivityviewcontroller ios11

我在应用程序的多个先前版本中使用了UIActivityViewController实例,以便通过AirDrop和其他服务共享内容。现在,即使没有重新编译,在iOS 11 Beta中运行应用程序时,对话框(UIActivityViewController实例)也会显示以下行,并显示消息“无法加载”

在此处输入图片说明

这是代码:

let handlerOk = { () -> Void in
    let activityItems = [NSURL(fileURLWithPath: fullPath, isDirectory: true)]
    self.viewControllerShare = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    if let viewControllerShare = self.viewControllerShare {
        viewControllerShare.popoverPresentationController?.sourceView = sender

        let excludedActivities = [
            UIActivityType.postToFacebook,
            UIActivityType.postToTwitter,
            UIActivityType.postToWeibo,
            //UIActivityType.message,
            //UIActivityType.mail,
            UIActivityType.print,
            UIActivityType.copyToPasteboard,
            UIActivityType.assignToContact,
            UIActivityType.saveToCameraRoll,
            UIActivityType.addToReadingList,
            UIActivityType.postToFlickr,
            UIActivityType.postToVimeo,
            UIActivityType.postToTencentWeibo,
            UIActivityType.openInIBooks
        ]
        viewControllerShare.excludedActivityTypes = excludedActivities

        self.present(viewControllerShare, animated: true, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,我正在Swift 4中使用XCode 9进行编译,但是如上所述,如果在iOS 11中运行该应用的旧版本(与XCode 8编译),我认为这并不重要。 (来自TestFlight)问题是相同的。因此,这确实看起来像是iOS 11 API问题...

关于对话框初始化,是否有任何新内容可能阻止“无法加载”行出现?

编辑:我测试了使用相同共享对话框的第三方应用程序(来自Apple),发现该行属于iCloud。但是我没有在我的应用程序中使用iCloud,所以以前的UIActivityViewController行为是正确的:它什么也没显示。因此,我做了一个实验:从iOS的“设置”中禁用了该第三方应用程序的iCloud权限,它显示了同样不友好的“无法加载”消息。我希望这不是最终的iOS 11版本的工作方式,而只是一个Beta问题。

就是说,仍然欢迎解决方法!谢谢!