2015-10-16 75 views
16

我最近决定为已经在App Store上的游戏添加成就多年,现在我遇到了让它们工作的问题。游戏中心成就问题

我使用下面的代码后所取得的成就:

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

[achievement setPercentComplete:100.0]; 

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

}]; 

reportAchievements只是记录no bundle for bundleID: (null)

我想知道它是否与成就还没有活,而且Apple已经删除沙箱服务器有关。但它们已在iTunes Connect中注册,并且正在使用测试用户。

注意到这个应用程序是从一个不同的开发者转移来的也很重要。

对于应用程序ID我尝试使用:

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

的leade在转移仍然有效之前已经存在的rboard,它使用旧的开发者ID。

我甚至试着用第一个答案here中的代码得到所有成就的列表,但它仍然说no bundle for bundleID: (null)

编辑:

我发现,即使它说no bundle for bundleID: (null),它仍然正确返回所有成就的清单。我认为这个消息只是系统中的一些小故障,无论如何它都能正常工作。

这就是说,我仍然无法使用ID的任何组合来解锁成就。

回答

1

对我来说,问题是成就被解锁,但没有显示。我不知道有什么方法不显示信息,但它是无害的。

+0

它不显示成绩在所有游戏中心应用程序。苹果关于移除测试服务器的页面,他们表示,即使他们还没有活着,成就和排行榜也会在解锁时显示。 – Bananable

1

我面临同样的问题。在我的调试器中小心翼翼地通过我的代码,我发现如果使用GKScore而不是GKAchievement,警告消息就会消失。 所以拇指规则是检查你的成就和排行榜。使用GKScore而不是GKAchievement。

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

您还可以看到雷达。它没有。 rdar:// 23149890

0

我收到了同样的错误消息,却意外地报告了未在iTunes Connect中配置的应用内的成就。

所以,下面的步骤可以帮助你:

  1. 检查iTunes Connect中失踪的成就
  2. 检查关卡ID拼写错误