728x90
반응형

또 앱이 삭제됐다.

 

이번에도 "앱, 타사 광고, 기기 기능 방해 정책 위반 처리"로 인해 삭제됐다.

 

그래서 앱 시작과 동시에 전면 광고가 나오지 않도록 했다.

 

대신에 아이콘은 클릭했을 때 전면 광고가 노출되도록 변경해서 제출했다.

 

제출하고 하루가 지나서 앱이 다시 정상적으로 플레이 스토어에 노출된다는 메일을 받았다.

 

그러나 몇시간 뒤 다시 같은 이유로 삭제됐다.

 

도대체 무엇이 문제인가 싶어 찬찬히 코드와 광고가 나오는 타이밍 등을 살펴보려 했다.

 

광고가 나오는 타이밍을 보려고 테스트 광고 ID로 해봤지만 삭제돼서 그런지 광고가 나오지 않았다.

 

그러다 스택 오버플로우에서 이 이슈를 해결할 수 있을 것 같은 방법을 찾았다.

 

해당 내용에서 이 이슈가 발생하는 이유는 앱이 백그라운드에 있을 때

 

(광고를 보여주지 않아도) 광고 소재를 호출하는 것만으로도 위반으로 판단하기 때문이라고 했다

 

앱에서 전면 광고를 미리 불러오는데 constructor에서 수행하고 있었다.

 

디버깅을 해보니 앱이 백그라운드로 넘어갔을 때도 호출하는 것을 확인할 수 있었다.

 

그래서 AppState 확인하는 부분에서 처리해보려고 했는데

 

background에서 active일 때는 잘 됐지만 active 상태가 유지되는 경우엔 동작하지 않았다.

(상태가 변경돼야 동작하기 때문)

 

어떻게 하면 두 상황 모두 가능하게 할 수 있을까 하다가setTimeout으로 쉽게 해결할 수 있었다.

 

일정 시간 동안 앱이 active면 불러오고 시작과 동시에 백그라운드로 넘어갔을 때는 불러오지 않는 것을 확인했다.

constructor() {
  setTimeout(() => {
    if (this.state.appState) {
      interstitial.load();
    }
  }, SLEEP_TIME);
}

_handleAppStateChange = nextAppState => {
  if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
    interstitial.load();
  }
  this.setState({ appState: nextAppState });
};

이번에는 꼭 제발 성공하기를 빌었고 이틀 정도가 지나 다시 정상적으로 등록됐다는 메일을 받을 수 있었다.

 

참고 문헌

  1. https://stackoverflow.com/questions/57251947/uncaught-exception-thrown-by-finalizer-all-webview-methods-must-be-called-on-th/57308639#57308639

반응형

+ Recent posts