Đây là tình huống của tôi:Trung tâm trò chơi không phản hồi yêu cầu xác thựcWithCompletionHandler (iOS)
1) Người dùng mở ứng dụng của tôi lần đầu tiên. Tôi ngay lập tức gọi authenticateLocalUser để thử và đăng nhập chúng vào Game Center. Cửa sổ bật lên với các nút Đăng nhập, Tạo tài khoản và Hủy xuất hiện thành công.
2) Người dùng không muốn đăng nhập ngay bây giờ, vì vậy họ nhấp vào Hủy. (Đây không phải là lần thứ 3 họ đã nhấp vào 'hủy' và tôi KHÔNG nhận được 'Trung tâm trò chơi bị vô hiệu hóa, đăng nhập từ ứng dụng Trung tâm trò chơi để bật' tin nhắn.) Người dùng có thể tiếp tục sử dụng ứng dụng của tôi như bình thường.
3) Người dùng muốn sử dụng Trung tâm trò chơi sau này, vì vậy họ nhấp vào nút tôi đã cấp cho họ để đăng nhập vào Trung tâm trò chơi. Tôi một lần nữa gọi authenticateLocalUser. Lần này, cửa sổ bật lên KHÔNG xuất hiện. Trong thực tế không có gì xảy ra, ngoại trừ việc tôi nhận được những tin nhắn này console log:
2012-04-26 08:38:42.861 Clink[332:707] authenticateWithCompletionHandler: enter
2012-04-26 08:38:42.863 Clink[332:707] authenticateWithCompletionHandler: exit
4) Tôi đã thử nghiệm cả hai ngay lập tức nhấn nút trong đó kêu gọi authenticateLocalUser một lần nữa, và cũng chờ đợi một thời gian đáng kể trước khi làm như vậy. Tại bất cứ thời điểm tôi gọi authenticateLocalUser một lần nữa, một lần nữa không có gì xuất hiện, và tôi nhận được lỗi này từ chức năng:
Error Domain=GKErrorDomain Code=7 "The requested operation could not be completed because local player is already authenticating."
Vì vậy, những gì dường như xảy ra được rằng, khi tôi gọi authenticateLocalUser ở bước 3, Tôi yêu cầu game Trung tâm để xác thực nhưng nó đang bị treo lên và không đáp ứng yêu cầu của tôi. Sau đó, trong Bước 4 khi tôi thử lại, nó cho tôi biết nó không thể xử lý yêu cầu của tôi vì nó đã cố gắng xác thực. Tuy nhiên tôi đã đợi đến 10 phút để nhận được phản hồi từ yêu cầu của tôi ở Bước 3 và tôi chưa bao giờ nhận được phản hồi từ Trung tâm trò chơi.
Đây là nội dung của hàm authenticateLocalUser của tôi. Theo như tôi nhớ lại tôi đã không thay đổi nó từ phiên bản tôi tải về từ mã mẫu của Apple.
- (void) authenticateLocalUser
{
if([GKLocalPlayer localPlayer].authenticated == NO)
{
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)
{
[self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error];
}];
}
}
Có ai khác gặp sự cố này trước hoặc có bất kỳ ý tưởng nào về những gì có thể xảy ra không? Tôi đã xem xét điều này một lúc và không thực sự chắc chắn điều gì đang xảy ra.
Cảm ơn trước !!
Vui lòng cho tôi biết nếu bạn gặp sự cố này. Tôi đang phải đối mặt với vấn đề tương tự. Cảm ơn. – DancOfDeth
Newi, thật không may là tôi không có.Tôi thấy một nhà phát triển thống nhất phải đối mặt với cùng một vấn đề, tuy nhiên. Tôi không chắc chắn có ngay cả một giải pháp tại thời điểm này; điều này có lẽ có ý định (mặc dù rất lạ) hành vi của Apple? – WendiKidd
Tôi đang gặp vấn đề tương tự ... Tôi nghĩ đó là điều tôi đã làm sai. –