私はジェイルブレイクされたiPhone用のデーモンアプリを構築しており、stackoverflowともちろんChris AlvaresのWebページ(http://chrisalvares.com/blog/38/creating-an-iphone- )でいくつかの質問と回答に記載されているガイドラインに従いました。デーモン-パート-4/
Xcodeとプロジェクトは、Jailcoderによってパッチが適用され、デバイスで実行できるようになります。
ここでの投稿の1つは、現在、オープンツールチェーンテンプレートを使用する必要がなくなったと述べています。アプリを/Applicationsディレクトリにアップロードし、/ System / Library/LaunchDaemonsにplistファイルを追加するだけで十分です。
上記の手順を実行しましたが、デーモンが起動していないか、確認しても少なくとも実行されていません。Xcodeオーガナイザーで利用可能なデバイスログでは、アプリの名前またはそのバンドルIDはどこにも見つかりません。少なくとも、起動しない理由のあるエラーが予想されます。
/ System / Library / LaunchDaemonsにコピーされたplistファイルの内容:
<?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>
質問:デーモンアプリが起動しない理由をデバッグする方法はありますか?または、アプリを/ Applicationsにアップロードし、plistファイルをLaunchDaemonsディレクトリに追加する以外の手順を見逃したことがありますか?
編集:
私のメインルーチンの内容:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
/Applications/NoUIDaemon.app/NoUIDaemonの起動時にエラーが発生しました:
R-iPod:/ root# /Applications/NoUIDaemon.app/NoUIDaemon
-sh: /Applications/NoUIDaemon.app/NoUIDaemon: Bad CPU type in executable
Xcodeからデバイスで実行すると、アプリは問題なく動作することに注意してください。
デーモンを手動で起動することはできませんが、ネイトの質問に対する回答は次のとおりです。
1)LaunchDaemonsのplistファイルは実際にdmn.NoUIDaemon.plistという名前です
2)ラベルの内容の.plistの部分を忘れるという「間違い」を犯したので、最後に.plistがある場合とない場合の両方の値で試してみましたが、もちろん違いはありません。
3)rebootコマンドを使用してアプリとplistファイルの両方をインストールした後、デバイスを再起動しました
4)すべての権限が同じであることを確認しました(0775)
5)CPUの不良の問題が解決され、それでも機能しない場合にこれを試します
最終編集:
踏み台のデーモンアプリアイコンを非表示にするには、.appのInfo.plistに以下を追加します。
<key>SBAppTags</key>
<array>
<string>hidden</string>
</array>