IT_Programming/Objective-C · Swift · iOS

[펌] 웹앱(하이브리드앱)의 앱스토어 통과(검수)하기 위한 기준 / 애플 리젝 사유 정리

JJun ™ 2015. 12. 21. 16:11



 출처

 : http://blowmj.tistory.com/entry/웹앱하이브리드앱의-앱스토어-통과검수하기-위한-기준

 : http://titis.tistory.com/13


 일반적인 앱 리젝 사유

 : https://developer.apple.com/app-store/review/rejections/kr/





웹앱(하이브리드앱)의 앱스토어 통과(검수)하기 위한 기준


단순히 모바일웹만 보여주는 앱은 리젝대상입니다.
꼭 앱으로 만들어야 하는 명확한 이유가 있어야 합니다. 


Apple의 리뷰 가이드라인이 있지만 하이브리드 앱, 웹앱에 대해서 명확한 규정은 있지 않기 때문에
Apple의 리뷰어가 누가 되는지에 따라서도 많이 달라집니다.
하지만 사람들의 경험으로 웹앱이 통과하기 위해 몇가지 암묵적인 규칙이 있다고 합니다.


1. 푸쉬를 써야한다(푸쉬 뿐만아니라, 연락처, 위치정보 등 앱으로만 수행할 수 있는 기능이 꼭 들어가야 합니다.)
2. 네트워크 연결이 되지 않은 상태에서 실행했을때도 뭔가가 있어야 한다
     - 처음시작할때 인트로가 필요할테고, 네트워크 접속 오류 메세지 화면이 꼭 필요합니다.
3. 웹으로는 회원가입이 불가능하게 해야한다.
     - 꼭 애플의 앱에서 회원가입이 가능하게 해야합니다. 
     - 기획자들이 웹의 PV를 높이기 위해 웹에서만 가입하게 한 서비스가 리젝 당한 경우가 있었습니다.


이 세가지 내용을 충족시켜준다면 무리없이 앱스토어에 등록이 될것으로 예상됩니다.
하지만 애플의 리뷰는 사람이 하니깐, 리뷰어에게 직접 메일이나 전화를 통해 위의 기능이 빠지더라도
꼭 애플의 앱스토어에 등록 되어야 할 이유를 설명하면 통과될 가능성도 있습니다.






애플 리젝 사유 정리



1. 서버 클라이언트로 이루어진 앱이였는데, 메뉴얼이 포함되서 특별한 정보 없이 업로드했었는데, 접속하는 방법을 모르겠다고 리젝

2. 애플트레이드마크 위반 (아이콘 이미지가 아이폰이랑 비슷한 이미지를 사용했다고 리젝)

3. 전화걸기 버튼
   -> 아이팟 터치에서 전화걸기 버튼누르면 아무일도 안일어난다고 딴지.
   -> 시스템콜 함수를 알려주면서 이거 쓰라고 하더라구요 ㅎㅎ 그래서 아이폰 인지 검사하고 아니면 Alert 띄워줬습니다.
   -> 그리고 UIRequiredDeviceCapabilities 에서 key값 telephony추가해 줬구요.

4, 탭바 아이콘
   -> 제가 탭바 아이콘을 custom 으로 한 다음에 별표를 그려서 넣었거든요.
     그런데 거기에서 보기에 요게 favorites 버튼으로 보였나봐요.
     그래서 user 들이 혼란스러워할 수 있다고해서 이미지 바꿨습니다. ㅎㅎ

5. 사이트 관리자에서 데이타를 등록하면, 어플에서 보여주는 방식입니다.
   근데, 등록된 데이타가 없어서, 리뷰어에게는 아무내용도 안 뜨는 화면이 보이게 되어 리젝..!!

6. 아이패드용에서  혹시 landscape 모드로 한쪽만 지원 하셨는지요?
   내용을 보니 landscape에서 한방향만 지원하고 있어서 리젝되었다고 하는것 같은데,
   landscape만 지원할 경우 180도로 위아래는 (뒤집었을때) 최소한 지원 해야 합니다.
   물론 강한 추천(?, 번역이 좀 적절한 말을 모르겠음)으로는 4방향을 지원하는 것이지만 최소한 180도로 2방향은 지원해야 합니다. ^^;

7. 12.3     Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected

   12.3 간단한 웹 클리핑, 저작물 수집, 혹은 연결 수집을 하는 앱은 거절된다.


8. 해상도 리젝 
   - 이미지만 imagename@2x.png 이런식으로 원본이미지와 2배해상도의 이미지만 넣어주시면 알아서 고해상도 이미지로 인식됩니다. 
   - 여러 디바이스를 체크 해봐야 합니다.

9. 애플이 얘기하는 가장 첫번째 기준이 최신 ios 를 지원해야 한다는거구요.. 
   - 최신 SDK 를 사용해야 한다.

10. 애플의 상표권 위반을 했기 때문에 리젝 사유됩니다.

    앱 안에  iPhone을 iPhon 이라고 적은게 있었는데 리젝된 적이 있습니다. iphone, IPHONE 다 안됩니다.
    무조건 iPhone,
 iPad도 마찬가지 .... ipad(X) iPad(O)


      iPod, iPhone, iPad를 명칭으로 사용할 때

 

      첫글자 i는 소문자로, 다음 P는 대문자로 사용해야 합니다.

      문장 처음 시작에 각 명칭이 오더라도 첫 문자 i는 소문자를 사용해야 하고,

      제목으로 표시 할 때도 소문자를 사용해야 합니다.

      각각은 복수의 형태로 사용할 수 없고, 소유격 사용은 하지 않습니다.

 

      리젝 사유를 읽어보니 생각보다 위..지시대로 따르지 않아서..리젝당하는 경우가 있더군요...

 

      결론은 항상 처음은 소문자 두번째 글자 대문자..나머지 소문자로 써야 합니다.

      이렇게 ...iPod, iPhone, iPad....

 

      이런 원칙을 따르면 iAd도 iAd로 써야 합니다. 무심코...iad이렇게 쓰면 리젝당하죠...

 


11. 네트웍게임인데 접속 정보를 안줬더니 리젝됐나 봅니다.

    혹 별도의 접속계정을 필요로 하는 어플의 경우 꼭 메타데이타 입력하는 곳에 리뷰노트 부분에 접속계정 + 패스워드를 적으셔서
    저희처럼 터무니 없는 
리젝의 경험을 피해가시길..

    애플의 정책 변경으로 로그인 페이지는 가능한 뒤로 미뤄야하며(개인에게 특화된 정보가 필요한 시점까지),
    앱 외부에서 사전 
가입을 해야하는 경우 허용하지 않더라고요. 사잔 가입의 경우 과금이라던지, 국내법이라던지 설명을 잘 해야합니다.


12. 구글맵에 구글로고 안들어가면 리젝이네요...


13. 사용자 식별은 UIDevice의 uniqueIdentifier 로 체크


14.  non-public API 를 사용했다고 리젝 당했습니다.
     아래는 내용입니다.
     The non-public API that is included in your application is removeFileAtPath:handler.
      : If you have defined a method in your source code with the same name as this API, we suggest altering your method name
       so that it no longer collides with Apple's private API to avoid your application being flagged in future submissions.


     document 의 파일을 삭제하기 위해 removeFileAtPath:handler: 함수를 사용했는데 이게 문제가 되네요.

     구글링 결과 위 함수는 removeItemAtPatherror로 대체 하여 사용하여야 한다는 것을 알았습니다.
     함수 교체후 통과에 성공하였습니다.

15. 어플명에 Apple 또는 스티브 잡스의 이름도 들어가면 안됨.
    xxxApple 라는 어플명에 한칸 공백을 줘서 xxx Apple라고 하니 등록되네요...ㅡㅡ;;;;;;

16. 일반적으로 처음 올릴때와 비슷하게 하시면 됩니다. 
    ready for upload였나? 로 상태 바꾸시고 다시 올리세요
    확인해 보니 Reject This Binary 말씀하신  버튼이름으로 바뀌어 있군요^^

17. beta 라는 이름이 들어가 있으면 안된다네요... 그래서 대부분 앱이 lite 버전이라고 하는군요..