Skip to content

[Refactor] Firebase Analytics 활성화 및 설정 수정#58

Merged
Roy-wonji merged 2 commits intomainfrom
refaotor/firebaseAnalalze
Dec 12, 2025
Merged

[Refactor] Firebase Analytics 활성화 및 설정 수정#58
Roy-wonji merged 2 commits intomainfrom
refaotor/firebaseAnalalze

Conversation

@Roy-wonji
Copy link
Contributor

🔗 관련 이슈

  • AppAuth 중복 클래스 충돌 문제 해결
  • Firebase Analytics 설정 개선

✨ 작업 내용

  • AppAuth 의존성 충돌 해결: OAuth 인증 시 발생하던 중복 클래스 충돌 문제 완전 해결
  • Firebase Analytics 활성화: FirebaseCrashlytics 의존성 추가 및 분석 기능 정상화
  • 라이브러리 타입 최적화: 정적 라이브러리에서 프레임워크로 전환하여 안정성 개선

📝 참고 사항

  • AppAuth 관련 NSInvalidArgumentException 크래시 이슈 해결됨
  • 모든 OAuth 플로우(Google, Apple, Kakao) 정상 작동 확인
  • Firebase Analytics 이벤트 트래킹 재활성화

Motivation 🥳 (코드를 추가/변경하게 된 이유)

  • OAuth 인증 과정에서 지속적으로 발생하던 Class OIDAuthorizationService is implemented in both 오류와
  • NSInvalidArgumentException 크래시를 해결하기 위해 의존성 구조를 전면 개편했습니다. 또한 Firebase Analytics 기능이 제대로 작동하지 않는 문제도 함께 해결했습니다.

Key Changes 🔥 (주요 구현/변경 사항)

  1. AppAuth 의존성 충돌 해결
  • Tuist/Package.swift: AppAuth 2.0.0 패키지 추가 (GoogleSignIn 호환성 확보)
  • 중복 링킹 제거: Data 모듈에서 직접 AppAuth 의존성 제거
  • 라이브러리 타입 통일: 모든 AppAuth 관련 의존성을 프레임워크로 변경
    "AppAuth": .framework,
    "AppAuthCore": .framework,
    "GTMAppAuth": .framework,
    "GTMSessionFetcherCore": .framework
  1. ComposableArchitecture 중복 해결
  • TCA 관련 정적 라이브러리들을 프레임워크로 전환
    "IssueReporting": .framework,
    "IssueReportingPackageSupport": .framework,
    "XCTestDynamicOverlay": .framework,
    "Clocks": .framework,
    "ConcurrencyExtras": .framework
  1. Firebase Analytics 재활성화
  • Data/Project.swift: FirebaseCrashlytics 의존성 추가
  • FirebaseAnalyticsManager: 이벤트 트래킹 로직 개선
  • AppDelegate: Firebase 초기화 설정 수정

To Reviewers 🙏 (리뷰어에게 전달하고 싶은 말)

이번 변경으로 다음 문제들이 완전히 해결되었습니다:

  • ✅ OAuth 인증 시 앱 크래시 문제
  • ✅ 중복 클래스 충돌 경고
  • ✅ Firebase Analytics 트래킹 누락

특히 packageSettings의 라이브러리 타입 설정이 핵심이므로 이 부분을 중점적으로 검토해주시기 바랍니다.

Reference 🔗

Close Issues 🔒 (닫을 Issue)

OAuth 인증 크래시 이슈 해결

Copy link
Contributor

@Peter1119 Peter1119 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

잘 해결된거죠 ? 고생하셨습니다 ~!

Comment on lines +75 to +94
// MARK: - Thread Safety Helper

private class ThreadSafeContainer<T>: @unchecked Sendable {
private var storage: T
private let lock = NSLock()

var value: T {
lock.withLock { storage }
}

init(_ value: T) {
self.storage = value
}

func modify(_ transform: (inout T) -> Void) {
lock.withLock {
transform(&storage)
}
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mock이긴 하지만 actor인데 이게 필요한가요 ??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아 제거 하겠습니다

Copy link
Contributor

@minneee minneee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다~~

@Roy-wonji Roy-wonji merged commit f864de4 into main Dec 12, 2025
@Roy-wonji Roy-wonji deleted the refaotor/firebaseAnalalze branch December 12, 2025 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants