我正在为越狱的iPhone构建一个守护程序应用程序,并按照几个问题和答案中的描述在stackoverflow和当然Chris Alvares的网页http://chrisalvares.com/blog/38/creating-an-iphone-守护程序部分-4 /
Xcode和项目由Jailcoder打补丁,使其在我的设备上运行.
其中一篇文章指出,现在不再需要使用开放式工具链模板.将应用程序上传到/ Applications目录并在/ System/Library/LaunchDaemons中添加plist文件就足够了.
我已经执行了上述步骤但是守护程序没有启动,或者至少在我检查时没有运行.在Xcode管理器中可用的设备日志中,不能在任何地方找到应用程序的名称或其包ID.我至少会期待一个错误,并说明它无法启动的原因.
plist文件的内容复制到/ System/Library/LaunchDaemons:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>dmn.NoUIDaemon.plist</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/Applications/NoUIDaemon.app/NoUIDaemon</string>
<string></string>
<string></string>
</array>
<key>StandardErrorPath</key>
<string>/dev/null</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
问题:有没有办法调试它为什么不启动守护程序应用程序?或者我可能错过了将应用程序上传到/ Applications并将plist文件添加到LaunchDaemons目录的步骤?
编辑:
我的主要例程的内容:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Run Code Online (Sandbox Code Playgroud)
启动/Applications/NoUIDaemon.app/NoUIDaemon时出错:
R-iPod:/ root# /Applications/NoUIDaemon.app/NoUIDaemon
-sh: /Applications/NoUIDaemon.app/NoUIDaemon: Bad CPU type in executable
Run Code Online (Sandbox Code Playgroud)
请注意,当我从Xcode在我的设备上运行它时,该应用程序可以正常工作.
虽然守护程序无法手动启动,但Nate的问题答案如下:
1)LaunchDaemons中的plist文件确实命名为dmn.NoUIDaemon.plist
2)我在标签内容中忘记了.plist部分的'错误',所以我尝试了两个值,最后有和没有.plist,没有差异.
3)在使用reboot命令安装app和plist文件后,我重新启动了设备
4)我确保所有权限都相同(0775)
5)当坏CPU问题得到解决并且仍然无效时,将尝试此操作
最终编辑:
要在跳板上隐藏您的守护程序应用程序图标,请将以下内容添加到.app中的Info.plist: …