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

반응형
728x90
반응형

갑작스럽게 앱이 삭제됐다.

"앱, 타사 광고, 기기 기능 방해 정책 위반 처리" 으로 검색을 해봤다.

 

여러 가지 많은 결과들이 있었지만 같은 경우가 잘 없어 어떻게 대처해야할지 몰랐다.

 

메타 데이타나 정책 설정 문제인듯 싶어 관련된 것들을 수정했다.

 

하지만 거부됐다는 메일을 다시 받았다.

 

앱 버전을 올려서 제출하면 될 수도 있다는 말이 있어 해봤지만 역시 거절당했다.

 

예전에 개인정보처리방침으로 삭제된 적이 있어 이를 다시 업데이트해봤지만 소용없었다.

 

그래서 문서를 다시 읽어 봤다.

혹시나 하는 생각에 전면 광고를 앱이 실행 중일 때만 나오도록 수정하려고 했다.

 

이를 위해서 앱이 활성 상태인지를 확인하는 것이 필요했는데 다행히 React Native에서 지원했다.

 

AppState를 사용해서 쉽게 현재 상태가 active인지 background인지를 알 수 있어

 

이를 사용해 백그라운드로 변경되는 경우 광고가 나오지 않도록 수정해서 제출했다.

is live in the store.

다행히 다시 정상적으로 등록됐다는 메일을 받았다.

 

참고 문헌

  1. https://stackoverflow.com/questions/54981212/react-native-how-to-detect-home-button-is-pressed-or-not

  2. https://reactnative.dev/docs/appstate

반응형
728x90
반응형

서버에 특정 프로그램이 CPU를 과도하게 사용하여 이를 안정시킬 필요가 있었다.

 

이를 위해서 작업 중인 프로그램을 찾아서 우선 순위를 재조정하여 CPU 사용량을 낮출 수 있었다.

$ ps -eo pid,nice,lstart,cmd | grep my_program | grep -v grep
$ sudo renice -n 1 pid

lstart는 시작한 시간을 연월일시분초로 알려줘 날짜가 지나도 언제부터 시작된 프로세스인지를 알려준다.

 

그리고 디스크 사용을 많이 하여 데이터를 제거해야 했다.

 

특정 시간 이전 데이터를 지우기 위해 다음과 같이 명령어를 입력하여 해결할 수 있었다.

$ find . -newermt "2020-06-17 00:00:00" ! -newermt "2020-06-18 00:00:00" | xargs rm -rf

 

참고 문헌

  1. https://chloro.tistory.com/106

  2. http://dveamer.github.io/linux/ProcessStatus.html

  3. https://superuser.com/questions/580273/ubuntu-linux-find-files-between-specific-times

반응형
728x90
반응형

특정 기능을 위해 크롬 확장 프로그램을 제작하여 등록해야 했다.

 

확장 프로그램을 등록하는 방법은 검색을 하면 어떻게 하는지 나와서 쉽게 할 수 있었다.

 

하지만 처음 등록을 해보는 거라 그런지 다음과 같은 이유로 거부당했다.

'스팸 및 스토어 내 게재위치'

    항목의 설명 필드가 비어 있거나 아이콘 또는 스크린샷이 누락되어 있거나 항목이 의심스러워 보입니다.

처음엔 아이콘을 등록하지 않아서 아이콘을 등록을 해서 다시 시도했지만 같은 이유로 거부당했다.

 

그 다음엔 홈페이지 URL, 지원 URL 항목을 채운 다음 진행했지만 또 거부당했다.

 

혹시 공식 URL 항목을 적지 않아 그런가 싶어 구글 서치 콘솔에 웹사이트를 등록한 다음 재시도했지만 마찬가지였다.

 

계속 거부를 당해서 문서를 다시 한번 찬찬히 읽어보았다.

Keyword Spam: We don't allow extensions with misleading, improperly formatted, non-descriptive, irrelevant, excessive, or inappropriate metadata, including but not limited to the extension’s description, developer name, title, icon, screenshots, and promotional images. Developers must provide a clear and well-written description. We also don't allow unattributed or anonymous user testimonials in the app's description.

읽어보니 설명 등에 반복적인 문구를 허락하지 않는다는 것을 알 수 있었다.

 

요약과 설명 항목을 비슷하게 작성했는데 이것때문에 게시가 안됐던 것이었다.

 

설명을 가다듬어서 작성한 다음 재심사를 요청해보니 게시되는 것을 확인할 수 있었다.

 

참고 문헌

  1. https://developer.chrome.com/webstore/program_policies#spam

반응형

+ Recent posts