我正在尝试文件提供程序扩展名,以在 Xcode 11 Beta(11M392r)上的MacOS 10.15 Beta 7(19A546d)上运行到目前为止,还没有设法通过示例项目启动它。该文档非常缺乏,一定是我错过了一些东西。
在 macOS Beta 8(19A558d)和 Xcode 11 GM(11A419c)中,NSFileProviderExtension
不再适用于Mac应用程序。但是该文档说它可用于Mac Catalyst应用。
当我尝试构建具有文件提供程序扩展名的Mac Catalyst应用程序时,出现以下错误:
错误:“ TestFPExtension.appex”是文件提供程序扩展,在为Mac Catalyst构建时不可用。您可能需要限制应在目标编辑器中嵌入此应用程序扩展的平台。 (在项目“ TestFP2”的目标“ TestFP2”中)
错误:为Mac Catalyst构建文件时,文件提供程序扩展名不可用。 (在项目“ TestFP2”的目标“ TestFPExtension”中)
该应用程序的构建适用于iOS,没有错误。看来该文件提供程序API尚未在Mac上完全可用。
我有一个Mac应用,该应用在启动时会执行以下操作:
let domain = NSFileProviderDomain(identifier: NSFileProviderDomainIdentifier(rawValue: "com.app.testfileprovider"), displayName: "TestFileProvider", pathRelativeToDocumentStorage: "")
NSFileProviderManager.add(domain) { error in
if let error = error {
NSLog("Could not add file provider for domain: \(error)")
return
}
guard let newManager = NSFileProviderManager(for: domain) else {
NSLog("Could not create file provider manager.")
return
}
self.manager = newManager
NSLog("File provider URL: \(newManager.documentStorageURL.path)")
}
我有时会收到此错误,不确定为什么:
无法为域添加文件提供程序:错误Domain = NSFileProviderInternalErrorDomain代码= 3“值“ com.myappbundleid”对于参数“ callerBundleID”无效。” UserInfo = {NSLocalizedDescription =值“ com.myappbundleid”对于参数“ callerBundleID”无效。}
该错误可以通过终端机中的killall Finder
命令解决,然后成功运行并输出:
文件提供者网址:/ Users / [用户名] / Library / Group Containers / group.com.myappgroup /文件提供者存储
在Finder中,“ File Provider Storage”文件夹出现并带有云标记,这似乎没问题。我想。
我有我的文件提供程序扩展名类,基本上是我在Xcode中将文件提供程序扩展名目标添加到Mac应用程序时生成的代码:
class FileProviderExtension: NSFileProviderExtension {
var fileManager = FileManager()
override init() {
NSLog("File provider initialized")
super.init()
}
...
此处File provider initialized
消息从不记录,并且扩展名也从未初始化。我根本无法启动它。
在Console.app中,这是我可以找到的唯一相关消息:
默认09:14:35.447849 + 0200 lsd com.apple.launchservices-45683955:检查是否在file:///Users/laszlo.agardi/Library/Developer/Xcode/DerivedData/FileProviderMacTest-eebpahoydvfxovantvhkplhgrcty/Build中管理应用程序/Products/Debug/FileProviderMacTest.app/Contents/PlugIns/FileProviderExt.appex//com.myapp.fptest.FileProviderExt
我到目前为止所做的事情:
我想念什么?如何获取文件提供程序扩展以在macOS Catalina上启动?