2013-10-01 5 views
7

나는 iOS 5의 삶을 시작한 이후로 업데이트되었습니다. iOS 7의 경우 모든 리소스에 대해 자산 카탈로그를 사용하도록 전환했습니다. 이는 훌륭하고 잘 작동하는 것으로 보입니다. 내가 애플에 제출하려고 할 때 그러나, 나는 유효성 검사 오류를 얻을 :아이콘, 자산 카탈로그 및 Info.plist 혼동

잘못된 이미지 경로 - 키 'CFBundleIconFiles'아래 참조 경로에서 찾을 수 없습니다 이미지 : '[email protected]'

나는 다른 아이콘들에 대해서도 같은 오류가 발생한다. 이 아이콘 은 자산 카탈로그에으로 표시되며 이름까지 - 정확한 사례까지 - 정확하게 알 수 있습니다. 애셋 카탈로그는 "번들 리소스 복사"에 있으며 모든 iPhone, iPad (iOS 7) 및 iOS 6 시뮬레이터에서 앱을 실행할 때 모든 리소스가 올바른 위치에 나타납니다.

iOS 6의 최소 배포 대상을 사용하도록 앱을 업데이트했습니다.

그래서 Apple에 업데이트를 제출하려면 어떻게해야합니까? Info.plist에서 참조가 필요합니까? 내가 확인해야 할 다른 설정이 있습니까? 경고가 가짜이고 무시해야하는 것이 있습니까 (레이더를 올린 후)?

답변

10

자산 카탈로그를 iOS 6 이하 버전으로 컴파일하면 이미지가 이전 방식으로 복사 한 것처럼 앱 번들 루트에 저장됩니다. 이 경우 Apple은 파일 이름이 아닌 자산 이름에 따라 이미지의 이름을 지정합니다. 따라서 iOS 6 이하의 자산을 얻으려면 +[UIImage imageNamed:]을 계속 사용할 수 있습니다. 우리는 우리의 자산 카탈로그에서 설정 한 다음과 같은 아이콘이있을 때

이, 앱 아이콘 자산에 대한 사실이 :

enter image description here

그들은과 같이 컴파일 된 될 :

enter image description here

로 iOS 6는 여전히 iOS 6이며 Info.plist에서이 파일을 참조해야합니다. 그렇지 않으면 기존 시스템이 작동하지 않습니다. 이 테스트 애플리케이션을 위해 컴파일 된 Info.plist를 보면 Xcode가 우리에게 CFBundleIconFiles을 추가 했으므로 필요하지 않다는 것을 알 수있다.

enter image description here

나는 github.com/danielctull-tests/AssetTest에 사용 된 테스트 프로젝트를 업로드했습니다.

+0

"iOS 6 이하의 저작물 카탈로그를 컴파일하면 이미지가 앱 번들의 루트에 저장됩니다."- iOS 7 이상 버전이 다른가요? 내가 아는 한 SDK 나 배포 타겟에 상관없이 같은 방식으로 동작합니다. –

3

좋아요, 여기 제가 끝내 준 것이 있습니다. 100 % 확신 할 수는 없지만 공유 할만한 가치가 있다고 생각했습니다.

  • 나는 내가 자산 이름보다는 내가 무엇을 취소하고 있지 않다 CFBundleIconFiles

의 아이콘 파일 이름을 사용하는 아이폰 OS 6 및

  • 이상 사용 생각하지 않습니다 CFBundleIconFile을 제거 알기 쉽게하기 위해 적절한 이름이 있습니다. 아이콘 파일 이름은 아이콘을 선택하면 자산 카탈로그의 속성 검사기에 표시되는 이름을 의미합니다. 자산 이름으로는 내 경우에는 7 개의 실제 아이콘을 나타내는 AppIcon을 의미합니다.

    이 두 가지 모두 Apple의 검증 단계를 거치며 괜찮아 보입니다. 현재 iOS 6 장치가 없지만 시뮬레이터에 올바르게 표시됩니다.

  • 관련 문제