如何修复我的Cydia应用程序的用户目录权限?

时间:2012-06-29 10:32:01

标签: ios xcode crash cydia

我在Cydia上托管的应用程序出现问题。 用户抱怨应用程序在启动时崩溃。 该应用程序使用CoreData,我认为它与此有关。 奇怪的是,它在测试时使用模拟器或我的设备正常工作。 但是一旦通过Cydia安装它就会崩溃。

事实证明,使用SBSettings的“修复用户目录权限”可以解决此问题。

现在该怎么办?

1 个答案:

答案 0 :(得分:0)

我刚刚与BigBoss的存储库人员就此进行了讨论。

我从来没有真正得到一个明确的答案,但在我看来,就像Cydia安装你的应用程序时,它不一定为你的应用程序设置所有权(显式)。这对我来说似乎很奇怪。在我的情况下,他们正在测试安装我的应用程序,并看到它由user / group = {1000/100}拥有,这是我正在准备我的.deb包的机器上的linux用户ID和组ID!

如果我构建一个.deb包,将其部署到我自己的本地测试存储库,并使用Cydia(指向我自己的repo)安装它,我也会看到同样的行为。

无论如何,我向他们解释了这一点,并且他们做了一些事来解决它(没有任何更多来自我)。

但是,另一个选择是手动修复安装后脚本中的权限。在.deb包中,您将拥有此文件夹和文件结构:

  • DEBIAN / control
  • DEBIAN / postrm
  • DEBIAN / postinst
  • DEBIAN / PREINST

如果你把它放在你的 postinst 脚本中,我认为应该立即解决这个问题,而不必事后进入SBSettings:

#!/bin/bash

chown -R root.wheel /Applications/MyAppName.app/

exit 0

例如,如果您需要创建其他目录,则可以在脚本中执行更多操作。但是,上述内容至少足以改变.app目录本身的所有权。

This BigBoss link建议在应用的代码中创建其他目录,并指出安装程序以 root 运行,而您的应用通常以用户移动即可。根据您正在做的事情,最好在postinst(root)或应用(移动)中修改所有权/权限。