Skip to content

마이페이지 버그 수정 3건 (권한/버전/스탬프 이미지)#388

Merged
unam98 merged 2 commits intodevelopfrom
feature/fix-mypage-release-bugs
May 8, 2026
Merged

마이페이지 버그 수정 3건 (권한/버전/스탬프 이미지)#388
unam98 merged 2 commits intodevelopfrom
feature/fix-mypage-release-bugs

Conversation

@unam98
Copy link
Copy Markdown
Collaborator

@unam98 unam98 commented May 8, 2026

작업 배경

  • v2.3.0 릴리즈 준비 중 Play Store 심사 거절 및 마이페이지 UI 오류 3건 발견
  • 릴리즈 브랜치에 직접 커밋했던 수정 사항을 정식 플로우에 따라 develop에 반영

변경 사항

파일 변경 내용
AndroidManifest.xml READ_MEDIA_IMAGES 권한 제거
MyPageScreen.kt 버전 정보 하드코딩 → PackageManager에서 동적 읽기
mypage_img_stamp_*.xml (13개) 오탐 삭제된 스탬프 이미지 리소스 복구
strings.xml 미사용 my_page_version 문자열 제거

버그 상세

  • READ_MEDIA_IMAGES 제거: 갤러리 접근 코드 없이 선언만 되어 있어 Play Store 정책 위반. 앱은 FileProvider 기반 임시 파일로 이미지 처리하므로 불필요
  • 버전 정보 동적화: v. 1.0.4 하드코딩 → 앱 버전업 시 자동 반영
  • 스탬프 이미지 복구: getIdentifier()로 동적 참조하는 파일들이 미사용 리소스 정리(436ac4ea) 시 오탐 삭제 → 목표 보상 화면 및 프로필 이미지 빈 공간 발생

영향 범위

  • READ_MEDIA_IMAGES 제거: 런타임 동작 변경 없음 (실제 사용 코드 없었음)
  • 버전 정보: 마이페이지 버전 텍스트 표시에만 영향
  • 스탬프 이미지: 목표 보상 화면(12개 스탬프), 마이페이지 프로필 이미지 정상 복구

Test Plan

  • 목표 보상 화면 스탬프 이미지 정상 출력 확인
  • 마이페이지 프로필 이미지 정상 출력 확인
  • 마이페이지 버전 정보 현재 앱 버전과 일치 확인
  • Play Store 재심사 통과 확인

🤖 Generated with Claude Code

- READ_MEDIA_IMAGES 권한 제거: 갤러리 접근 코드 없음, FileProvider 기반으로 동작하여 불필요. Play Store 정책 위반 해소
- 버전 정보 동적 표시: 하드코딩된 v. 1.0.4 → PackageManager에서 versionName 읽어 표시
- 스탬프 이미지 복구: getIdentifier() 동적 참조로 인해 미사용 리소스 정리 시 오탐 삭제된 13개 파일 복구 (목표 보상/프로필 이미지 빈 공간 수정)
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

Warning

Rate limit exceeded

@unam98 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 47 minutes and 55 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a6f243a6-c023-480f-81c6-fdd54395bd13

📥 Commits

Reviewing files that changed from the base of the PR and between fdb0d4c and 6e44d8e.

📒 Files selected for processing (16)
  • app/src/main/AndroidManifest.xml
  • app/src/main/java/com/runnect/runnect/presentation/mypage/MyPageScreen.kt
  • app/src/main/res/drawable/mypage_img_stamp_basic.xml
  • app/src/main/res/drawable/mypage_img_stamp_c1.xml
  • app/src/main/res/drawable/mypage_img_stamp_c2.xml
  • app/src/main/res/drawable/mypage_img_stamp_c3.xml
  • app/src/main/res/drawable/mypage_img_stamp_r1.xml
  • app/src/main/res/drawable/mypage_img_stamp_r2.xml
  • app/src/main/res/drawable/mypage_img_stamp_r3.xml
  • app/src/main/res/drawable/mypage_img_stamp_s1.xml
  • app/src/main/res/drawable/mypage_img_stamp_s2.xml
  • app/src/main/res/drawable/mypage_img_stamp_s3.xml
  • app/src/main/res/drawable/mypage_img_stamp_u1.xml
  • app/src/main/res/drawable/mypage_img_stamp_u2.xml
  • app/src/main/res/drawable/mypage_img_stamp_u3.xml
  • app/src/main/res/values/strings.xml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/fix-mypage-release-bugs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

private fun VersionSection() {
val context = LocalContext.current
val versionName = remember {
context.packageManager.getPackageInfo(context.packageName, 0).versionName
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

[Bug] versionName이 null일 수 있음

API 33(Android 13)+에서 PackageInfo.versionName의 반환 타입은 String?입니다. 현재 코드는 null 처리가 없어 특정 환경에서 v. null로 표시될 수 있습니다.

// 현재
val versionName = remember {
    context.packageManager.getPackageInfo(context.packageName, 0).versionName
}

// 개선
val versionName = remember {
    runCatching {
        context.packageManager.getPackageInfo(context.packageName, 0).versionName ?: ""
    }.getOrDefault("")
}

NameNotFoundException은 자기 패키지 조회 시 실질적으로 발생하지 않지만, versionName null은 실제로 반환될 수 있으므로 최소한 ?: ""는 추가가 필요합니다.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

반영 완료 (6e44d8e)

  • runCatching { ... }.getOrDefault("") 패턴으로 NameNotFoundExceptionversionName null 모두 방어
  • Android 공식 문서에서 versionNameString?로 명시됨
  • 영향 범위: VersionSection 렌더링에만 해당, null 시 빈 문자열로 표시됨

import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.platform.LocalContext
import coil3.compose.AsyncImage
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

[Nit] import 순서

androidx.compose.ui.platform.LocalContext는 알파벳 순으로 androidx.compose.ui.unit.dp보다 앞에 와야 합니다.

// 현재
import androidx.compose.ui.unit.dp
import androidx.compose.ui.platform.LocalContext  // ← 순서 어긋남

// 개선
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

반영 완료 (6e44d8e)

  • platformunit 순으로 알파벳 정렬

- API 33+에서 PackageInfo.versionName이 String?로 반환될 수 있어 null 처리 추가
- LocalContext import 알파벳 순서 정렬
@unam98 unam98 merged commit 370cfeb into develop May 8, 2026
1 of 2 checks passed
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.

1 participant