sookim-1

번호 : 006, 작성일자: 2024-03-11

2024.03.04 ~ 2024.03.10

🔄 FCM Token 갱신


Firebase 프로젝트를 Debug, Release 별로 나누어 사용 중인 경우 FCM Token관리가 중요하다. 기기에서 빌드환경이 Debug로 설치된 상태에서 Release로 앱을 다시설치하는 경우 FCM Token이 변경될 수 있다.

fcmToken의 값이 변경되는 시점은 아래 4가지 경우이다.

  • 새 기기에서 앱 복원
  • 사용자가 앱 제거/재설치
  • 사용자가 앱 데이터 소거
  • 앱이 인스턴스 ID를 삭제

FCM을 직접 갱신하기 위해서는 삭제 후 조회를 하면 된다. 아래코드는 FCM 토큰을 직접갱신하는 코드인데, 삭제는 옵셔널이다.

// FCM 토큰 삭제
Messaging.messaging().deleteToken { error in
    print(error)
}

// FCM 토큰 조회
Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
  }
}

📱 CollectionView Compositional Layout


반복되는 데이터를 표시하는 경우와 추후 확장성을 위해서는 CollectionView Compositional Layout를 사용할 수 있다. CollectionView Compositional Layout을 사용할 때는 기본적인 UICollectionViewDataSource와 사용할 수 도 있고 UICollectionViewDiffableDataSource와도 사용할 수 있다. UICollectionReusableView를 사용하여 각 섹션별 Header, Footer를 구현하는 경우, viewForSupplementaryElementOfKind 메서드에서 조건문을 조심하지 않으면 재사용되기 때문에 주의해서 사용해야겠다.

🚀 FireStore 사용 시 빌드시간 증가 이슈


지지난 주 FireStore를 사용하는 프로젝트의 경우 빌드시간이 기하급수적으로 증가한 이유에 대해서 확인해보았는데 일단 FireStore를 사용한다면 빌드시간이 엄청나게 증가한 것은 확인했다. 빌드시간 단축을 위해 찾아본 결과 FireStore는 C++로 구성된 파일이 많은데 Xcode로 빌드하는 경우 컴파일할 때 시간이 증가할 수 있다는 내용을 FireStore iOS SDK 저장소의 ReadMe에서 확인을 했다.

  • 기존의 pod 설치 명령어는 pod 'FirebaseFirestore', '10.19.0' 이였다.
  • 변경된 pod 설치 명령어는 pod 'FirebaseFirestore', :git => '<https://github.com/invertase/firestore-ios-sdk-frameworks.git>', :tag => '10.19.0' 로 변경했다.

빌드시간이 FireStore로 변경 전과 유사하게 줄어들었다. 즉, 미리 컴파일된 바이너리파일에서 FireStore를 사용하도록 변경한 것이다.

🙋🏻‍♂️ 기타 사항


  1. 깃허브 블로그를 Swift언어를 사용한 Publish라이브러리를 사용하여 배포 중인데 마크다운 문법 중 특정 이모지를 사용하면 배포 workflow가 실패하는 부분이 있어서 해당 부분을 수정했다.
태그: