물에 살고싶은 개발자

앱 배포 시 업데이트가 거부(rejected) 당한 경우(feat.Cross-app Scripting) 본문

Android

앱 배포 시 업데이트가 거부(rejected) 당한 경우(feat.Cross-app Scripting)

돼지사랑 2019. 3. 11. 18:53

글을 작성하기에 앞서, 이 글은 나의 월요일을 삭제시킨 삽질에 대한 글이고, 혹여나 같은 내용으로 고통받을 사람들을 위한 글이기도 하다.

앞으로도 고통받을때마다 블로그에 글을 남길 예정이다.




Hello Google Play Developer,

We rejected 앱이름, with package name 패키지명, for violating our Malicious Behavior or User Data policy. If you submitted an update, the previous version of your app is still available on Google Play.

This app uses software that contains security vulnerabilities for users or allows the collection of user data without proper disclosure.

Below is the list of issues and the corresponding APK versions that were detected in your recent submission. Please upgrade your app(s) as soon as possible and increment the version number of the upgraded APK.


VulnerabilityAPK Version(s)Past Due Date
Cross-app Scripting

Your app(s) are using a WebView that is vulnerable to cross-app scripting.

To address this issue, follow the steps in this Google Help Center article.

버전코드

February 06, 2019


To confirm you’ve upgraded correctly, submit the updated version of your app to the Play Console and check back after five hours to make sure the warning is gone.

While these vulnerabilities may not affect every app that uses this software, it’s best to stay up to date on all security patches. Make sure to update any libraries in your app that have known security issues, even if you're not sure the issues are relevant to your app.

Apps must also comply with the Developer Distribution Agreement and Developer Program Policies.

If you feel we have made this determination in error, please reach out to our developer support team.

Best,

The Google Play Team


이것이 나의 주말과 월요일을 상큼한 고통에 시달리게 한 내용이다.


결론부터 말하자면, 카카오SDK를 1.14.0 버전 이상으로 업데이트 하면됀다.


저번 주 업데이트를 위해 우리 앱에는 웹뷰를 사용하는 액티비티가 하나 추가됏다.

별다른 기능은 없고, 버튼 두개와 단순히 url을 로드할뿐인 웹뷰였다.

(이벤트용 이미지 하나를 출력할 뿐인 html파일임. 상호작용도 없음 코드라곤 이미지소스 태그 한줄.)

그런데 금요일 마켓에 업데이트된 버전을 배포하고 즐거운 주말을 보낼 예정이었던 나에게 구글팀에서 메일을 한통 보내온다.

위에있는 내용이 그것이다.


주말을 보내면서 틈틈이 노트북을 열어 도움말센터에 있는 가이드대로 우리 앱에 적용을 했고, 두세번의 재배포가 있었음에도 계속된 거부메일이 왔다. 


그렇게 주말이 지나 월요일, 출근 후 폭풍검색에 들어갔지만...Stack Overflow에도 다른 웹사이트나 블로그에도 성에 차는 내용의 정보는 없었다.

대부분은 도움말센터에 있는 내용이거나, 크로스 앱 스크립팅에 관한 내용들이었기 때문이다.


정말 답답했던게, 우리 앱에는 자바스크립트를 이용하는 html을 로드하지도 않고, 웹뷰의 세팅 역시도 별다를게 없었기때문이다.

가이드라인대로 앱 내부에서 인텐트에 url을 실어 보내지 않고, targetSdkVersion도 확인해보니 26이었다.

웹뷰를 사용하는 액티비티에서는 아래와 같이 가이드라인에 있는 세팅을 했다.


WebView webWV = findViewById(R.id.webWV);
webWV.getSettings().setJavaScriptEnabled(false);
webWV.getSettings().setAllowUniversalAccessFromFileURLs(false);


그럼에도 불구하고 계속되는 업데이트 거부...메시지는 항상 위 내용과 같았다.

위에서 봤으면 알겠지만, 구글에서 말한 "세부사항"은 꽤나 심플해서 어느 액티비티가 문제인지, 구체적으로 어떻게 해야하는지 알려주지 않는다.

꽤나 포괄적인 "세부사항" 덕분에 정보검색 중에서도 뭐가 더 중요한지 아닌지를 판단하기 힘들다보니 결국 하루를 다 써서야 겨우 실마리를 찾았다.


정보를 검색하던 중 카카오sdk 관련 내용을 봣지만, 글이 작년거였고 글이 작성된 시점부터 지금까지 수십차례의 업데이트가 있었으니

에이 아니겠지 하고 넘겼던게 하루죙일 삽질을 하게 만들었다.

그렇게 계속해서 삽질과 테스트, 재배포와 업데이트 거부를 맞이하며 고통받다가..갑자기 이런 생각이 들었다.

"설마..이전버전에도 계속 이런문제가 있었는데, 이제와서 걸린거라면...?!?!" 

이 생각과 동시에 카카오sdk 관련 내용이 의미가 있을지도 모른다는 생각이 들었다. 


한참 전에 봣던 카카오 데브톡 게시글과 공지를 찾아 내용을 확인했다.

그리고 우리 앱에서 사용하는 카카오sdk의 버전을 확인해보니...그 공지에 있는 문제가 고스란히 보이고 있었다.

1.14.0 미만 버전에서는 웹뷰의 크로스 앱 스크립팅 문제가 발생할 수 있고, 해당 문제를 보완,개선한 버전이 1.14.0 버전 이상이라는 내용이었다.


현재는 카카오sdk를 최신버전인 1.16.0버전으로 조정 후 다시한번 전체적으로 테스트 한 뒤(거부당한것과는 별개로 업데이트가 된다면 문제가 없어야하니까)

버전코드를 올려 재 배포를 해놓은 상태이다. 이제 30분쯤 됐으니..슬슬 거부당했다면 같은 메일을 다시 보게될것 같다.


일단은 퇴근시간이 됐고, 내가 더 있어봐야 할수있는게 없으니 퇴근하기로 하고, 무사히 배포가 된다면 결과에 대해 더 작성하기로 하겠다.


--------------------------------------------------------------------------------------------------------------------------------------------------------------------


다행히도 거부당하지 않고 무사히 마켓에 게시된걸 확인했다. 역시 카카오 sdk의 버전이 낮았던게 문제의 원인이었다.



끝!

Comments