2015-10-16 3 views
16

Я недавно решил добавить достижения в игру, которая была в App Store уже много лет, и у меня возникают проблемы с их работой.Game Center Achievement Issue

Я использую следующий код, чтобы получить возможность отправлять достижения:

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, и я использую Test User.

Важно также отметить, что это приложение было передано от другого разработчика.

Для идентификатора приложения я попытался с помощью:

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

Leade rboard, который присутствует с тех пор, пока передача еще не работает, и использует идентификатор старого разработчика.

Я даже попробовал просто получить список всех достижений, используя код в первом ответе here, но он все еще говорит no bundle for bundleID: (null).

EDIT:

Я обнаружил, что даже если он говорит no bundle for bundleID: (null), он по-прежнему правильно возвращает список всех достижений. Я предполагаю, что это сообщение - это всего лишь сбой в системе и все равно работает.

Тем не менее, я все еще не могу разблокировать достижения, используя любую комбинацию ID.

ответ

1

Для меня проблема заключалась в том, что достижение было разблокировано, но не отображалось. Я не знаю, как не отображать сообщение, но он безвреден.

+0

Он не показывает достижение на все приложение Game Center. На странице Apple по удалению серверов тестирования они сказали, что достижения и рейтинги покажут, когда они разблокированы, даже если они еще не живут. – 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. Проверьте достижение идентификаторами для опечаток