SQLite和Sandboxed OSX应用程序

时间:2016-02-16 02:10:34

标签: xcode macos sqlite

我正在编写这个小工具来查询和更新sqlite数据库。

我们需要查询的数据库文件不在沙箱中,而是外部文件。

当我对应用程序进行沙盒处理时,它可以访问.db文件而不是wal或shm文件阻止我更新数据库。

现在关于沙盒的文档之后,它提到了一些关于相关文件的内容。

但它也说

注意:对于SQLite日志文件,从10.8.2开始,如果打开SQLite数据库,日志文件,预写日志文件和共享内存文件会自动添加到相关项列表中,所以这步骤是不必要的。

我还将此添加到我的plist文件

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>db</string>
            <string>sqlite</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>SQLite Database</string>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
    </dict>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>*</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>Other Document Type</string>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
    </dict>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>db-shm</string>
            <string>db-wal</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>Support Type</string>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>NSIsRelatedItemType</key>
        <true/>
    </dict>
</array>
任何人都知道如何解决这个问题

0 个答案:

没有答案