Absturz beim Hintergrundbild der cocos2d 2.1 App in iOS7 beim Betrachten von Game Center-Bildschirmen (Bestenliste, Erfolg)

8

Ich habe hier einen 100% reproduzierbaren Absturz.

Crash wenn Hintergrund cocos2d 2.1 App in iOS7 beim Betrachten Game Center Bildschirme (Leaderboard, Leistung) Hintergrund. Es stürzt sofort beim Drücken der Home-Taste ab.

Absturz in Zeile 275 in CCGLView.m:

%Vor%

Das juckende Ding ist, ich habe eine neue Kopie des offiziellen cocos2diphone 2.1 heruntergeladen, die andere Sekunde, habe seine Vorlagen installiert und die Heftklammernanwendung ausgeführt, nachdem ich sie mit der gleichen App-ID wie meine problematische App verbunden habe, die bereits Spielecenter-Bestenlisten etc. eingestellt haben oben. Es stürzt nicht ab. Also habe ich ein Diff auf den cocos2d-Ordnern in lib ausgeführt, und es gibt keinen Unterschied, außer dass ich einige C-Funktionen in CCDrawingPrimitives.h / m hinzugefügt habe ... Sollte nicht das Problem sein. Das Problem sollte also nicht in cocos2d selbst liegen, aber irgendwie verursacht es die Verwendung oder mein Projekt-Setup.

Aktualisierung:

Das Problem scheint in der cocos2d App-Vorlage zu sein, die in 2.1 und möglicherweise früher verwendet wird. Es sieht so aus:

%Vor%

Und der offensichtliche Fehler hier ist, dass, wenn Sie den navController einen Game Center Controller öffnen, der visibleViewController von director_ der GC Controller ist, wenn Sie die Home Taste drücken, daher wird der stopAnimation nicht aufgerufen. Dies führt zu einem Absturz mit iOS7, aber scheint nicht mit iOS6 ... noch die Vorlage cocos2d 2.1 App (immer noch hier verwirrt).

Der aktuelle Fix besteht darin, if( [navController_ visibleViewController] == director_ ) auskommentieren zu lassen, damit stopAnimation immer aufgerufen wird. Ich bin mir nicht sicher, ob es irgendwelche Nebenwirkungen gibt, aber damit werde ich jetzt fortfahren.

    
Jonny 10.10.2013, 01:43
quelle

1 Antwort

4

Guter Anruf. Ich habe das gleiche Problem wie Sie und Ihr Beitrag hat mir geholfen, herauszufinden, wie meine App abgestürzt ist.

Also ist meine Lösung die Stop-Director-Animation, bevor ich das Spielzentrum zeige.

%Vor%

Starten Sie dann die Animation in der Game Center-Ansicht, klicken Sie auf Rückruf

%Vor%

Ihre aktualisierte Lösung sollte funktionieren, aber auch hier bin ich nicht sicher, ob es irgendwelche Nebenwirkungen geben würde. Ich denke, es ist eine sicherere Herangehensweise, um das Spielzentrum selbst zu umarmen.

Nochmals vielen Dank für das Posten dieser Frage!

    
zeroliu 21.03.2014 07:40
quelle