안녕하세요.
현재 iOS 앱 개발을 진행 중입니다.
다름이 아니라 개발 후 스토어 등록을 위해 심사를 요청하였습니다.
그런데 문제는 지속적으로 Reject 처리가 된다는 것입니다.
이유는 다음과 같다고 합니다.
Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPad running iOS 12.2 on Wi-Fi.
Specifically, we encountered an error while attempting to log into the app.
Next Steps
To resolve this issue, please run your app on a device to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.
Resources
For information about testing your app and preparing it for review, please see Technical Note TN2431: App Testing Guide.
For a networking overview, please review About Networking.
Please see attached screenshot for details.
로그인이 정상적으로 되지 않는다는 것인데, 테스트 할 당시만 해도 아무런 문제가 없습니다.
웹과 앱에서 모두 테스트 하였고 애플 측이 주장하는 iOS 버전과 동일한 환경에서 테스트 하였습니다.
도대체 무엇이 문제인지 모르겠습니다.
환경은 다음과 같습니다.
Node.js/Express/MongoDB/마이크로소프트 애저 VM
iOS 하이브리드 앱(모바일 웹)
혹 이러한 문제나 경험을 갖고 계신분들이 계실까요.
* 2019/04/19 내용 추가
본문과 같이 심사에서 지속적으로 리젝이 되어 해결이 안되었습니다.
서두를 없애고 결과만 말씀드리자면.
심사 승인으로 처리 되었습니다.
2가지 조치를 취하였는데, 다음과 같습니다.
1. ipv6 를 지원하기 위해 클라우드 플레어 연동
- 클라우드 플레어는 ipv4를 ipv6로 포워딩? 우회 시켜준다고 볼 수 도 있을 것 같습니다.
- 더불어 보안과 관련하여 충분히 좋은 서비스이니 하는게 백번 더 나은거 같습니다.
2. form 태그 수정
- form 태그의 action 값을 상대경로로 지정하였는데, 절대경로로 수정하고 https로 지정하였습니다.
사실 정확히 어떤 조치를 인하여 승인이 난지는 모르겠는게 팩트입니다 ㅎㅎ;;
아무튼 모바일 웹사이트 기반의 하이브리드 앱을 진행하시는 분들께 도움이 되길 바라면서, 해결 방법을 남겨놓습니다.
더불어 클리앙 앱개발자당의 많은 분들께서 도움과 조언을 해주셔서 감사합니다.!
네. 애플에서 리젝 결과에 대해 첨부한 이미지입니다.
우선 포트는 기본 포트를 사용합니다.
로그인 페이지에 기본적으로 접근이 되는데, 해외쪽의 접속이 안되는 이슈는 아닌것 같습니다.
사내 와이파이 같은 것들을 검토해봐야 겠네요.
서버에서는 아무런 에러 메세지가 뜨고 있지않습니다.
로그인에서만 저런 현상이 발생하니 정말 당황스러울 따름입니다. ㅜ
심사가 통과 되어도 실제 서비스를 개시할지에 대한 선택권이 아직 남아 있으므로
request 실패 시에 do try문에서 UITextView가 담긴 '팝업창'으로 해당 상태를 뿌리도록 한 후
다시 심사에 넣어 보는 건 어떤가요? 리뷰어도 뭔 상황인지 알면 더 좋을 것 같고..
네트워크 상태도 함께 확인 할 수 있도록 해 주면 좋을것 같네요.
https://stackoverflow.com/questions/30743408/check-for-internet-connection-with-swift
해당 내용 참조해보겠습니다.
감사합니다.
그나마 제가 생각하는건 ipv6 상황일거 같은데,
사이트 접속 자체가 되니 해당 문제는 아닐거 같고,
당최 모르겠습니다. ㅜ.
2. 코드상에 ipv4 형태의 서버주소를 사용하신다면 도메인 형태로 바꾸셔야 합니다.
3. 해외 VPN에서 실제로 통신이 되는지 확인되어야 합니다.
https://gorakgarak.tistory.com/849
근데 작성자분이 윗 댓글에서 IPv6를 의심하는 걸로 봐서 정말 미구현인가 싶기도 하네요.
우선 테스트 해본 결과는 다음과 같습니다.
1. ipv6 테스트 아직 미실시
2. 도메인 주소로 앱을 세팅하라는 말씀이실까요. 아이피주소 자체가 dns를 가리키고 있다고 생각되서요.
3. vpn 서비스를 이용하여 미국 샌프란시스코로 맞추어 놓고 스마트폰에서 웹/앱 모두 테스트 하였으나 정상적으로 작동하였습니다.
ipv6에 대해서 정말 궁금한 것은 접속이 아예 안되어야 하지 않을까요.
그리고 현재 사용하고 있는 ms 애저의 다음과 같은 포스팅 글이 있기도 하네요.
https://blogs.msdn.microsoft.com/eva/?p=12795
p.s
클라우드 플레어를 사용하여 ipv6를 대체적으로 지원 설정을 하였네요 ^^;
물론 심사가 아직 통과한 것은 아닙니다. ㅜ
1. ipv6 환경에서 ipv4 연결은 보장되지 않습니다.
2. 저의 경우 실제로 통신하지 않는 ipv4 주소가 포함되어 있을때 리젝된 경우가 있습니다.
뇌피셜로는 검수과정에서 스트링 테이블을 검사하는게 아닐지... 추측을 해봅니다.
3. 도메인이 설정된 서버에서 다른 서버주소(ipv4 형식)를 가지고 오는 형태일때, 심사를 통과 했습니다.
이런 상황으로 볼 때, 실제 통신 여부와 더불어 앱 내부에 ipv4 주소를 포함 여부도 심사 대상이 되는 것으로 추정됩니다.
ipv6 인터넷 환경에서 ipv4 ip 로 접근시도하면 연결되지 않죠.. 아예 접근 불가입니다
ip 로 접근하는 부분은 모두 전부 도메인 방식으로 변경하여야 하고,
https 가아닌 http 로 접근할경우 App Transport Security 정책에 의해 exception domain 으로 (white list) 지정해두어야 합니다
네트워크 단절상태에서 작동 안되면 리젝 사유가 됩니다.
테스트 시나리오중에 네트워크 단절 상태에서 테스트 항목이 있을 것이라는 예측은
예전부터 공공연하게 되어 왔습니다.
네트워크 사용이 불가능한 상황에서 앱이 제대로 작동하지 않거나, 혹은 대응할 수 있는 기능이 없다면
리뷰를 통과하기 어려울 수 있습니다.
둘째.
WebView 만으로 래핑 되어 있는 앱은 운이 좋아야 통과 될까 말까 이고, 보편적으로
통과하기 어려운 것으로 이전부터 이야기가 있어왔습니다.
네이티브로 구현된 내용들로 네트워크 단절 상태에서도 유저에게 무엇이든 반응을 해주는 정도는
필요할 겁니다.
webview 이고 처리가 안되있다면 404 페이지가 뜨거나 백지로 뜰것이고 앱 시나리오는 단절되겠죠
또한 webview 내 컨텐츠와같이 앱스토어 리뷰당시 이후에 컨텐츠가 변경될 여지가 있으면, 최악의 경우 심사통과된 후 앱스토어에서 앱 자체가 검색 및 다운로드 안되도록 block 될수있습니다