在cocoa app bundle中的plist文件中显示“获取”用户权限

时间:2015-03-05 09:41:30

标签: objective-c macos cocoa permissions plist

在我的cocoa应用程序中,我使用一个plist文件(preference.plist)将首选项保存在app bundle中。我正在使用包装制造商打包我的应用程序(业务要求)。为此,我将构建我的应用程序并导出为Developer ID-Signed应用程序。如果我检查我的应用的共享和权限信息,它将显示如下

enter image description here

在我的本地系统中,我可以使用此用户权限在此preference.plist文件上写入。如果我在我的客户端计算机上安装它,它会一直显示提取。

enter image description here

在这种情况下,我无法写入preference.plist文件。不知道为什么我的应用程序出现这种奇怪的行为。希望以上场景能解释我的问题。请提供解决方案来解决此问题。

2 个答案:

答案 0 :(得分:0)

您不应将可写文件存储在应用包中,特别是如果您打算对该包进行签名。

如果您无法在应用程序中存储您的首选项用户默认值,那么您的应用程序应该在用户或系统应用程序支持目录中创建一个目录来保存其文件(通常以其包ID命名) - 您可以使用{{1找到它的URL请求URLsForDirectory

执行上述操作可以解决您的权限问题(如果使用沙盒,则可以正常工作)。

HTH

答案 1 :(得分:0)

是的,我从link

获得了参考资料

在一个系统和另一个系统之间复制文件时,有时文件的权限和所有者都将不正确。您可能需要更改文件的所有者,因为由于权限问题,用户无法编辑该文件。

我们将依靠“chown”命令直接从命令行更改指定文件组的所有者。

chown命令:

sudo chown -Rv $USER /Applications/TEST.app

这个命令工作正常。现在在许可区域,它没有显示“获取”。我已将此命令包含在package maker post脚本中。