1. 오늘 작업 요약 (2025년 3월 21일)
(1) 난독화 과정
- 목적: Flirting AI 앱 내 민감한 키(SHARED_SECRET, 구독 관련 키 등)가 RN 코드에 하드코딩되어 있어, 코드 분석을 어렵게 하기 위해 난독화 진행.
- 초기 시도:
- react-native-obfuscating-transformer 사용 시도.
- 문제: 오래된 라이브러리로, React Native 최신 버전과 호환성 문제 발생.
- npm audit 결과 취약점(class-validator, minimist 등) 다수 발견.
- Metro 설정 오류 및 빌드 실패.
- 대안 적용:
- 패키지 설치:
npm install metro-minify-obfuscator --save-devnpm install metro-minify-uglify --save-dev
- metro-minify-obfuscator: 난독화 도구.
- metro-minify-uglify: 기본 minifier로 사용.
- Metro 설정 (metro.config.js):
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
/*** Metro configuration** @type {import('metro-config').MetroConfig}*/const config = {'''''},},},};
module.exports = mergeConfig(getDefaultConfig(__dirname), config); - 빌드 및 문제 해결:
- 초기 빌드 실패: filter: (filename) => true 설정이 직렬화 문제로 오류 발생.
- 해결: filter 제거 후 재빌드.
- Android: ./gradlew assembleRelease 성공.
- iOS: Xcode에서 Archive로 .ipa 생성 성공.
- 패키지 설치:
(2) 난독화 테스트
- Android:
- app-release.apk → app-release.zip 해제.
- assets/index.android.bundle 확인:
- 변수명/함수명이 FSUBSYNNULLNULACK 같은 무의미한 문자로 변형.
- UTF-8로 열리지 않음 (난독화로 문자열 인코딩된 결과).
- 앱 설치 및 동작 확인:
- adb install app-release.apk.
- adb logcat | grep "ReactNative"로 로그 확인.
- 구독, Firebase, 광고 기능 정상 작동.
- iOS:
- IOS 는 .ipa 를 찾지못해서 테스트 못함
- RN 프로젝트이니 되겠거니 하면서 그냥 새로운 빌드 올려버림
(3) 스플래시 스크린 핑크색 그림자 제거
- : 스플래시 스크린에 텍스트 핑크색 그림자 촌스러워서 제거함
(4) Android/iOS 새 빌드 버전 업데이트
- Android:
- android/app/build.gradle에서 버전 업데이트:
이전: versionCode 4 versionName "1.0.4"이후 : versionCode 5 versionName "1.5.0"
- 새 abb 생성 후 play console 에 빌드 완료
- android/app/build.gradle에서 버전 업데이트:
- iOS:
- IOS 도 똑같이 xcode에서 버전 바꾸고 빌드 후 심사 제출
- 결과: Android/iOS 모두 새 빌드 버전으로 업데이트 제출 완료.
전체 요약
- 난독화:
- react-native-obfuscating-transformer → metro-minify-obfuscator로 변경.
- Android/iOS 모두 번들 파일 난독화 확인.
- 앱 정상 작동 확인.
- 스플래시 스크린:
- 핑크색 그림자 제거 (이미지 투명도 문제 해결).결과:
결론
난독화가 된 것 같기는 한데 혹시 모르니 매일매일 API key 사용량 주시하면서 여차하면 API 키 교체
'플러팅 AI' 카테고리의 다른 글
| 플러팅 멘트 초기화 문제 해결 (0) | 2025.05.29 |
|---|---|
| 📌 플러팅 AI – GPT 프롬프트 최적화 & WebSocket 연결 안정화 (React Native & 서버 수정) (0) | 2025.02.06 |