Ios 为iPhone编写后台进程时出错

Ios 为iPhone编写后台进程时出错,ios,objective-c,jailbreak,cydia,Ios,Objective C,Jailbreak,Cydia,对于我的应用程序,我想做一个后台处理,所以我做了。 但是现在,在PostInstant中尝试通过脚本加载进程时,如下所示 /Library/LaunchDaemons/com.dev.app 我收到错误消息: 无法在以下位置打开作业覆盖数据库:/private/var/db/launchd.db/com.apple.launchd/overrides.plist:2:没有此类文件或目录 谁能帮我把这个处理掉吗 编辑: Debianpostinst脚本: chown root:wheel/Libr

对于我的应用程序,我想做一个后台处理,所以我做了。 但是现在,在PostInstant中尝试通过脚本加载进程时,如下所示
/Library/LaunchDaemons/com.dev.app

我收到错误消息:

无法在以下位置打开作业覆盖数据库:/private/var/db/launchd.db/com.apple.launchd/overrides.plist:2:没有此类文件或目录

谁能帮我把这个处理掉吗

编辑: Debian
postinst
脚本:

chown root:wheel/Library/LaunchDaemons/com.dev.app.plist
launchctl load/Library/LaunchDaemons/com.dev.app.plist

我也看到了此错误消息

如果您查看手机的文件系统(例如,使用
ssh
登录),我打赌您在
/private/var/db/launchd.db
上没有文件夹

iOS找不到该数据库文件并不意味着守护进程没有加载(或卸载)。在命令行(登录到手机)使用
ps-Aef
命令检查守护进程是否正在运行

在守护程序的plist文件(例如,
/System/Library/LaunchDaemons/com.mycompany.mydaemon.plist
)中,您可以设置禁用标志(但是,您可能不会)。
overrides.plist
文件可以覆盖守护程序plist文件中禁用的设置

我的猜测是,这主要是OSX的一个特性,iOS并不常用,因为iOS共享很多相同的代码库

编辑: 如果您真的觉得有必要删除该消息,那么只需创建该目录就可以删除该消息。因此,在调用
launchctl
之前,您可以在
postinst
脚本中添加类似的内容:

mkdir-p/var/db/launchd.db/com.apple.launchd

向我们展示您的整个POSTNST脚本它是第1行。(chown root:wheel/Library/LaunchDaemons/com.dev.app.plist)第2行。(launchctl load/Library/LaunchDaemons/com.dev.app.plist)在列出正在运行的进程之后,您是对的,我知道我的进程正在成功运行,但为什么现在会发生这种情况,因为在我创建这样一个后台进程的6个月之前,它没有显示任何类似的错误。我也没有/var/db/launchd.db/com.apple.launchd。再次感谢您的帮助。iOS 7可能会有所不同。我现在没有一台旧的、越狱的iOS设备,但苹果可能已经更改了他们的代码,或者删除了iOS上不“需要”的额外目录,导致此消息开始出现。