1

我正在使用 Unity 3.5,试图为我的应用程序制作一个独立的 OSX 播放器。一切都很顺利,直到我使用 productbuild 从中制作了一个 pkg。

我的 productbuild 行的语法如下:

productbuild --component ProjectName.app "/Applications" --sign "$signingid" ProjectName.pkg

尽管这最初似乎有效,并且在请求超级用户的许可后生成了一个似乎可以正确安装应用程序的 pkg 文件,但是当我运行已安装的应用程序时,我发现它没有保留我的保存数据。Application.datapath显然,在这种情况下设置为“/Applications/ProjectName.app/Contents/”,并且不可全局写入。

据我所知,我有两个可能的解决方案:第一个是找到某种方法来确保在我的应用程序开始时它Application.datapath 是可写的。但是,我不知道该怎么做。我能看到的唯一其他解决方案是对我的应用程序进行所有必要的更改,使其不再假定它Application.datapath是可写的,并且我需要建立另一个位置来保存我的持久数据。如果我采用后一种方法,我还需要知道 Unity 是否提供了一种工具来获取可以存储此类数据的目录,因为我目前不知道。

如果除了我上面概述的两种方法之外还有其他方法,我绝对愿意接受替代方案,但如果有人可以帮助我完成我需要知道的以完成上述任何一种方法,我会在这方面同样感激也是。

提前感谢任何人都可以提供的任何帮助。

4

1 回答 1

1

Application.datapath是 root 存储和拥有应用程序的位置。要在运行之间获取用于存储持久数据的目录,您需要Application.persistentDataPath,默认情况下它位于~/Library/下。我没有使用过 OSX 独立播放器,但至少对于编辑器播放器和 iOS,它是这样工作的。

于 2013-03-20T08:21:16.870 回答