Firebase Auth 관련

Donghee Lee·2022년 1월 22일
0

iOS-Swift

목록 보기
6/20
post-thumbnail

Firebase Auth 관련


1. 구글 Login 사용 시

https://console.firebase.google.com/u/1/project/{프로젝트명}
에서 제공업체에 구글 추가 및 사용설정

2. pod에 'GoogleSignIn' 추가

3. 맞춤 URL Schemes 구성

XCode project - Firebase pod 설정 시 추가한 plist의
Reversed_CLIENT_ID의 value 값을

Project - Targets({project name}) - Info - URL Types의
URL Schemes에 컨씨컨브이

Reversed_CLIENT_ID의 value 값은 앱서비스마다 모두 다른값을 가지고, 구글은 위임할 서비스를 구분하게 됨

4. OpenURL 메서드 구현

"Extra Argument ' source Application' in call 오류

원인 : https://firebase.google.com/docs/auth/ios/google-signin?authuser=0
스탭3에서 handle() 메서드 호출 시 파라미터 누락 설명
해결 : https://github.com/firebase/firebase-ios-sdk/issues/3906

5. M1 Mac GoogleSignIn 호환문제


에러를 보면 GoogleSignIn Framework는 for arm64라서
project - Build Settings - Excluded Architectures 쪽을 arm64로 바꾸면 arm64에선 실행될 수 없다하고..

GoogleSignIn arm64 지원하는 거도 파일 들어가서 확인했는데 ㅠㅠ

요기 참고해도 안됨...
https://github.com/firebase/firebase-ios-sdk/issues/7208


2022.01.24 Xcode using rosetta로 해결

https://developer.apple.com/forums/thread/660782


2022.03.16(Wed)

노마드 코더에서 애플은 왜 인텔 대신 ARM을 선택했나?라는 영상에서
링크 - 노마드 코더

Intel/AMD에서는 CISC(Complex Instruction Set Computer) 방식을 사용하며

ARM에서는 RISC(Reduced Instruction Set Computer) 방식을 사용했다고 한다

두 방식은 Complex / Reduced의 차이로 볼 수 있는데

CISC 방식은 복잡한 명령어를 처리할 수 있는 반면,

RISC 방식은 복잡한 명령어를 여러번 풀어 실행하여 배터리 에너지 효율도 높이며 실행속도도 빨라질 수 있다고 한다.

그런데 Intel/AMD는 RISC를 쓰면 좋은데 왜 CISC 방식을 고집해 왔을까?

옛날 개발자들은 손으로 어셈블리어를 쓰며 개발을 했다.
지금이나 옛날이나 코드를 줄이려는 욕심(?)은 동일하겠지.
그러다보니 코드 길이를 줄일 수 있는 CISC 방식을 선호하게 되었다.

최근에는 흑/백으로 서로 나누지 않고 서로의 장점을 적용하여 아키텍처가 설계된다고 한다.

내가 겪은 위 문제도 아키텍처 문제로 보인다.
기존 CISC로 설계되었던 프로그램을 RISC로 설계한 M1 칩에서 컴파일하려고 하니 이해할 수 없는 명령어 등의 문제로 에러가 발생하게 된 것

그냥 오전에 티비보며 밥먹다가 남기고 싶어서 씀...

2022.05.09(Mon)

사이드 프로젝트 중 Xcode 로제타 + 터미널 로제타로 Pod 설치했는데
GIDSignInDelegate 빌드 실패 현상

https://ckhyeok.tistory.com/62

GoogleSignIn ver 5.0.2로 수정 후 Pod 재인스톨

지난 업데이트까지 빌드가 잘 되던 프로젝트가 해당 에러를 뱉으며 빌드에 실패를 했습니다.
에러가 발생한 이유는 해당 플러그인이 최신 6.xx 포드를 지원하지 않기 때문입니다.

해결 방법은 아래 방법 2개 중 1개를 선택하시면 됩니다.(1번을 추천드립니다, 시간이 없을 경우 2번)

  1. 빌드를 새로 뽑아야 하는 경우
    Project 내에 GoogleSigninDependencies의
    <iosPod name = "GoogleSignIn" version = ">=5.0.0" bitcodeEnable="false" minTargetSdk="6.0> 값을
    <iosPod name = "GoogleSignIn" version = "5.0.2" bitcodeEnable="false" minTargetSdk="6.0> 로 수정해줍니다.
  2. 이미 빌드를 한 상태에서 다시 한번 빌드 하기 싫은 경우(1회성이며 다음 빌드 부터는 다시 1번 과정을 거쳐야합니다)
    Export 된 Project에 Podfile로 들어가서
    pod 'GoogleSignIn', '>=5.0.0' 값을
    pod 'GoogleSignIn', '5.0.2' 로 버전을 고정시켜줍니다.

pod file 삭제 및 재인스톨

sudo rm podfile.lock
sudo rm -r [project name].xcworkspace
sudo rm -r pods
pod install

profile
Better than Yesterday

0개의 댓글