2

我正在对现有应用程序进行沙盒处理,由于某些原因,迁移似乎不起作用,尽管我完全遵循文档中指定的内容。总之,这就是我正在做的事情:

  1. 我已经删除了现有的容器(在 ~/Library/Containers/com.mycompany.myapp 中);
  2. container-migration.plist在资源组中创建了;
  3. 我想迁移一个文件,在~/Application Support: 我试图指定文件和封闭文件夹,但都没有工作。这是我正在使用的迁移 plist(我刚刚更改了应用程序名称),其中包含以下文件夹:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            <key>Move</key>
            <array>
                <string>${ApplicationSupport}/myapp</string>
            </array>
        </dict>
    </plist>
    
  4. 当我启动应用程序时,会创建新容器,并创建一个空白文件但不执行迁移。

我要迁移的文件是 CoreData SQLite 存储。数据模型没有改变,因此不涉及数据迁移,我只是试图将 CoreData 存储移动到沙盒容器中。

我想我错过了一些非常明显的东西,因为我找不到任何有用的东西,任何帮助将不胜感激。

4

1 回答 1

3

在发布问题后,我在系统日志中注意到了这个错误:

13/11/2012 4:59:59.026 PM sandboxd[55845]: ([55835]) myapp(55835) deny file-read-data /Volumes/Mac_HD/Users/me/Library/Developer/Xcode/DerivedData/myapp-hfgnivbvxutfvcxjmyntrenofdsh/Build/Products/Debug no receipt verif

我试图在运行之前将应用程序复制到我的桌面,然后它就可以正常工作了。我不明白为什么从构建文件夹迁移不起作用,但这足以解决我的问题。

希望这将避免其他人浪费他们的时间。

于 2012-11-13T09:57:19.677 回答