MacOS - 使用 iCloud 为 iOS/MacOS 创建 Finder 同步扩展

MacOS - creating Finder Sync Extension with iCloud for iOS/MacOS

这是一个非常理论化的问题,但对我来说非常重要,我如何处理我的下一步。

我正在开发一个 SwiftUI MacOS 应用程序,用户可以在其中上传自己的文件。元数据存储在 CoreData 中,文件我手动存储在文件系统中。目前我正在为我的应用程序使用默认文件夹。

很快我想在我的 Mac OSX 应用程序和我的 iOS 应用程序之间进行 iCloud 同步。我读到了它,它应该可以工作。 CoreData应该没问题。

现在我的问题是,是否有可能以我正在考虑的方式处理它:

我想为我的 Mac OSX 应用程序创建一个 Finder Sync 扩展,这样我就有了一个自己的文件夹,可以将其添加到收藏夹并进行观察。我希望我所有的本地文件都存储在那里。那应该有用..

我不会将我的文档存储在 CoreData 的数据 blob 中或允许外部存储。我手动存储所有。我还能通过 iCloud 同步我的文档吗?

总而言之,我想知道我是否可以将我的文件存储在 Finder 文件夹中,并且仍然让它们与 iCloud 同步到 iOS?如果那不可能,请告诉我。正手知道会很有趣。

Finder 同步扩展不应“执行”任何同步。事实上,Apple 特别建议为任何类似网络的网络使用单独的后台进程 activity:

It’s generally best if the extension focuses on handling the badges, contextual menus, and toolbar buttons. Place in a separate service (a Login Item or Launch Agent) any code that performs the sync, updates state, or communicates with remote data sources. This approach ensures that there is only one syncing service running at a time.

https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/Finder.html

Finder Sync Extension 用于提供文件标记、菜单以及修改 Finder 的 UI。

添加 Finder 扩展不会给您一个文件夹,更不用说同步了。

您需要提供文件夹以及与之相关的所有沙盒详细信息。您的主应用 and/or 后台进程需要提供同步服务。

总而言之,您的主应用会处理所有同步。

Finder 扩展 更新某些文件夹的 UI。它本身不提供任何同步。因此,您应该独立于 Finder 同步扩展上下文询问任何“与 iCloud 同步”的问题。