Buduję aplikację demona dla jailbreak iPhone i następnie wytyczne, jak to opisano w kilku pytań i odpowiedzi tutaj na stackoverflow i oczywiście strony Chrisa Alvaresa na http://chrisalvares.com/blog/38/creating-an-iphone-daemon-part-4/Demon aplikacji iOS nie uruchamia się (Jailbreak) - jak debugować?
Xcode i projekt są poprawione przez Jailcoder aby go uruchom na moim urządzeniu.
Jeden z zamieszczonych tu postów stwierdził, że w dzisiejszych czasach nie jest już konieczne korzystanie z otwartego szablonu toolchain. Załadowanie aplikacji do katalogu/Applications i dodanie pliku plist do/System/Library/LaunchDaemons powinno wystarczyć.
Wykonałem powyższe kroki, ale demon nie został uruchomiony, a przynajmniej nie działa, gdy sprawdzam. W dziennikach urządzeń dostępnych w organizatorze Xcode nie można znaleźć nazwy aplikacji ani jej identyfikatora pakietu. Spodziewałbym się przynajmniej błędu z powodu, dlaczego się nie rozpocznie.
Zawartość pliku plist skopiowany do/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>
Pytanie: czy istnieje sposób do debugowania, dlaczego nie rozpocznie aplikację demona? Czy może przegapiłem krok poza przesłaniem aplikacji do/Applications i dodaniem pliku plist do katalogu LaunchDaemons?
EDIT:
Zawartość mojej głównej procedury:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
błąd przy uruchamianiu /Applications/NoUIDaemon.app/NoUIDaemon:
R-iPod:/ root# /Applications/NoUIDaemon.app/NoUIDaemon
-sh: /Applications/NoUIDaemon.app/NoUIDaemon: Bad CPU type in executable
Należy pamiętać, że aplikacja działa bez problemu, gdy uruchomię go na moim urządzeniu z Xcode.
Eventhough demon nie może zostać uruchomiony ręcznie, odpowiedzi na pytania: Nate'a
1) Plik plist w LaunchDaemons rzeczywiście nazwany dmn.NoUIDaemon.plist
2) Popełniłem błąd „” z zapominając o zawartości .plist w zawartości Label, więc wypróbowałem ją z obydwoma wartościami, zi bez .plist na końcu, bez różnicy.
3) Mam ponownym uruchomieniu urządzenia po zainstalowaniu zarówno aplikację i plik plist używając polecenia restart
4) Zrobiłem się, że wszystkie są takie same uprawnienia (0775)
5) spróbuje ten problem, gdy zły procesor został rozwiązany i nadal nie działa
FINAL EDIT:
aby ukryć ikonę aplikacji Daemon na trampolinę, należy dodać następujące do informacji .plist w twoim.Aplikacja:
<key>SBAppTags</key>
<array>
<string>hidden</string>
</array>
Możesz zalogować się na urządzeniu jako root poprzez 'ssh', i po prostu wykonać polecenie'/Programy/NoUIDameon.app/NoUIDaemon' w wierszu polecenia? Czy to skutecznie uruchamia twojego demona (sprawdź, czy działa z 'ps -Aef | grep NoUIDaemon')? – Nate