Tôi đang gặp một số vấn đề gây nhầm lẫn nghiêm trọng với Game Center.Tai ương của Trung tâm trò chơi: iTunes Connect? Hồ sơ Cấp phép? Thứ gì khác?
Ứng dụng của tôi chạy trên iOS 6 trở lên mà thôi, và tôi đã sử dụng mã chuẩn để xác thực với Game Center:
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController,
NSError *error) {
// Respond to authentication (failure or success) here!
}
Với mã này, các ứng dụng đã được chạy đẹp và không có vấn đề đối với tuần, cho bản thân mình trong quá trình phát triển và với ~ 10-15 người thử nghiệm beta trong các bản phân phối quảng cáo.
Đối với hầu hết thời gian này và đối với hầu hết người dùng, ứng dụng hoạt động như bạn mong đợi: nếu bạn chưa đăng nhập vào Trung tâm trò chơi khi ứng dụng khởi chạy hoặc đăng nhập vào tài khoản Trung tâm trò chơi sản xuất, ứng dụng sẽ nhắc bạn (với Bộ điều khiển Chế độ xem theo chủ đề của Game Center) để đăng nhập bằng tài khoản Sandbox. Bạn đăng nhập vào tài khoản sandbox của mình và mọi thứ chỉ hoạt động.
Đối với một vài người dùng, mặc dù, điều gì đó rất lạ đã bắt đầu xảy ra.
Mã số authenticateHandler
được gọi, error
là nil
, nhưng [GKLocalPlayer localPlayer].authenticated
là NO
và người dùng chưa đăng nhập vào Trung tâm trò chơi. Quan trọng nhất, có không có hộp thoại Trung tâm trò chơi phương thức để nhắc người dùng đăng nhập. Ứng dụng đơn giản khởi chạy, mã số authenticateHandler
được gọi, nhưng không có xác thực diễn ra. Tôi nghĩ ứng dụng sẽ hoạt động nếu ứng dụng Trung tâm trò chơi cho phép tôi đăng nhập bằng tài khoản sandbox của mình nhưng không: đăng nhập hoặc đăng xuất khỏi tài khoản Trung tâm trò chơi của tôi, không có tùy chọn đăng nhập sandbox.
Vì điều này chỉ xảy ra với một số người dùng và chỉ mới bắt đầu xảy ra cho thiết bị phát triển của mình, tôi rất nghi ngờ rằng đó là vấn đề với mã của tôi và tôi đoán đó là sự tương tác phức tạp giữa iTunes Connect. hồ sơ, cài đặt và lịch sử của Game Center trên thiết bị, v.v.
Trung tâm trò chơi được bật trong ID ứng dụng của chúng tôi và trong iTunes Connect (và ID ứng dụng cho cả hai trận đấu).
Trợ giúp!
Sửa
Vấn đề của tôi thể thể tương tự như iOS Development: Strange problem with authenticating Game Center user. Giải pháp được đề xuất cho câu hỏi đó là đăng nhập theo cách thủ công trong ứng dụng Trung tâm trò chơi. Điều này có vẻ giống như một giải pháp hợp lý, nhưng tôi cần phải đăng nhập vào môi trường sandbox và tôi không thể tìm thấy cách để nhận lời nhắc đăng nhập Trung tâm trò chơi hộp cát trong ứng dụng Trung tâm trò chơi.
Có thể những người dùng này đã tắt Trung tâm trò chơi không? Nếu bạn hủy đăng nhập vào GC trong 2-3 lần liên tiếp, thiết bị sẽ nhắc bạn tắt tính năng này. Sau đó, bạn chỉ có thể đăng nhập theo cách thủ công, ứng dụng sẽ không hiển thị hộp thoại xác thực GC nữa. –
@MarkoNikolovski cảm ơn đề xuất. Tôi đã đọc về hành vi đó (xem câu hỏi được liên kết trong bản chỉnh sửa của tôi) và nghi ngờ đó có thể là vấn đề của tôi. Tôi không nghĩ rằng tôi đã hủy đăng nhập nhiều lần, nhưng bất kể, có thể đó là lý do tại sao hộp thoại xác thực của tôi không hiển thị. Vấn đề của tôi là: cách đăng nhập vào sandbox bằng ứng dụng Game Center khi nó không cung cấp "sandbox" trong trường giữ chỗ mật khẩu? –
Nó chỉ ra các vấn đề chủ yếu là do một sai lầm mà tôi đã thực hiện trong mã 'authenticateHandler' của tôi, nơi logic của tôi không hiển thị đúng' viewController' cho người dùng để họ có thể đăng nhập. xung quanh trình bày bộ điều khiển xem và Game Center bị "vô hiệu hóa", câu trả lời của @ MarkoNikolovski là hữu ích và chính xác, vì vậy tôi đã đánh dấu nó là câu trả lời. –