我在Cydia上托管的应用程序出现问题。 用户抱怨应用程序在启动时崩溃。 该应用程序使用CoreData,我认为它与此有关。 奇怪的是,它在测试时使用模拟器或我的设备正常工作。 但是一旦通过Cydia安装它就会崩溃。
事实证明,使用SBSettings的“修复用户目录权限”可以解决此问题。
现在该怎么办?
答案 0 :(得分:0)
我刚刚与BigBoss的存储库人员就此进行了讨论。
我从来没有真正得到一个明确的答案,但在我看来,就像Cydia安装你的应用程序时,它不一定为你的应用程序设置所有权(显式)。这对我来说似乎很奇怪。在我的情况下,他们正在测试安装我的应用程序,并看到它由user / group = {1000/100}拥有,这是我正在准备我的.deb包的机器上的linux用户ID和组ID!
如果我构建一个.deb包,将其部署到我自己的本地测试存储库,并使用Cydia(指向我自己的repo)安装它,我也会看到同样的行为。
无论如何,我向他们解释了这一点,并且他们做了一些事来解决它(没有任何更多来自我)。
但是,另一个选择是手动修复安装后脚本中的权限。在.deb包中,您将拥有此文件夹和文件结构:
如果你把它放在你的 postinst 脚本中,我认为应该立即解决这个问题,而不必事后进入SBSettings:
#!/bin/bash
chown -R root.wheel /Applications/MyAppName.app/
exit 0
例如,如果您需要创建其他目录,则可以在脚本中执行更多操作。但是,上述内容至少足以改变.app目录本身的所有权。
This BigBoss link建议在应用的代码中创建其他目录,并指出安装程序以 root 运行,而您的应用通常以用户移动即可。根据您正在做的事情,最好在postinst
(root)或应用(移动)中修改所有权/权限。