뒤로
IQ_Labs
IQ_Labs ·

비개발자로 AI와 함께 만든 앱(TransferIQ)을 드디어 Google Play 프로덕션에 올렸습니다.
축하하려고 열었더니, 아이콘 누르자마자 죽더군요. 스플래시도 못 넘기고 매번 튕겼습니다.

당연히 제 코드가 범인이라고 생각했습니다.
제 App.js는 9,000줄이거든요. (비개발자가 AI랑 만들다 보면 이렇게 됩니다…)

그래서 몇 시간을 그 안에서 헤맸습니다.
- AdMob 초기화를 의심하고 방어 코드로 감쌌지만 그대로 죽음
- 어떤 변수가 정의보다 546줄 먼저 쓰이는 걸 발견하고 심장이 멎었지만, 알고 보니 함수 안이라 안전
- 결국 Node로 앱 최상위 코드를 프로덕션 모드로 직접 실행해서 "여기서 죽는가"를 검증 → 안 죽음

코드는 무죄였습니다.
범인은 app.json 설정 파일의 딱 한 줄, 빠진 권한이었습니다.

"permissions": ["com.google.android.gms.permission.AD_ID"]

이게 없으면 광고 SDK가 앱 시작 시 네이티브 레벨에서 죽습니다.
JavaScript가 실행되기도 전에요.
그래서 제가 정성껏 넣은 .catch()는 애초에 잡을 기회조차 없었습니다.

메이커로서 얻은 것 세 가지:

  1. "켜지자마자 죽는다"는 대부분 JS가 아니라 네이티브/설정 문제다.
    화면이 뜨기도 전에 죽으면 컴포넌트 코드는 그만 봐야 한다.

  2. 로그(adb logcat) 한 번이 코드 몇 시간 노려보는 것보다 빠르다.
    확신이 있어도 로그부터 볼 걸 그랬다.

  3. 버그는 "여기는 절대 아닐 거야" 하고 확신하는 곳에 숨어 있다.
    나는 내 지저분한 코드를 의심했지만, 범인은 내가 쳐다도 안 본 설정 파일이었다.

권한 추가하고 재빌드했더니, 몇 시간 뒤 AdMob에 광고 노출이 찍히기 시작했습니다.
수익은 아직 0.08달러(…)지만, 크래시가 잡혔다는 첫 증거라 이게 더 반가웠습니다.

혹시 비슷하게 "프로덕션에서만 죽는" 경험 있으신 분?
저처럼 코드부터 의심하다 시간 날린 분 계시면 위로받고 싶습니다.

TransferIQ

해외송금·FX·크립토 경로의 예상 수령액을 비교하고, 공식 견적 확인 전 더 나은 경로를 찾는 비교 플랫폼

0

댓글

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.