2015-10-16 11 views
16

Ich habe kürzlich beschlossen, einem Spiel, das seit Jahren im App Store ist, Errungenschaften hinzuzufügen, und ich habe Probleme, damit sie funktionieren.Game Center Achievement Ausgabe

ich den folgenden Code verwenden die Leistungen zu schreiben:

GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier: identifier]; 

[achievement setPercentComplete:100.0]; 

[GKAchievement reportAchievements:@[achievement] withCompletionHandler:^(NSError *error){ 

}]; 

Aber reportAchievements nur protokolliert no bundle for bundleID: (null).

Ich frage mich, ob es etwas mit der Tatsache zu tun hat, dass Erfolge noch nicht live sind und Apple Sandbox-Server entfernt hat. Aber sie sind in iTunes Connect registriert und ich verwende einen Testbenutzer.

Es ist auch wichtig zu beachten, dass diese App von einem anderen Entwickler übertragen wurde.

Für die App-ID habe ich versucht, mit:

  • com.olddeveloper.ach_id
  • com.olddeveloper.appid.ach_id
  • ach_id
  • com.newdeveloper.ach_id
  • com.newdeveloper.appid.ach_id

Die leade rboard, das seit der Übertragung noch vorhanden ist und die ID des alten Entwicklers verwendet.

Ich habe sogar versucht, nur eine Liste aller Erfolge mit dem Code in der ersten Antwort here, aber es sagt immer noch no bundle for bundleID: (null).

EDIT:

Ich fand, dass, obwohl es no bundle for bundleID: (null) sagt, es immer noch richtig eine Liste aller Leistungen zurückgibt. Ich nehme an, dass diese Nachricht nur ein Fehler im System ist und dass es trotzdem funktioniert.

Das gesagt, ich bin immer noch nicht in der Lage, Errungenschaften zu entsperren mit einer beliebigen Kombination von ID.

Antwort

1

Für mich war das Problem, dass der Erfolg freigeschaltet, aber nicht angezeigt wurde. Ich kenne keine Möglichkeit, die Nachricht nicht anzuzeigen, aber es ist harmlos.

+0

Es ist nicht die Leistung nicht zeigen überhaupt in die Game Center App Auf der Apple-Seite zur Entfernung der Testserver sagten sie, dass Errungenschaften und Ranglisten auch dann angezeigt werden, wenn sie freigeschaltet sind, auch wenn sie noch nicht live sind. – Bananable

1

Ich konfrontiert das gleiche Problem. Ich ging vorsichtig meinen Code in meinem Debugger durch, um herauszufinden, ob ich GKScore statt GKAchievement verwende, die Warnmeldung verschwindet. Also Daumenregel ist, überprüfen Sie Ihre Erfolge und Bestenlisten. Geh mit GKScore anstelle von GKAchievement.

[ GKAchievement reportAchievements:achievements withCompletionHandler:^(NSError *error) { 
 
    if (error != 0) 
 
     NSLog(@"Reporting of %@ failed: %@", achievement, [ error localizedDescription ]); 
 
}];

Sie können auch das Radar sehen. Es ist mit nein. rdar: // 23149890

0

Ich habe dieselbe Fehlermeldung erhalten, obwohl ich versehentlich versucht habe, einen Erfolg in meiner App zu melden, der in iTunes Connect nicht konfiguriert wurde.

Also, die folgenden Schritte können Ihnen helfen:

  1. prüfen iTunes Connect für fehlende Erfolge
  2. Überprüfen Sie Ihre Leistung IDs für Rechtschreibfehler
Verwandte Themen