괜찮습니다. 은 Assets.car은 귀하의 자산 카탈로그가 아니라고 가정합니다. 은 이미지가 내부에 있지 않다고 가정합니다.
Xcode가 이전에 자산 카탈로그에서 이미지를 가져 와서 프레임 워크의 최상위 레벨에 놓은 경우 은입니다. 자산 카탈로그 이미지는 자산 카탈로그의 컴파일 된 버전으로 컴파일되어야합니다 (.car 파일). 그리고 그것은 지금 정확하게 일어나고 있습니다. 어쨌든 코드에서 이름으로 자산 카탈로그를 직접 참조 할 수있는 방법이 없기 때문에 컴파일 과정에서 자산 카탈로그의 이름을 변경해서는 안됩니다.
컴파일하는 동안 생성 된 보고서를 읽음으로써 이러한 현상이 발생했는지 확인할 수 있습니다. 그러나 스크린 샷에 포함시키지 마십시오. 내가 보여줄거야.
을 그리고 여기에 보고서의 관련 부분 : 여기 내 프로젝트는 당신과 비슷한,의
선 지난 몇을 참조하십시오? MyFrameworkAssets.xcassets
은 정확히 프로젝트와 마찬가지로 /MyCoolFramework.framework/Assets.car
이라는 자산 카탈로그로 컴파일되었습니다.
그래서 문제는 단지 입니다.은 "외부에서"(즉, 외부에서) 보려고합니다.터미널 사용) 당신이보고있는 것을 이해하지 못합니다. 이것이 작동하는지 여부를 실제로 알 수있는 방법은 프레임 워크 코드가 이미지를 참조하여 표시하고 해당 코드가없는 것입니다. 실제로 프레임 워크에는 코드가 전혀 없으므로 쓸모없는 프레임 워크입니다. 또는 AssetCatalogTinkerer을 다운로드하고 assets.car 파일을 살펴보십시오. 이미지가 거기에 있음을 알 수 있습니다!
(그런데, 나는 또한 프로젝트가 매우 가난하게 편성했다. 프레임 워크에 속하는 이미지 및 자산 카탈로그는 프레임 워크의 폴더에 있어야합니다 생각합니다.)
네 말이 맞아, 감사합니다! FYI : --minimum-deployment-target <7.0 인 actool을 사용할 때 Assets.car를 생성하고 ALSO는 xcassets 내의 모든 png를 번들로 복사합니다. 최소 배포 목표를 8.0으로 업데이트하면 Xcode 9 자체가 아닌 변경 사항이 발생했습니다 (Xcode 9는 iOS 7 이상을 지원하는 xib를 지원하지 않기 때문에 최소 배포 대상을 업데이트해야하는 이유 였지만!). –
"xcassets 내의 모든 png도 번들로 복사합니다."시스템 버전에서 너무나 오래되어서 자산 카탈로그가 아직 발명되지 않았기 때문에 실행해야합니다! – matt