Ich habe eine App zum Bearbeiten von Fotos entwickelt und möchte eine Erweiterung für die Fotos App haben. Die Erweiterung funktioniert perfekt am Simulator und ohne Probleme.
Aber wenn ich versuche, es in meinem iPhone 6 zu laufen, erlebe ich zwei Probleme:
Fehler: Eingebettete Binärdatei ist nicht mit dem gleichen Zertifikat wie der signiert Eltern-App Überprüfen Sie die Codezeicheneinstellungen des eingebetteten binären Ziels Passe die Eltern-App an. Embedded Binär Signing Zertifikat: - (Ad Hoc Code signiert) Parent App Signing Zertifikat: iPhone Entwickler: Mauro Vime (------------------)
Ich habe die Provisioning-Profile für die Entwicklung neu erstellt, um zu prüfen, ob diese für die Entwicklung und nicht für Ad-hoc-Anzeigen gedacht sind, aber ich habe immer noch die gleichen Probleme.
Ereigniskennung: 9E578D78-FAB7-419E-AB35-7BA7B0821AFA CrashReporter Key: ae6bdea47a4e64b09a8fb7fa8599b5e23ceb5311 Hardware Modell: iPhone7,2 Prozess: Erweiterung [2598] Pfad:
/private/var/mobile/Containers/Bundle/Application/----------/------------/PlugIns/extension.appex/extension Kennung: app.myapp.com.extension Version: 1 (1.0) Codetyp: ARM-64 (Native) Parent-Prozess:
launchd [1] Datum / Uhrzeit: 2014-10-14 01: 29: 21.482 +0200 Start Zeit: 2014-10-14 01: 29: 16.170 +0200 OS Version: iOS 8.1 (12B407) Berichtsversion: 105 Ausnahmetyp: EXC_CRASH (SIGABRT) Ausnahmeuntertyp: LAUNCH_HANG Ausnahmebedingungsnachricht: Der Erweiterung brauchte zu viel Zeit, um den markierten Thread zu initialisieren Backtrace nicht verfügbar Unbekannter Thread ist mit dem ARM-Threadstatus abgestürzt (64-Bit): x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000 x4: 0x0000000000000000 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000 x8: 0x0000000000000000 x9: 0x0000000000000000 x10: 0x0000000000000000 x11: 0x0000000000000000 x12: 0x0000000000000000 x13: 0x0000000000000000 x14: 0x0000000000000000 x15: 0 x 0000000000000000 x 16: 0 x 0000000000000000 x 17: 0 x 0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000000 x20: 0 x 0000000000000000 x 21: 0 x 0000000000000000 x 22: 0 x 0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000 x 25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000
x28: 0x0000000000000000 fp: 0x0000000000000000 lr: 0x0000000000000000 sp: 0x000000016fdb3b68 pc: 0x00000001200f9000 cpsr: 0x00000000 Binärbilder: 0x1200f8000 - 0x12011ffff dyld arm64 / usr / lib / dyld
Hier steht, dass die App in einem 8.1-Gerät lief, aber ich habe es auch in 8.0.2 iOS versucht und das gleiche Problem tauchte auf. Nach dem Anzeigen der Nachricht: "Die Erweiterung benötigte zu viel Zeit zum Initialisieren", habe ich nur die Funktionen viewDidLoad und viewWillAppear gelöscht, sodass sie keinen Code ausführen, das Problem jedoch weiterhin besteht.
Gibt es jemanden, der diese Probleme erlebt hat und eine Lösung hat?
Könnte es sein, dass Sie keine 64-Bit-Architektur verwenden (für Erweiterungen erforderlich)? Siehe den "Hinweis zur 64-Bit-Architektur" in Apples App Extension Programmierhandbuch .
Stellen Sie sicher, dass Architekturen und gültige Architekturen arm64 und Nur aktive Architektur erstellen enthält Nein für die verwendete Konfiguration (debug / release).
Wir hatten Build Active Architecture Only auf Yes gesetzt, so dass Jenkins nur armv7-Binärdateien erstellte (obwohl xcode je nach angeschlossenem Gerät eine korrekte Binärdatei erstellte). Es scheint, dass armv7-Anwendungen auf arm64-Geräten gut funktionieren, aber armv7-App-Erweiterungen können nicht mit einem seltsamen Fehler geladen werden. "Die Erweiterung benötigte zu viel Zeit für die Initialisierung" . Nach dem Fixieren von Build Active Architect Only wird die Einstellung fat binary erstellt (armv7 + arm64) und die Erweiterung funktioniert einwandfrei.
Ich habe beide Probleme gehabt:
Bei dem Code-Signing-Problem glaube ich, dass es einen Fehler in Xcode gibt, der sich auf das Hinzufügen von App-Erweiterungszielen bezieht. Das hat mich anfangs durcheinander gebracht und ich habe diesen Fehler bekommen. - Sie müssen die Bereitstellungsprofile für die App und die App-Erweiterung im Developer Center entfernen und neu generieren. - Wenn Sie eine App-Gruppe zum Freigeben von Informationen verwenden, entfernen Sie sie aus den Funktionen und dem Entwicklungscenter, und aktivieren Sie sie im Abschnitt "Funktionen" erneut.
Für das Problem LAUNCH_HANG scheint es ein endliches und kleines (undokumentiertes) Fenster zu geben, damit eine Erweiterung vollständig geladen werden kann, bevor iOS es aufgibt. - Überprüfen Sie den gesamten Code, der mit Ihrer Erweiterung verknüpft ist. Gib nichts ein, was du nicht unbedingt brauchst.
Mein besonderes Problem war, dass ich eine Podspec für mein Erweiterungsziel hinzugefügt habe. Ich habe das Ziel für meine Haupt-App kopiert und nicht bemerkt, dass ich Flurry in die Erweiterung aufgenommen habe. Nichts ist falsch mit Flurry, aber es ist eine große statische Bibliothek, die im Speicher zugeordnet werden musste, als die Host-App meine Erweiterung startete. Entfernt das und der Fehler ist weg.
Tags und Links objective-c iphone ios photo