Macos 在Mac沙盒应用程序中访问sidecar文件

Macos 在Mac沙盒应用程序中访问sidecar文件,macos,cocoa,sandbox,appstore-sandbox,xmp,Macos,Cocoa,Sandbox,Appstore Sandbox,Xmp,我需要在基于文档的照片编辑器应用程序中访问sidecar XMP文件。 图像文件就是文档,当用户打开并保存图像文档时,我需要访问sidecar XMP文件 是否可以在基于文档的沙盒应用程序中访问sidecar文件(如XMP) 我知道这在默认情况下是不可能的,但允许这种情况所需的最小临时安全例外是什么 是否有一种不使用临时异常的解决方法 请注意,无法保证将图像文件文档范围的书签添加到侧车上(因为它们可能是由不同平台上的其他应用程序创建的),因此此解决方案不起作用。虽然这个问题很老,但我想我会分享我

我需要在基于文档的照片编辑器应用程序中访问sidecar XMP文件。 图像文件就是文档,当用户打开并保存图像文档时,我需要访问sidecar XMP文件

是否可以在基于文档的沙盒应用程序中访问sidecar文件(如XMP)

我知道这在默认情况下是不可能的,但允许这种情况所需的最小临时安全例外是什么

是否有一种不使用临时异常的解决方法


请注意,无法保证将图像文件文档范围的书签添加到侧车上(因为它们可能是由不同平台上的其他应用程序创建的),因此此解决方案不起作用。

虽然这个问题很老,但我想我会分享我的解决方案。您可以在apps info.plist中将NSIsRelatedItemType设置为true的情况下,向CbundleDocumentTypes部分添加条目。然后,您的沙盒应用程序将能够打开用户授予权限的任何文件,该文件具有相同的名称,但具有您列出的扩展名。下面是xmp侧车文件的示例:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>xmp</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>XMP sidecar</string>
        <key>CFBundleTypeRole</key>
        <string>None</string>
        <key>NSIsRelatedItemType</key>
        <true/>
    </dict>
</array>
CbundleDocumentTypes
CbundleTypeExtensions
xmp
CbundleTypeName
XMP侧车
CbundleTypeRole
没有一个
NSIsRelatedItemType

您还需要一个文件演示器,如图所示。还有,你知道吗?