Indie Hackers

WakeWin is finally on the App Store. Here's what App Review made me cut.

WakeWin, 마침내 앱스토어 출시 — 앱 심사에서 뺀 기능과 남긴 교훈

WakeWin 개발자가 앱 심사에서 인터넷 라디오를 빼고 오프라인 음악으로 대체한 과정과 iOS 27 SDK 빌드 오류의 원인을 공유합니다. ‘최신 Xcode’를 쓰는 CI 환경을 점검하고, 심사에 맞춘 변경이 제품 경험을 개선했는지 측정하라는 의견도 나왔습니다.

AI 요약

WakeWin은 침대에서 알람을 끌 수 없도록 설계한 무료 iOS 알람 앱입니다. 알람이 울리면 앱이 싱크대나 주전자 같은 물건을 지정하고, 사용자는 그 물건까지 걸어가 사진을 찍어 인증받은 뒤 짧은 퍼즐을 풉니다. 일어나면 티켓을 얻으며, Premium에서는 티켓을 월간 추첨에 씁니다. 개발자는 LeadGrid와 Nalurio를 함께 만들고 있으며, WakeWin은 앱스토어 심사를 여러 차례 거친 끝에 출시했습니다.

라디오 대신 오프라인 음악

인터넷 라디오 기능은 App Review Guideline 5.2.3에 걸렸습니다. 실시간 방송을 재생하려면 제3자 스트리밍 권리가 필요하다는 지적을 받았고, 개발자의 항소도 App Review Board에서 받아들여지지 않았습니다. 라디오는 원격 플래그로 숨기는 대신 iOS 앱 코드에서 비활성화했습니다. Apple은 원격으로 다시 켤 수 있는 기능도 Guideline 2.3.1상 숨겨진 기능으로 볼 수 있기 때문입니다.

대신 앱에 라이선스를 확보한 연주곡 11곡을 넣었습니다. 각 곡의 라이선스 증빙 자료를 준비했고, 음량을 동일하게 맞췄습니다. ‘랜덤 곡’ 모드는 이틀 연속 같은 곡을 재생하지 않습니다. 음악은 무료로 제공되고 오프라인에서도 작동합니다.

‘최신 Xcode’가 만든 실행 오류

출시 직전에는 iOS 27에서 앱이 실행되지 않아 Guideline 2.1(a)에 따른 거절을 받았습니다. Xcode Cloud가 조용히 iOS 27 SDK로 바뀐 상태였고, 해당 SDK로 빌드한 앱은 UIScene 생명주기를 사용하지 않으면 iOS 27에서 실행되지 않았습니다. iOS 26에서는 경고만 남겨 개발자의 기기에서 문제가 드러나지 않았습니다.

개발자는 Capacitor를 8.5.2로 올리고 SceneDelegate를 추가해 해결했습니다. ‘최신 Xcode’로 CI 빌드를 돌리는 개발자라면 다음 앱 제출 전에 이 조건을 확인하라고 권합니다. 한 댓글은 Xcode 버전을 고정하고 업그레이드를 의도적인 변경으로 다루라고 했습니다. 다른 댓글은 지원하는 가장 오래된 OS와 최신 베타에서 빌드마다 스모크 테스트를 실행하라고 제안했습니다.

핵심 상호작용은 무료로

개발자는 사진 인증을 모든 사용자에게 무료로 열었습니다. 앱에서 가장 중요한 상호작용이기 때문입니다. 댓글에서는 이 변경이 첫 실행 경험을 단순하게 만들었는지, 첫 주 활성화에 어떤 영향을 줬는지 살펴보라는 의견이 나왔습니다. 알람 완료, 사진 인증 성공, 다음 날 재방문을 비교하면 심사 대응으로 기능을 뺀 효과와 핵심 사용 흐름의 변화를 구분하는 데 도움이 된다는 제안입니다.

Indie Hackers 반응

  • @quincychen — 축하합니다.
  • @MananShah — 심사를 통과한 것 축하합니다. 오프라인으로 재생되는 음악을 번들로 넣은 건 라디오를 대신할 좋은 선택입니다. 사용자 입장에서 한 가지 궁금합니다. 새벽 6시에 사진 인증이 답을 주지 못하면 어떻게 되나요? 사진이 맞는데도 거절하거나, 신호가 없거나, 서비스가 중단될 수도 있습니다. 내 잘못이 아닌 이유로 알람이 계속 울리는 상황은 곤란합니다. 몇 번 실패한 뒤 빠져나갈 방법이 있나요? 인증은 오프라인에서도 작동하나요?
  • @timothybas — 축하합니다!
  • @lullula — 여기서 진짜 교훈으로 삼을 부분은 iOS 27 SDK 충돌이라고 생각합니다. CI에서 ‘최신 Xcode’를 쓰면 제출 사이에 도구 체인이 조용히 바뀝니다. 버전을 고정하고, 업그레이드는 테스트하는 명시적인 커밋으로 진행하세요.
  • @mohith808 — 심사를 통과한 것 축하합니다! 물건을 사진 찍는 방식이 재밌네요. 기능을 덜어낸 결과 첫 실행 경험도 간단해졌는지 궁금합니다. 심사 거절은 부수적으로 그런 변화를 만들기도 하니까요.
  • @appdraftinglabs — 출시까지 마친 것 축하합니다. CI와 SDK 불일치는 릴리스 매트릭스가 늦게 잡아내는 전형적인 문제입니다. ‘최신 Xcode’에 기대기보다 Xcode 이미지를 고정하고, 매 빌드마다 지원하는 가장 오래된 OS와 최신 베타에서 스모크 테스트를 돌리겠습니다. 제품 변경은 사진 인증을 무료로 바꾸기 전후의 첫 주 활성화 지표를 비교하면 좋겠습니다. 알람 완료, 사진 인증, 두 번째 아침의 재방문을 보면 심사 때문에 기능을 뺀 것과 핵심 흐름이 실제로 강해진 것을 구분할 수 있습니다.
  • @aryan_sinh — 앱이 출시된 지금, 앱 심사 변경이 제품을 개선했는지 아니면 출시만 쉽게 만들었는지 어떤 사용자 행동으로 판단할 건가요?
  • @Ek_ansh99 — 흥미로운 점은 심사 거절 때문에 기능을 단순히 빼는 데 그치지 않고 제품의 일부를 더 강하게 만들었다는 겁니다. 사진 인증을 무료로 연 건 특히 앱의 핵심 상호작용이라는 점에서 타당해 보입니다. 사용자가 첫 며칠 동안 실제로 어떻게 쓰는지 궁금합니다. 초기 피드백보다 그 행동이 더 많은 걸 알려줄 수도 있으니까요.
  • @timothybas — 공감합니다. 제가 참여한 고객 프로젝트도 App Review에서 거의 10번 거절당한 뒤에야 통과했습니다. 피드백 중에는 앱을 개선한 것도 있었지만, 심사 절차를 만족시키려고 바꾼 것처럼 느껴지는 부분도 있었습니다. 아무튼 WakeWin 출시를 축하합니다!
  • @bestiptvukus — 멋진 작업입니다. Xstream4K를 만들 때 했던 고민이 떠오르네요. 처음부터 다시 시작한다면 무엇을 다르게 하겠나요?

원문: Indie Hackers / 번역·요약: Trawling