유니티 3.x 버전으로 iOS 빌드 후 앱 업로드를 하게 되면 Invalid Binary 상태로 검수를 진행할수 없는 상태가 된다.
( 필자가 사용한 유니티 버전은 3.5.6f4 이다. )
Non-public API usage: The app references non-public symbols in "MY_APP":
MPMoviePlayerContentPreloadDidFinishNotification
도대체 왜!!!
사용하지도 않은 함수가 문제라니....
함께 첨부한 라이브러리에서 문제가 있겠다는 것은 바로 파악했지만... 추가한 라이브러리가 한두개여야 말이죠.. ㅠㅠ
찾다보니 문제는 유니티의 iPhone 관련 라이브러리...
ㅁ해결 방법
*
에서 테스트하였습니다. 이 외 버전에서는 문제가 발생할수도 있습니다.
3.5.7f6 에서만 됩니다. 이외 버전에서 사용시 빌드는 정상적으로 됩니다만, 게임 실행이 안됩니다.
- 해당 파일을 다운 받습니다. [ 다운로드 ]
- Finder를 이용하여 다음 경로로 이동합니다.
Unity.app/Contents/PlaybackEngines/iPhonePlayer/iPhone-Trampoline/Libraries
- 다운받은 파일의 압축을 푼 다음, libiPhone-lib.a 파일을 위 경로의 폴더 안에 덮어씌웁니다.
(하시기 전에 백업은 필수 )
- 유니티를 재실행하고, 빌드를 다시 생성한다음, 앱을 새로 뽑아서 검수 등록을 합니다.
성공적으로 등록후 검수 진행 할수 있었습니다. ㅠㅠ;
p.s 휴일에도 삽질해가며 얻은 정보!! 여러분의 칼퇴근(?)에 도움이 되었기를 바라며...
iOS7 , 8 혼용기간인 지금은 괜찮지만,
2015년 2월 1일 이후로 iOS8 64bit 미지원시 검수단계에서 리젝당한다고합니다.
더이상 3.x 대로 iOS 빌드 등록은 불가능합니다.
4.6.x 버전 대로 유니티 업데이트 하셔야됩니다.
:: 참고 링크 ::
- 유니티 포럼 원문 ( 출처 )
- 기타 iOS 리젝(Reject) 사유
- 관련 이슈 블로그 포스팅 ( 일본어 )