Public edition prepared 2026-09-12. Personal/account/contact details are visibly redacted where present. The original SHA256 identifies the captured unredacted full file, not this redacted extract. PUBLIC-SHA256SUMS.txt identifies downloadable public files. This material is not a signed declaration or proof of an Apple-received Build.

# S17  Apple Game Center authentication and offline status

Project key: key
Original relative path: Mac/Sources/KeyGarden/GameCenterManager.swift
Captured: 2026-09-12T18:57:15+08:00
Original full-file SHA256: 74098406d454023245605f32e67b5012a6976c5104ca47480ddbdae33d97ce7e
Evidence level: local source excerpt
Build correspondence: not yet established with an Apple-received binary.
Line numbers refer to the captured original file. Gaps are explicitly marked. No source code was changed.

## Original lines 82 to 111

```text
0082  
0083      func configureAccessPoint() {
0084          GKAccessPoint.shared.isActive = false
0085      }
0086  
0087      func authenticate() {
0088          GKLocalPlayer.local.authenticateHandler = { [weak self] viewController, error in
0089              Task { @MainActor in
0090                  guard let self else { return }
0091                  if let viewController {
0092                      self.present(viewController)
0093                  } else if GKLocalPlayer.local.isAuthenticated {
0094                      self.isAuthenticated = true
0095                      self.playerName = GKLocalPlayer.local.displayName
0096                      self.statusText = self.text("已连接 · \(self.playerName)", "Connected · \(self.playerName)")
0097                      self.reloadLocalProfile()
0098                  } else {
0099                      self.isAuthenticated = false
0100                      self.statusText = error == nil ? self.text("未连接 Game Center", "Game Center not connected") : self.text("离线模式 · 本地记录仍可用", "Offline mode · local progress is still available")
0101                  }
0102              }
0103          }
0104      }
0105  
0106      func showGameCenter() {
0107          if !GKLocalPlayer.local.isAuthenticated {
0108              authenticate()
0109              return
0110          }
0111          let controller = GKGameCenterViewController(
```
