Skip to content

Apple Game Center

WooSeok Suh edited this page Aug 2, 2021 · 7 revisions

2021-07-16

by Seok

Step.1

Apple Game Center 연동

  • App Store Connect에 앱 등록
  • 프로젝트에서 Bundle ID Unique 이슈 발생
  • 해당 App 삭제후 새로 Bundle ID 만들어서 등록
  • 같은 이슈 발생

Step.2

접근 권한 설정 문제

  • 위와 같이 처리할 필요 전혀 없었음
  • identifier 접근 권한이 없어서 team 계정으로 설정하지 못해서 생기는 문제
  • 차주 수요일 오프라인 미팅 시에 해결 예정

2021-07-22

by Seok

Step.3

Apple Game Center Login

  • 정상 로그인 시(isAuthenticated) Firebase Data 가져오도록 viewmodel 메서드 호출
private func setupAppleGameCenterLogin() {
    GKLocalPlayer.local.authenticateHandler = { gcViewController, error in
        guard error == nil else { return }
            
        if GKLocalPlayer.local.isAuthenticated {
            GameCenterAuthProvider.getCredential { credential, error in
                guard error == nil else { return }
                    
                Auth.auth().signIn(with: credential!) { [unowned self] user, error in
                    guard error == nil else { return }
                        
                    if let user = user {
                        self.viewModel.getUserInformation(from: user.user.uid)
                    }
                }
            }
        } else if let gcViewController = gcViewController {
            print(gcViewController)
        }
    }
}

viewModel이 가지고있는 firebase data 가져오는 메서드

  • firebase에서 데이터를 가져오기 전에 itemVC로 이동하면 정보가 나타지 않는 오류
  • coreData활용하여 Local Storage와 data 연동하도록 개선필요
  • error 처리 필요
func getUserInformation(from uuid: String) {
    database.initializeDatabase(uuid)
    database.getFirebaseData(uuid)
        .subscribe(onNext: { [unowned self] data in
            data.forEach { self.storage.create(item: $0) }
        }, onError: { error in
            print(error)
        }).disposed(by: rx.disposeBag)
}

2021-08-02

by Seok

Step.4

Apple Game Center Login 체크 기능 viewModel로 이전

  • viewController가 불필요하게 앱의 로직을 가지고 있던 부분을 viewModel로 이전
  • Apple Game Center logout 후에 접속하면 무한로딩되던 bug fix

Clone this wiki locally