2012년 4월 2일 월요일

[iOS] Launch Image 다국어 작업 및 오류

일단 iOS용 앱 다국어 작업은 많이 알려져 있고 관련 문서도 많으니 일단 생략한다. 여기서는 Launch Image(혹은 Splash Image)를 각 언어에 맞게 설정하는 방법과 관련 오류에 대한 내용을 정리해 본다.

1. Launch Image의 다국어 지원

생각보다 단순하다. 이미 프로젝트에 아무 Launch Image가 설정된 상태를 가정한다. XIB에 언어를 추가하듯이 해당 Launch 이미지 파일(여기서는 Default.png, Default@2x.png)을 선택하고 File Inspector에서 Language를 추가해 주면 된다. 그러면 XIB에서 언어가 추가되는 것 처럼 파일이 트리처럼 설정된다. 그리고 해당 언어.lproj 디렉토리에 각 해당 이미지 파일이 복사된다.

남은건 언어 리소스 디렉토리(Language.lproj)의 이미지 파일을 각 언어에 맞게 바꿔주기만 하면 된다.


한국어/영어/일본어를 추가한 경우 이런 식의 모양이 된다.

2. Archive Validation 시의 오류

Launch Image의 다국어화 작업을 한 후 앱 배포를 위해 Archive를 한 뒤 Validation을 해 보니 아래와 같은 오류가 발생하였다.

warning: Icon specified in the Info.plist not found under the top level app wrapper: Default.png
뭔가 문제가 있다. 탑 레벨, 즉 프로젝트 디렉토리에 있어야 할 파일이 없다는 내용 같다.

문제의 원인이 무엇일까 한참을 뒤지다 Project Summary 화면에서 이상한 것을 발견했다.


분명 이전에 등록해 둔 Launch Image가 비어있는 것이다. 왜냐하면 기존에 등록해 둔 이미지 파일이 언어를 추가하면서 각 언어 디렉토리로 옮겨져 버렸기 때문에 설정해 둔 것이 자동으로 사라진 것이다.

그래서 다시 Default.png를 여기다 드래그 해서 등록을 하니 프로젝트에 새로운 Default.png가 복사되었다. 이렇게 하고 Validation을 하면 문제가 해결되는 듯 했다.

하지만 이건 기껏 다국어화 해 놓은 Launch Image가 아닌 특정 Launch Image를 등록해 버린 것이다. 그래서 다국어화가 되지 않는다.

문제 해결을 위해서는 위 Summary의 Launch Image 를 다시 몽땅 비운다. 물론 복제된 파일도 지워야 한다. 그리고 Info.plist 파일을 열어서 Launch Image의 파일 이름이 설정된 부분을 몽땅 삭제한다.


Icon files 항목 및 Icon files(iOS 5)에서 item 2 이상에 Launch Image로 사용하던 이미지 파일이 등록되어 있었다. 이 항목을 몽땅 지웠다. 위 스크린샷은 지운 후의 상태이다.

이 후 Validation을 해 보니 문제가 해결되었다. 단말에서 테스트 해 보니 다국어 스플래쉬도 잘 표시되었다.

댓글 없음 :