내 앱의 유효성을 검사 할 때 다음 오류가 발생합니다.
애플리케이션 번들에는 a
512x512
및512x512@2x
이미지 를 모두 포함하는 ICNS 형식의 아이콘이 없습니다 .
나는 Img2icns 앱으로 icns 아이콘을 만드는 데 사용 했으며 오늘까지 항상 제대로 작동했습니다. 하지만 이제는 그 오류가 발생하고 작동하도록 할 방법이 없습니다. Img2icns 에 두 개의 PNG 파일 ( 512x512
및 1024x1024
)을 함께 넣으려고 했지만 항상 오류가 발생합니다. 또한 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
최신 정보
-c
iconutil에 대한 매개 변수는 더 이상 지원되지 않습니다. 사용 --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