[xcode] iconutil을 사용하여 icns 파일을 수동으로 생성하는 방법은 무엇입니까?

내 앱의 유효성을 검사 할 때 다음 오류가 발생합니다.

애플리케이션 번들에는 a 512x512512x512@2x이미지 를 모두 포함하는 ICNS 형식의 아이콘이 없습니다 .

나는 Img2icns 앱으로 icns 아이콘을 만드는 데 사용 했으며 오늘까지 항상 제대로 작동했습니다. 하지만 이제는 그 오류가 발생하고 작동하도록 할 방법이 없습니다. Img2icns 에 두 개의 PNG 파일 ( 512x5121024x1024)을 함께 넣으려고 했지만 항상 오류가 발생합니다. 또한 Apple OS X Human Interface Guideline의 지침을 따르려고 시도했지만 아이콘 세트를 만들려고하면이 터미널 오류가 발생합니다.

-bash : 예기치 않은 토큰 ‘newline’근처의 구문 오류

나는 터미널 명령을 잘하지 못해서 뭔가 잘못하고있는 것 같습니다. 나는 썼다 :

iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>

누구든지 도울 수 있다면 대단히 감사하겠습니다. 고마워, 매시.



답변

다음 지침을 확인하십시오 ( 링크 ).

iconutil을 사용하여 icns 파일을 수동으로 생성

iconutil명령 줄 도구의 변환의 iconset배포 준비, 높은 해상도 폴더는 파일을 ICNS. ( man iconutil터미널 에 입력하여이 도구에 대한 전체 문서를 찾을 수 있습니다 .)이 도구를 사용하면 결과 icns파일 도 압축 되므로 추가 압축을 수행 할 필요가 없습니다.

아이콘 세트를 icns 파일로 변환하려면

터미널 창에 다음 명령을 입력하십시오.

iconutil -c icns <iconset filename>

어디에 <iconset filename>당신이 변환하고자하는 아이콘의 세트를 포함하는 폴더의 경로입니다 icns. 다음 iconset file과 같이 출력 파일을 지정하지 않는 한 출력은와 동일한 위치에 기록됩니다 .

iconutil -c icns -o <icon filename> <iconset filename>

즉, 다음 <iconset filename>경로 로 바꿔야 합니다.

/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset

경로에 공백이 포함되어 있으므로 큰 따옴표를 사용해야합니다. 예를 들면 다음과 같습니다.

iconutil -c icns "/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset"

이 명령은 제대로 작동합니다.


답변

다음은 1024×1024 png ( “Icon1024.png”)를 필수 icns 파일로 변환하는 스크립트입니다. png 파일이 터미널 “cd”에있는 폴더의 “CreateICNS.src”라는 파일에 저장하고 “source CreateICNS.src”를 입력하여 호출합니다.

mkdir MyIcon.iconset
sips -z 16 16     Icon1024.png --out MyIcon.iconset/icon_16x16.png
sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png
sips -z 32 32     Icon1024.png --out MyIcon.iconset/icon_32x32.png
sips -z 64 64     Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png
sips -z 128 128   Icon1024.png --out MyIcon.iconset/icon_128x128.png
sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png
sips -z 256 256   Icon1024.png --out MyIcon.iconset/icon_256x256.png
sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png
sips -z 512 512   Icon1024.png --out MyIcon.iconset/icon_512x512.png
cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png
iconutil -c icns MyIcon.iconset
rm -R MyIcon.iconset


답변

고해상도 PNG이미지를 다양한 저해상도 복사본 으로 변환하기 위해 모든 종류의 스크립트를 사용 하는 것이 편리해 보일 수 있지만 (실제로는 그렇습니다) 이러한 종류의 자동 크기 조정이 인식 할 수있는 불완전한 이미지를 렌더링한다는 사실을 잊지 말아야합니다 .

낮은 해상도 — 아이콘을 흐리게합니다!

나도 좋아 imagemagick하지만이 작업에 적합한 도구는 아닙니다!

대신 디자이너에게 항상 벡터 형식의 로고를 요청해야합니다 (예 : SVG. 이를 통해 PNG필요한 모든 해상도로 완벽한 파일을 수동으로 준비한 다음 단일 .icns파일을 만들 수 있습니다. 그러면 저렴한 iPhone SE에서 최신 제품의 고급 Retina 디스플레이에 이르기까지 모든 단일 화면에서 앱 아이콘이 아름답게 보입니다. iMac. Photoshop, GIMP 또는 원하는 다른 도구를 사용하여 이러한 PNG를 생성 할 수 있습니다.

2020 년 현재 최신 Apple의 휴먼 인터페이스 가이드 라인 에서 다음 PNG파일을 준비해야 합니다.

+---------------------+--------------------+--------------+
|      filename       | resolution, pixels | density, PPI |
+---------------------+--------------------+--------------+
| icon_16x16.png      | 16x16              |           72 |
| icon_16x16@2x.png   | 32x32              |          144 |
| icon_32x32.png      | 32x32              |           72 |
| icon_32x32@2x.png   | 64x64              |          144 |
| icon_128x128.png    | 128x128            |           72 |
| icon_128x128@2x.png | 256x256            |          144 |
| icon_256x256.png    | 256x256            |           72 |
| icon_256x256@2x.png | 512x512            |          144 |
| icon_512x512.png    | 512x512            |           72 |
| icon_512x512@2x.png | 1024x1024          |          144 |
+---------------------+--------------------+--------------+

모든 PNG 파일이 준비된 후 .iconset확장자 ( Logos.iconset예 :)가있는 일부 디렉토리에 배치하고 에서 다음을 실행하십시오 Terminal.

iconutil --convert icns Logos.iconset

이 명령을 실행 한 후 오류가 없으면 모든 파일이 제대로 처리 Logos.icns된 것이므로 모든 최신 화면에 적합한 아름다운 선명한 로고가 모두 포함 된 동일한 디렉토리에 파일이있는 것입니다.


답변

PNG 파일을 iconset 디렉토리로 변환하는 모든 작업을 수행하는 명령 줄 노드 모듈이 있습니다.

npm install -g node-icns
nicns --in adventure-cat.png --out adventure-cat.icns


답변

터미널에 입력 된이 명령은 이전 icns 파일을 새 형식으로 변환하는 데 도움이되었습니다.

cd Folder_With_Icns_File
iconutil -c iconset Your_Icon_Name.icns 
rm Your_Icon_Name.icns 
iconutil -c icns Your_Icon_Name.iconset
rm -R Your_Icon_Name.iconset

최신 정보

-ciconutil에 대한 매개 변수는 더 이상 지원되지 않습니다. 사용 --convert하는 대신 :

cd Folder_With_Icns_File
iconutil --convert iconset Your_Icon_Name.icns 
rm Your_Icon_Name.icns 
iconutil --convert icns Your_Icon_Name.iconset
rm -R Your_Icon_Name.iconset


답변

추가 설명은 .icns 파일 을 만들 때 접두어 “icon_ “을 사용 하여 모든 pic 파일의 이름을 바꿔야합니다. 그렇지 않으면 iconutil이 오류 메시지 “.iconset : error : Failed to generate ICNS”와 함께 실패합니다. 전혀 유익하지 않습니다.


답변

@Henry (위의 주석)와 동일하지만 PNG 파일 이름을 인수로 사용하여 동일한 이름의 ICNS를 출력합니다.

참고 : PNG 파일 이름은 확장명을 구분하는 1 포인트 (예 : xpto.png) 만 가질 것으로 예상됩니다.

따라서 아래 코드를 png 파일이있는 폴더의 “CreateICNS.src”라는 파일에 저장하십시오.

코드 :

IFS='.' read -ra ADDR <<< "$1"
ICONSET=${ADDR[0]}.iconset
mkdir $ICONSET
sips -z 16 16     $1 --out $ICONSET/icon_16x16.png
sips -z 32 32     $1 --out $ICONSET/icon_16x16@2x.png
sips -z 32 32     $1 --out $ICONSET/icon_32x32.png
sips -z 64 64     $1 --out $ICONSET/icon_32x32@2x.png
sips -z 128 128   $1 --out $ICONSET/icon_128x128.png
sips -z 256 256   $1 --out $ICONSET/icon_128x128@2x.png
sips -z 256 256   $1 --out $ICONSET/icon_256x256.png
sips -z 512 512   $1 --out $ICONSET/icon_256x256@2x.png
sips -z 512 512   $1 --out $ICONSET/icon_512x512.png
cp $1 $ICONSET/icon_512x512@2x.png
iconutil -c icns $ICONSET
rm -R $ICONSET

사용하는 방법 :

그런 다음 터미널에서 “cd”를 동일한 폴더에 입력하고 다음을 입력합니다.

source CreateICNS.src {PNG filename}

여기서 {PNG filename}은 PNG 파일의 이름입니다 (예 : xpto.png).

파일 이름이 abc.png이면 다음을 사용합니다.

source CreateICNS.src abc.png