Ich arbeite gerade an einem iOS-Tweak namens "LockWatch", der watchOS-ähnliche Uhrgesichter auf dem Sperrbildschirm anzeigen soll. Diese Optimierung beinhaltet ein einfaches Plugin-System, das ein Bündel (name.watchface) aus einem bestimmten Verzeichnis lädt, das bisher funktioniert.iOS: Codesignatur ungültig/erforderliche Codesignatur fehlt
Das Problem ist jedoch, dass diese Bundles nicht auf einem Gerät ausgeführt werden können, entweder aufgrund einer fehlenden oder einer ungültigen Codesignatur, aber innerhalb des iOS-Simulators werden die Bundles geladen und ordnungsgemäß ausgeführt.
Ich hatte dies funktioniert auf iOS 9 durch Hinzufügen der "com.apple.backboard.client" Berechtigung (weil die Protokolle sagten, dass diese bestimmte Berechtigung fehlte und daher SpringBoard stürzte).
Das Bundle-Projekt selbst ist ein einfaches Xcode-Projekt, das mit einem "Bundle" -Ziel aus dem Mac OS Tab erstellt wurde, das Base SDK ist auf "Latest iOS (10.2)" gesetzt.
Ich habe folgende Unterzeichnung Methoden versucht:
- Unterzeichnung nicht an allen
- Xcode-Managed Unterzeichnung
- Xcode manuelle Signierung (für beide Debug und Release)
- mit ldid Unterzeichnung ohne Berechtigungen
- Unterschreiben mit Idd mit Berechtigungen
Die Protokolle zwischen diesen beiden Texten verändert:
SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find:
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: required code signature missing for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype'
SpringBoard(CoreFoundation)[PID] <Notice>: Error loading /var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: dlopen(/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype, 265): no suitable image found. Did Find:
/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype: code signature invalid for '/var/mobile/Library/LockWatch/Watch Faces/prototype.watchface/prototype'
Da die binäre nicht ausgeführt werden kann, dessen Hauptklasseninstanz kann nicht in einem Array und Spring abstürzt hinzugefügt werden.