Sto costruendo un'applicazione demone per un iPhone jailbroken e seguito le linee guida, come descritto in diverse domande e risposte qui su StackOverflow e naturalmente pagina web Chris Alvares' a http://chrisalvares.com/blog/38/creating-an-iphone-daemon-part-4/L'app iOS Daemon non verrà avviata (jailbreak) - come eseguire il debug?
Xcode e il progetto vengono modificati da Jailcoder per renderlo eseguire sul mio dispositivo.
Uno dei post qui ha dichiarato che al giorno d'oggi non è più necessario utilizzare il modello di toolchain aperto. Caricare l'app nella directory/Applications e aggiungere un file plist in/System/Library/LaunchDaemons dovrebbe essere sufficiente.
Ho eseguito i passaggi precedenti ma il daemon non è stato avviato, o almeno non è in esecuzione quando controllo. Nei registri del dispositivo che sono disponibili nell'organizer Xcode, il nome dell'app o il relativo ID del bundle non possono essere trovati da nessuna parte. Mi aspetterei almeno un errore con una ragione per cui non si avvierebbe.
Il contenuto del file plist copiati/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>
Domanda: c'è un modo per eseguire il debug il motivo per cui non si avvia l'applicazione daemon? O forse ho perso un passaggio oltre a caricare l'app in/Applicazioni e ad aggiungere il file plist alla directory LaunchDaemon?
EDIT:
contenuto della mia routine principale:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
errore all'avvio /Applications/NoUIDaemon.app/NoUIDaemon:
R-iPod:/ root# /Applications/NoUIDaemon.app/NoUIDaemon
-sh: /Applications/NoUIDaemon.app/NoUIDaemon: Bad CPU type in executable
Si noti che l'applicazione funziona senza problemi quando lo eseguo sul mio dispositivo da Xcode.
Benche 'il demone non può essere avviato manualmente, le risposte alle domande di Nate:
1) Il file plist in LaunchDaemons sia intitolato dmn.NoUIDaemon.plist
2) Ho fatto l' 'errore' di dimenticando la parte .plist nel contenuto dell'etichetta, quindi l'ho provata con entrambi i valori, con e senza .plist alla fine, nessuna differenza di corso.
3) Ho ripartito il dispositivo dopo l'installazione sia l'applicazione e il file plist utilizzando il comando reboot
4) Ho fatto in modo che tutte le autorizzazioni sono gli stessi (0775)
5) cercherà questo quando il problema è stato risolto Bad CPU e ancora non funziona
montaggio finale:
per nascondere il proprio demone icona dell'applicazione sul trampolino, aggiungere il seguente alle informazioni .inseriscilo nel tuoapp:
<key>SBAppTags</key>
<array>
<string>hidden</string>
</array>
Puoi accedere al tuo dispositivo come root tramite 'ssh', e basta eseguire il comando'/Applicazioni/NoUIDameon.app/NoUIDaemon' a riga di comando? Questo esegue correttamente il demone (controlla se è in esecuzione con 'ps -Aef | grep NoUIDaemon')? – Nate