2015-09-20 15 views
48

Ich habe vor kurzem auf Xcode 7 aktualisiert und mein iPhone auf iOS 9 aufgerüstet. Ich habe eine iOS App entwickelt und veröffentlicht, die auf der neusten Version von iOS 8 und Xcode 6 einwandfrei funktioniert hat.XPC Verbindung unterbrochen in Xcode 7 für iOS 9

Bei dem Versuch, den Prozess der Aktualisierung der App für iOS 9 Unterstützung zu durchlaufen, bekomme ich die meisten lächerlich seltsamen Fehler, der mich verblüfft hat.

Ich habe alle Syntaxkorrekturen automatisch über Xcode gemacht, und jetzt baut meine App richtig auf. Es läuft zunächst sogar gut.

Ich habe eine Schaltfläche, die zu einem View-Controller mit einem WebView wechselt. Dieser View-Controller lädt einen Link, der entweder ein Bild, eine Website oder ein Video von youtube anzeigt. Der Inhalt ist wie immer perfekt geladen. Das Programm wird jedoch abstürzen und den Simulator (und mein iPhone) neu starten und mich zum Sperrbildschirm senden, wenn ich auf die Zurück-Schaltfläche klicke (ich bin auf einem Navigationsstapel).

In Xcode, erhalte ich folgende Meldungen:

XPC Verbindung unterbrochen. Beenden, da keine System-App vorhanden ist.

Ich habe Flurry Analytics in meiner App übrigens integriert, nicht sicher, ob das ein Problem ist.

Wie kann ich dieses Problem beheben? Meine Suche nach XPC-Verbindungen scheint keine ähnlichen Probleme wie meine zu ergeben. Ich habe nicht einmal eine Ahnung, was eine XPC-Verbindung ist, also warum ist das überhaupt in meiner App?

EDIT: Ich habe eine Problemumgehung für das Problem gefunden. Ich kann nicht wirklich sagen, dass es eine Lösung ist.

Der Absturz trat während der Verwendung der Methode self.navigationController? .popViewControllerAnimated auf, wenn sie auf true festgelegt wurde. Ich habe das zufällig auf falsch gesetzt, und der Absturz hört auf (jetzt sieht der Übergang schrecklich aus).

Ich weiß nicht, warum das funktioniert, und nur zu meiner Verwirrung beiträgt.

+0

Welche Version von OSX verwenden Sie? – trojanfoe

+0

Ich benutze die neueste Version von Yosemite – iOShepherd

+0

Ich sehe ein ähnliches Problem, wenn ich '[self addChildViewController: child]' Ich konnte bisher keine Lösung finden oder umgehen. Ich bin auf Capitan, xCode 7, läuft auf einem iOS 9 Simulator. Wenn ich den Simulator auf 8.4 setze, tritt dieses Problem nicht auf. Immer noch auf der Suche nach Lösungen. – Ceryni

Antwort

10

Das Problem belogen im Storyboard für mich. Ich schuf ein neues Projekt und legte die Ansichten dar und alles schien gut zu funktionieren. Ich fand diese paar Zeilen in der Storyboard-Quelle (Rechtsklick auf Storyboard und wählen Ansicht als -> Quellcode), die nicht gemeinsam zwischen der Arbeitsversion und die gebrochene Version waren:

<keyCommands> 
    <keyCommand/> 
</keyCommands> 

Ich habe keine Ahnung, was diejenigen, Linien sollten tun, oder wie sie in meine Storyboard-Datei schlichen, aber sie waren, was die App so hart zusammenbrach, dass das Telefon neu gestartet werden musste. Ich habe diese Zeilen aus meinem Hauptprojekt entfernt und alles hat wieder funktioniert.

+0

Könnten Sie mir bitte helfen herauszufinden, wo dieser Code gefunden werden kann? Ich möchte es auch löschen und sehen, ob das das Problem behebt, vielleicht dann die Antwort auf meine Frage bestätigen zu können. – iOShepherd

+0

Klicken Sie mit der rechten Maustaste auf die Storyboard-Datei und sehen Sie sich den Quellcode an. Suche nicht nach '' suche einfach nach '' und komm raus oder lösche es. Gerade für mich gearbeitet, vielen Dank. –

+0

Wie Magie löste es auch meinen Absturz. – runios

1

Ich habe mit genau gleichen Fehler gekämpft. Durch einen Eliminierungsprozess stellte ich fest, dass es nichts mit irgendeiner Klasse zu tun hatte, sondern mit dem Storyboard zu tun hatte. Zum Glück habe ich regelmäßig Sicherungskopien und ich versuchte, Storyboards zu vergleichen, um festzustellen, was ich getan hatte - aber konnte nichts Offensichtliches finden. Die Sicherungskopie funktionierte einwandfrei und ich konnte meine Controller-Klassen (von der fehlerhaften Kopie mit den Änderungen) in die Sicherungskopie kopieren und sie funktionierten einwandfrei.

Ich denke, es gibt einen Bug möglicherweise in Storyboards.

1

Ich hatte gerade das gleiche Problem. Ich weiß nicht, ob dir das hilft, aber ich denke auch, dass es vom Storyboard kommt:

In meinem Fall kommt das Problem von einem UITextView. Immer wenn ich versuche, den Standardtext darin zu ändern, habe ich diesen Fehler. Wenn ich den Standardtext lasse oder ihn leer lasse, funktioniert die App gut. Das Erstellen eines IBOutlet und das programmatische Ändern des Textes funktioniert ebenfalls.

Ich versuchte mit anderen UI-Elementen, aber nur die UITextView scheint dieses Problem zu haben.

1

Löschen von UITextView von der Ansicht in Storybord entfernt den Fehler in meinem Fall.

0

Wenn ich QLPreviewController verwende, bin ich mit diesem Problem konfrontiert.Fehlermeldungen wie folgt,

XPC connection interrupted 
_BSMachError: (os/kern) invalid capability (20) 
_BSMachError: (os/kern) invalid name (15) 

Da XPC bedeutet OS X Interprozess-Kommunikation, so dass ich denke, das ist das Problem lösen kann,

dispatch_async(dispatch_get_main_queue(), ^{ 
    // do what you want to do. 
}); 
0

In valueChanged: Methode eines UIControl, hatte ich das gleiche Problem , also habe ich den Code in ValueChanged: in Haupt-Thread ausgeführt und es löste das Problem.

@IBAction func valueChanged(sender: AnyObject) { 
    dispatch_async(dispatch_get_main_queue(), { 
    //code 
    } 
} 
0

Ich habe gleiche Fehlermeldung, wenn ich ein Subview in -layoutSubviews Methode setzen:

-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    [self populateByImageViews]; 
} 

Es unendlichen Zyklus des Layout-Prozesses verursacht und stürzt App. Platziere keine Unteransichten an diesem Ort!

0

Dieser Fehler kann durch wiederholtes Ausführen einer Schleife verursacht werden. In meinem Fall war es eine For-Schleife, in der ich die Zählvariable zurücksetzte. Sobald ich einen NSLog in die Schleife eingefügt habe, war es offensichtlich.