访问Mac沙盒应用中的sidecar文件

时间:2013-02-08 12:22:54

标签: macos cocoa sandbox appstore-sandbox xmp

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

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

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

有没有使用临时例外的解决方法?

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

1 个答案:

答案 0 :(得分:2)

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

<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>